Subject: bin/724: 'make' runs commands when $? is empty (When making sup)
To: None <gnats-admin@NetBSD.ORG>
From: None <sh391@city.ac.uk>
List: netbsd-bugs
Date: 01/11/1995 03:50:08
>Number:         724
>Category:       bin
>Synopsis:       'make' runs commands when $? is empty (When making sup)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people (Utility Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 11 03:50:05 1995
>Originator:     Monoadm
>Organization:
Private
>Release:        9/1/95
>Environment:
System: NetBSD gluon.city.ac.uk 1.0A NetBSD 1.0A (GLUON) #1: Tue Jan 10 19:10:57 GMT 1995 monoadm@gluon.city.ac.uk:/mono/u1/NetBSD/sys/arch/sparc/compile/GLUON sparc


>Description:
	When compiling sup make determines that libextra.a is out of date,
	even when it has just been made. Unfortunately it can't work out what
	its out of date with respect to, so $? is empty. This then leaves it
	running 'ar r libextra.a' iwth no arguments, and crashing out.

>How-To-Repeat:
	The Makefile for sup contains the following:
			libextra.a: ${EXTRA}
				ar r libextra.a $?
				ranlib libextra.a
	The first time you run 'make libextra.a' it compiles all the .c files
	to .o, then runs the 'ar & ranlib' - all ok. If you then run 
	'make libextra.a' again, it finds libextra.a is still out of date
	(with what? - as $? is empty!) and produces the above error.

	(long) script included below with a 'correct' make, an 'incorrect' make
	and a full debug 'incorrect make'.

Script started on Wed Jan 11 11:30:11 1995
gluon# rm libextra.a
gluon# make !$
make libextra.a
ar r libextra.a atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o quit.o run.o salloc.o skipto.o vprintf.o
ar: creating archive libextra.a
ranlib libextra.a
gluon# make !$
make libextra.a
ar r libextra.a 
ar: no archive members specified
usage:  ar -d [-Tv] archive file ...
        ar -m [-Tv] archive file ...
        ar -m [-abiTv] position archive file ...
        ar -p [-Tv] archive [file ...]
        ar -q [-cTv] archive file ...
        ar -r [-cuTv] archive file ...
        ar -r [-abciuTv] position archive file ...
        ar -t [-Tv] archive [file ...]
        ar -x [-ouTv] archive [file ...]
*** Error code 1

Stop.
gluon# make -d A !$
make -d A libextra.a
Global:.MAKEFLAGS =  -d
Global:.MAKEFLAGS =  -d A
Global:.TARGETS = libextra.a
Global:MAKEFILE = /usr/share/mk/sys.mk
Global:unix = We run NetBSD.
Global:AR = ar
Global:ARFLAGS = rl
Global:RANLIB = ranlib
Global:AS = as
Global:AFLAGS = 
Global:COMPILE.s = ${AS} ${AFLAGS}
Global:LINK.s = ${CC} ${AFLAGS} ${LDFLAGS}
Global:COMPILE.S = ${CC} ${AFLAGS} ${CPPFLAGS} -c
Global:LINK.S = ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
Global:CC = cc
Global:CFLAGS = -O
Global:COMPILE.c = ${CC} ${CFLAGS} ${CPPFLAGS} -c
Global:LINK.c = ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
Global:CXX = g++
Global:CXXFLAGS = ${CFLAGS}
Global:COMPILE.cc = ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
Global:LINK.cc = ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
Global:CPP = cpp
Global:FC = f77
Global:FFLAGS = -O
Global:RFLAGS = 
Global:COMPILE.f = ${FC} ${FFLAGS} -c
Global:LINK.f = ${FC} ${FFLAGS} ${LDFLAGS}
Global:COMPILE.F = ${FC} ${FFLAGS} ${CPPFLAGS} -c
Global:LINK.F = ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
Global:COMPILE.r = ${FC} ${FFLAGS} ${RFLAGS} -c
Global:LINK.r = ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
Global:LEX = lex
Global:LFLAGS = 
Global:LEX.l = ${LEX} ${LFLAGS}
Global:LD = ld
Global:LDFLAGS = 
Global:LINT = lint
Global:LINTFLAGS = -chapbx
Global:MAKE = make
Global:PC = pc
Global:PFLAGS = 
Global:COMPILE.p = ${PC} ${PFLAGS} ${CPPFLAGS} -c
Global:LINK.p = ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
Global:SHELL = sh
Global:YACC = yacc
Global:YFLAGS = -d
Global:YACC.y = ${YACC} ${YFLAGS}
defining transformation from `.c' to `'
inserting .c(5)...at end of list
inserting (0)...at end of list
transformation .c complete
defining transformation from `.c' to `.o'
inserting .c(5)...at end of list
inserting .o(4)...at end of list
transformation .c.o complete
defining transformation from `.c' to `.a'
inserting .c(5)...at end of list
inserting .a(2)...before .o(4)
transformation .c.a complete
defining transformation from `.cc' to `'
inserting .cc(6)...at end of list
inserting (0)...at end of list
transformation .cc complete
defining transformation from `.cc' to `.o'
inserting .cc(6)...at end of list
inserting .o(4)...at end of list
transformation .cc.o complete
defining transformation from `.cc' to `.a'
inserting .cc(6)...at end of list
inserting .a(2)...before .o(4)
transformation .cc.a complete
defining transformation from `.C' to `'
inserting .C(7)...at end of list
inserting (0)...at end of list
transformation .C complete
defining transformation from `.C' to `.o'
inserting .C(7)...at end of list
inserting .o(4)...at end of list
transformation .C.o complete
defining transformation from `.C' to `.a'
inserting .C(7)...at end of list
inserting .a(2)...before .o(4)
transformation .C.a complete
defining transformation from `.f' to `'
inserting .f(9)...at end of list
inserting (0)...at end of list
transformation .f complete
defining transformation from `.f' to `.o'
inserting .f(9)...at end of list
inserting .o(4)...at end of list
transformation .f.o complete
defining transformation from `.f' to `.a'
inserting .f(9)...at end of list
inserting .a(2)...before .o(4)
transformation .f.a complete
defining transformation from `.F' to `'
inserting .F(8)...before .f(9)
inserting (0)...at end of list
transformation .F complete
defining transformation from `.F' to `.o'
inserting .F(8)...before .f(9)
inserting .o(4)...at end of list
transformation .F.o complete
defining transformation from `.F' to `.a'
inserting .F(8)...before .f(9)
inserting .a(2)...before .o(4)
transformation .F.a complete
defining transformation from `.r' to `'
inserting .r(10)...at end of list
inserting (0)...at end of list
transformation .r complete
defining transformation from `.r' to `.o'
inserting .r(10)...at end of list
inserting .o(4)...at end of list
transformation .r.o complete
defining transformation from `.r' to `.a'
inserting .r(10)...at end of list
inserting .a(2)...before .o(4)
transformation .r.a complete
defining transformation from `.p' to `'
inserting .p(16)...at end of list
inserting (0)...at end of list
transformation .p complete
defining transformation from `.p' to `.o'
inserting .p(16)...at end of list
inserting .o(4)...at end of list
transformation .p.o complete
defining transformation from `.p' to `.a'
inserting .p(16)...at end of list
inserting .a(2)...before .o(4)
transformation .p.a complete
defining transformation from `.s' to `'
inserting .s(13)...before .p(16)
inserting (0)...at end of list
transformation .s complete
defining transformation from `.s' to `.o'
inserting .s(13)...before .p(16)
inserting .o(4)...at end of list
transformation .s.o complete
defining transformation from `.s' to `.a'
inserting .s(13)...before .p(16)
inserting .a(2)...before .o(4)
transformation .s.a complete
defining transformation from `.S' to `'
inserting .S(14)...before .p(16)
inserting (0)...at end of list
transformation .S complete
defining transformation from `.S' to `.o'
inserting .S(14)...before .p(16)
inserting .o(4)...at end of list
transformation .S.o complete
defining transformation from `.S' to `.a'
inserting .S(14)...before .p(16)
inserting .a(2)...before .o(4)
transformation .S.a complete
defining transformation from `.l' to `'
inserting .l(12)...before .s(13)
inserting (0)...at end of list
transformation .l complete
defining transformation from `.l' to `.c'
inserting .l(12)...at end of list
inserting .c(5)...at end of list
transformation .l.c complete
defining transformation from `.l' to `.o'
inserting .l(12)...before .s(13)
inserting .o(4)...before .c(5)
transformation .l.o complete
defining transformation from `.y' to `'
inserting .y(11)...before .l(12)
inserting (0)...at end of list
transformation .y complete
defining transformation from `.y' to `.c'
inserting .y(11)...before .l(12)
inserting .c(5)...at end of list
transformation .y.c complete
defining transformation from `.y' to `.o'
inserting .y(11)...before .l(12)
inserting .o(4)...before .c(5)
transformation .y.o complete
defining transformation from `.sh' to `'
inserting .sh(18)...at end of list
inserting (0)...at end of list
Searching for makefile...failed.
Searching for makefile.../usr/share/mk...failed.
Global:MAKEFILE = Makefile
Global:SITE = NETBSD
Global:NETBSD_DEFINES = -UMACH -DVAR_TMP -DHAS_DAEMON -DHAS_POSIX_DIR
Global:AFS_DEFINES = -DAFS -I/usr/afsws/include
Global:OSF_DEFINES = -UMACH -DOSF -D_BSD -noshrlib -g -DNEED_VSNPRINTF -DVAR_TMP
Global:CMUCS_DEFINES = -DMACH -DDOPRINT_VA -DNEED_VPRINTF
Global:NON_MACH_DEFINES = -UMACH
Global:DEFS = -UCMUCS -UCMU  ${NETBSD_DEFINES}
Global:NETBSD_BINDIR = /usr/local/sbin
Global:NETBSD_MAN1 = /usr/local/man/man1
Global:NETBSD_MAN8 = /usr/local/man/man8
Global:CFLAGS = ${DEFS} -O -I.
Global:SUPCL = supcmain.o supcvers.o supcparse.o supcname.o  supcmisc.o supcmeat.o
Global:SUPS = scm.o scmio.o stree.o log.o supmsg.o netcrypt.o
Global:EXTRA = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o   path.o quit.o run.o salloc.o skipto.o  vprintf.o
Global:PROGRAMS = sup supscan supfilesrv
Global:MAN1 = sup.1
Global:MAN8 = supservers.8
Global:AFS_LIBPATH = /usr/afs/lib
Global:AFS_LIBS = -L${AFS_LIBPATH}/afs -lkauth -lprot -L${AFS_LIBPATH} -lubik -lauth -lrxkad -lsys -ldes -lrx -llwp -lcmd -lcom_err -lc ${AFS_LIBPATH}/afs/util.a
Searching for /usr/lib/libcrypt.a...Looking for "/usr/lib/libcrypt.a"...Caching 17:56:54 Jan 10, 1995 for /usr/lib/libcrypt.a
Searching for /mono/u1/NetBSD/othersrc/sup/crypt/crypt.c...Looking for "/mono/u1/NetBSD/othersrc/sup/crypt/crypt.c"...failed. Returning NULL
Global:NETBSD_LIBS = -lcrypt -lutil
Global:CMUCS_LIBS = -lsys
Global:OSF_LIBS = -lbsd
Global:LIBS = libextra.a
Global:sup_OFILES = ${SUPCL} ${SUPS}
Global:supfilesrv_OFILES = supfilesrv.o scan.o ${SUPS}
Global:supfilesrv_LIBS = libextra.a
Global:supscan_OFILES = supscan.o stree.o scan.o
Searching for .depend...failed.
Searching for .depend.../usr/share/mk...failed.
Global:MFLAGS =   -d A
Global:.INCLUDES = 
Global:.LIBS = 
#*** Input graph:
#
# *** MAIN TARGET ***
all             : sup supscan supfilesrv 


#
# parents: all install 
sup             : supcmain.o supcvers.o supcparse.o supcname.o supcmisc.o supcmeat.o scm.o scmio.o stree.o log.o supmsg.o netcrypt.o libextra.a 
        ${CC} ${CFLAGS} -o sup ${sup_OFILES} ${LIBS} ${NETBSD_LIBS}


#
# parents: all install 
supscan         : supscan.o stree.o scan.o libextra.a 
        ${CC} ${CFLAGS} -o supscan ${supscan_OFILES} ${LIBS} ${NETBSD_LIBS}


#
# parents: all install 
supfilesrv      : supfilesrv.o scan.o scm.o scmio.o stree.o log.o supmsg.o netcrypt.o libextra.a 
        ${CC} ${CFLAGS} -o supfilesrv ${supfilesrv_OFILES} ${supfilesrv_LIBS} ${NETBSD_LIBS}


#
# parents: sup 
supcmain.o      : sup.h supmsg.h supcdefs.h 


#
# parents: sup 
supcparse.o     : sup.h supmsg.h supcdefs.h 


#
# parents: sup 
supcname.o      : sup.h supmsg.h supcdefs.h 


#
# parents: sup 
supcmisc.o      : sup.h supmsg.h supcdefs.h 


#
# parents: sup 
supcmeat.o      : sup.h supmsg.h supcdefs.h 


#
# parents: sup supfilesrv 
scm.o           : sup.h 


#
# parents: sup supfilesrv 
scmio.o         : sup.h supmsg.h 


#
# parents: sup supfilesrv supscan 
stree.o         : sup.h 


#
# parents: sup supfilesrv 
supmsg.o        : sup.h supmsg.h 


#
# parents: sup supfilesrv 
netcrypt.o      : sup.h supmsg.h 


#
# parents: sup supfilesrv supscan 
libextra.a      : atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o quit.o run.o salloc.o skipto.o vprintf.o 
        ar r libextra.a $?
        ranlib libextra.a


#
# parents: supfilesrv 
supfilesrv.o    : sup.h supmsg.h 


#
# parents: supfilesrv supscan 
scan.o          : sup.h 


#
# parents: supscan 
supscan.o       : sup.h 


#
clean           : 
        rm -f ${PROGRAMS} libextra.a netcrypt.c *.o core a.out


#
cleandir        : 
        rm -f ${PROGRAMS} libextra.a netcrypt.c *.o core a.out


#
install         : sup supscan supfilesrv 
        install -cs -m 555 -o bin -g bin ${PROGRAMS} ${NETBSD_BINDIR}
        install -c -m 444 -o bin -g bin ${MAN1} ${NETBSD_MAN1}
        install -c -m 444 -o bin -g bin ${MAN8} ${NETBSD_MAN8}


#
netcrypt.c      : crypt.diffs 
        @echo "[ Using netcryptvoid.c ]"
        cp netcryptvoid.c netcrypt.c


#
netcryptvoid.o  : sup.h supmsg.h 




#
#   Files that are only sources:
#       supcvers.o [supcvers.o]
#       log.o [log.o]
#       atoo.o [atoo.o]
#       errmsg.o [errmsg.o]
#       expand.o [expand.o]
#       ffilecopy.o [ffilecopy.o]
#       filecopy.o [filecopy.o]
#       nxtarg.o [nxtarg.o]
#       path.o [path.o]
#       quit.o [quit.o]
#       run.o [run.o]
#       salloc.o [salloc.o]
#       skipto.o [skipto.o]
#       vprintf.o [vprintf.o]
#       crypt.diffs [crypt.diffs]
#       sup.h [sup.h]
#       supmsg.h [supmsg.h]
#       supcdefs.h [supcdefs.h]
#*** Global Variables:
.LIBS            = 
.INCLUDES        = 
supscan_OFILES   = supscan.o stree.o scan.o
supfilesrv_LIBS  = libextra.a
supfilesrv_OFILES = supfilesrv.o scan.o ${SUPS}
sup_OFILES       = ${SUPCL} ${SUPS}
LIBS             = libextra.a
OSF_LIBS         = -lbsd
CMUCS_LIBS       = -lsys
NETBSD_LIBS      = -lcrypt -lutil
AFS_LIBS         = -L${AFS_LIBPATH}/afs -lkauth -lprot -L${AFS_LIBPATH} -lubik -lauth -lrxkad -lsys -ldes -lrx -llwp -lcmd -lcom_err -lc ${AFS_LIBPATH}/afs/util.a
AFS_LIBPATH      = /usr/afs/lib
MAN8             = supservers.8
MAN1             = sup.1
PROGRAMS         = sup supscan supfilesrv
EXTRA            = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o   path.o quit.o run.o salloc.o skipto.o  vprintf.o
SUPS             = scm.o scmio.o stree.o log.o supmsg.o netcrypt.o
SUPCL            = supcmain.o supcvers.o supcparse.o supcname.o  supcmisc.o supcmeat.o
NETBSD_MAN8      = /usr/local/man/man8
NETBSD_MAN1      = /usr/local/man/man1
NETBSD_BINDIR    = /usr/local/sbin
DEFS             = -UCMUCS -UCMU  ${NETBSD_DEFINES}
NON_MACH_DEFINES = -UMACH
CMUCS_DEFINES    = -DMACH -DDOPRINT_VA -DNEED_VPRINTF
OSF_DEFINES      = -UMACH -DOSF -D_BSD -noshrlib -g -DNEED_VSNPRINTF -DVAR_TMP
AFS_DEFINES      = -DAFS -I/usr/afsws/include
NETBSD_DEFINES   = -UMACH -DVAR_TMP -DHAS_DAEMON -DHAS_POSIX_DIR
SITE             = NETBSD
YACC.y           = ${YACC} ${YFLAGS}
YFLAGS           = -d
YACC             = yacc
SHELL            = sh
LINK.p           = ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
COMPILE.p        = ${PC} ${PFLAGS} ${CPPFLAGS} -c
PFLAGS           = 
PC               = pc
LINTFLAGS        = -chapbx
LINT             = lint
LDFLAGS          = 
LD               = ld
LEX.l            = ${LEX} ${LFLAGS}
LFLAGS           = 
LEX              = lex
LINK.r           = ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
COMPILE.r        = ${FC} ${FFLAGS} ${RFLAGS} -c
LINK.F           = ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
COMPILE.F        = ${FC} ${FFLAGS} ${CPPFLAGS} -c
LINK.f           = ${FC} ${FFLAGS} ${LDFLAGS}
COMPILE.f        = ${FC} ${FFLAGS} -c
RFLAGS           = 
FFLAGS           = -O
FC               = f77
CPP              = cpp
LINK.cc          = ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
COMPILE.cc       = ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
CXXFLAGS         = ${CFLAGS}
CXX              = g++
LINK.c           = ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
COMPILE.c        = ${CC} ${CFLAGS} ${CPPFLAGS} -c
CFLAGS           = ${DEFS} -O -I.
CC               = cc
LINK.S           = ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
COMPILE.S        = ${CC} ${AFLAGS} ${CPPFLAGS} -c
LINK.s           = ${CC} ${AFLAGS} ${LDFLAGS}
COMPILE.s        = ${AS} ${AFLAGS}
AFLAGS           = 
AS               = as
RANLIB           = ranlib
ARFLAGS          = rl
AR               = ar
unix             = We run NetBSD.
MAKEFILE         = Makefile
.TARGETS         = libextra.a
MACHINE_ARCH     = sparc
MACHINE          = sparc
MFLAGS           =   -d A
.MAKEFLAGS       =  -d A
MAKE             = make
.OBJDIR          = /mono/u1/NetBSD/othersrc/sup
.CURDIR          = /mono/u1/NetBSD/othersrc/sup
#*** Command-line Variables:

#*** Directory Cache:
# Stats: 0 hits 4 misses 0 near misses 2 losers (0%)
# directory            referenced       hits
# .                             2          0
# /usr/share/mk                 1          0

#*** Suffixes:
# `.out' [0] 
#       To: 
#       From: 
#       Search Path: 
# `.a' [9]  (LIBRARY)
#       To: 
#       From: .c .cc .C .F .f .r .s .S .p 
#       Search Path: 
# `.ln' [0] 
#       To: 
#       From: 
#       Search Path: 
# `.o' [11] 
#       To: 
#       From: .c .cc .C .F .f .r .y .l .s .S .p 
#       Search Path: 
# `.c' [5] 
#       To:  .a .o 
#       From: .y .l 
#       Search Path: 
# `.cc' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.C' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.F' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.f' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.r' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.y' [3] 
#       To:  .o .c 
#       From: 
#       Search Path: 
# `.l' [3] 
#       To:  .o .c 
#       From: 
#       Search Path: 
# `.s' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.S' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.cl' [0] 
#       To: 
#       From: 
#       Search Path: 
# `.p' [3] 
#       To:  .a .o 
#       From: 
#       Search Path: 
# `.h' [0] 
#       To: 
#       From: 
#       Search Path: 
# `.sh' [1] 
#       To:  
#       From: 
#       Search Path: 
# `.m4' [0] 
#       To: 
#       From: 
#       Search Path: 
#*** Transformations:
.c              : 
        ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.c.o            : 
        ${COMPILE.c} ${.IMPSRC}

.c.a            : 
        ${COMPILE.c} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.cc             : 
        ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.cc.o           : 
        ${COMPILE.cc} ${.IMPSRC}

.cc.a           : 
        ${COMPILE.cc} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.C              : 
        ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.C.o            : 
        ${COMPILE.cc} ${.IMPSRC}

.C.a            : 
        ${COMPILE.cc} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.f              : 
        ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.f.o            : 
        ${COMPILE.f} ${.IMPSRC}

.f.a            : 
        ${COMPILE.f} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.F              : 
        ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.F.o            : 
        ${COMPILE.F} ${.IMPSRC}

.F.a            : 
        ${COMPILE.F} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.r              : 
        ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.r.o            : 
        ${COMPILE.r} ${.IMPSRC}

.r.a            : 
        ${COMPILE.r} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.p              : 
        ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.p.o            : 
        ${COMPILE.p} ${.IMPSRC}

.p.a            : 
        ${COMPILE.p} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.s              : 
        ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.s.o            : 
        ${COMPILE.s} ${.IMPSRC}

.s.a            : 
        ${COMPILE.s} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.S              : 
        ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS}

.S.o            : 
        ${COMPILE.S} ${.IMPSRC}

.S.a            : 
        ${COMPILE.S} ${.IMPSRC}
        ${AR} ${ARFLAGS} $@ $*.o
        rm -f $*.o

.l              : 
        ${LEX.l} ${.IMPSRC}
        ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll
        rm -f lex.yy.c

.l.c            : 
        ${LEX.l} ${.IMPSRC}
        mv lex.yy.c ${.TARGET}

.l.o            : 
        ${LEX.l} ${.IMPSRC}
        ${COMPILE.c} -o ${.TARGET} lex.yy.c
        rm -f lex.yy.c

.y              : 
        ${YACC.y} ${.IMPSRC}
        ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS}
        rm -f y.tab.c

.y.c            : 
        ${YACC.y} ${.IMPSRC}
        mv y.tab.c ${.TARGET}

.y.o            : 
        ${YACC.y} ${.IMPSRC}
        ${COMPILE.c} -o ${.TARGET} y.tab.c
        rm -f y.tab.c

.sh             : 
        rm -f ${.TARGET}
        cp ${.IMPSRC} ${.TARGET}

SuffFindDeps (libextra.a)
        trying libextra.c...Searching for libextra.c...failed.
not there
        trying libextra.cc...Searching for libextra.cc...failed.
not there
        trying libextra.C...Searching for libextra.C...failed.
not there
        trying libextra.F...Searching for libextra.F...failed.
not there
        trying libextra.f...Searching for libextra.f...failed.
not there
        trying libextra.r...Searching for libextra.r...failed.
not there
        trying libextra.s...Searching for libextra.s...failed.
not there
        trying libextra.S...Searching for libextra.S...failed.
not there
        trying libextra.p...Searching for libextra.p...failed.
not there
        trying libextra.y...Searching for libextra.y...failed.
not there
        trying libextra.l...Searching for libextra.l...failed.
not there
libextra.a:@ = libextra.a
libextra.a:* = libextra
SuffFindDeps (atoo.o)
        trying atoo.c...Searching for atoo.c...in '.'
got it
atoo.o:@ = atoo.o
atoo.o:* = atoo
        applying .c -> .o to "atoo.o"
SuffFindDeps (atoo.c)
        trying atoo.y...Searching for atoo.y...failed.
not there
        trying atoo.l...Searching for atoo.l...failed.
not there
atoo.c:@ = atoo.c
atoo.c:* = atoo
Searching for atoo.c...in '.'
atoo.c:@ = atoo.c
atoo.c:* = atoo
atoo.o:< = atoo.c
Examining atoo.c...modified 7:44:17 Dec 17, 1993...up-to-date.
Examining atoo.o...modified 10:52:35 Jan 11, 1995...up-to-date.
SuffFindDeps (errmsg.o)
        trying errmsg.c...Searching for errmsg.c...in '.'
got it
errmsg.o:@ = errmsg.o
errmsg.o:* = errmsg
        applying .c -> .o to "errmsg.o"
SuffFindDeps (errmsg.c)
        trying errmsg.y...Searching for errmsg.y...failed.
not there
        trying errmsg.l...Searching for errmsg.l...failed.
not there
errmsg.c:@ = errmsg.c
errmsg.c:* = errmsg
Searching for errmsg.c...in '.'
errmsg.c:@ = errmsg.c
errmsg.c:* = errmsg
errmsg.o:< = errmsg.c
Examining errmsg.c...modified 7:44:19 Dec 17, 1993...up-to-date.
Examining errmsg.o...modified 10:52:36 Jan 11, 1995...up-to-date.
SuffFindDeps (expand.o)
        trying expand.c...Searching for expand.c...in '.'
got it
expand.o:@ = expand.o
expand.o:* = expand
        applying .c -> .o to "expand.o"
SuffFindDeps (expand.c)
        trying expand.y...Searching for expand.y...failed.
not there
        trying expand.l...Searching for expand.l...failed.
not there
expand.c:@ = expand.c
expand.c:* = expand
Searching for expand.c...in '.'
expand.c:@ = expand.c
expand.c:* = expand
expand.o:< = expand.c
Examining expand.c...modified 11:59:16 Jan 4, 1994...up-to-date.
Examining expand.o...modified 10:52:41 Jan 11, 1995...up-to-date.
SuffFindDeps (ffilecopy.o)
        trying ffilecopy.c...Searching for ffilecopy.c...in '.'
got it
ffilecopy.o:@ = ffilecopy.o
ffilecopy.o:* = ffilecopy
        applying .c -> .o to "ffilecopy.o"
SuffFindDeps (ffilecopy.c)
        trying ffilecopy.y...Searching for ffilecopy.y...failed.
not there
        trying ffilecopy.l...Searching for ffilecopy.l...failed.
not there
ffilecopy.c:@ = ffilecopy.c
ffilecopy.c:* = ffilecopy
Searching for ffilecopy.c...in '.'
ffilecopy.c:@ = ffilecopy.c
ffilecopy.c:* = ffilecopy
ffilecopy.o:< = ffilecopy.c
Examining ffilecopy.c...modified 7:44:19 Dec 17, 1993...up-to-date.
Examining ffilecopy.o...modified 10:52:43 Jan 11, 1995...up-to-date.
SuffFindDeps (filecopy.o)
        trying filecopy.c...Searching for filecopy.c...in '.'
got it
filecopy.o:@ = filecopy.o
filecopy.o:* = filecopy
        applying .c -> .o to "filecopy.o"
SuffFindDeps (filecopy.c)
        trying filecopy.y...Searching for filecopy.y...failed.
not there
        trying filecopy.l...Searching for filecopy.l...failed.
not there
filecopy.c:@ = filecopy.c
filecopy.c:* = filecopy
Searching for filecopy.c...in '.'
filecopy.c:@ = filecopy.c
filecopy.c:* = filecopy
filecopy.o:< = filecopy.c
Examining filecopy.c...modified 7:44:20 Dec 17, 1993...up-to-date.
Examining filecopy.o...modified 10:52:44 Jan 11, 1995...up-to-date.
SuffFindDeps (nxtarg.o)
        trying nxtarg.c...Searching for nxtarg.c...in '.'
got it
nxtarg.o:@ = nxtarg.o
nxtarg.o:* = nxtarg
        applying .c -> .o to "nxtarg.o"
SuffFindDeps (nxtarg.c)
        trying nxtarg.y...Searching for nxtarg.y...failed.
not there
        trying nxtarg.l...Searching for nxtarg.l...failed.
not there
nxtarg.c:@ = nxtarg.c
nxtarg.c:* = nxtarg
Searching for nxtarg.c...in '.'
nxtarg.c:@ = nxtarg.c
nxtarg.c:* = nxtarg
nxtarg.o:< = nxtarg.c
Examining nxtarg.c...modified 7:44:21 Dec 17, 1993...up-to-date.
Examining nxtarg.o...modified 10:52:46 Jan 11, 1995...up-to-date.
SuffFindDeps (path.o)
        trying path.c...Searching for path.c...in '.'
got it
path.o:@ = path.o
path.o:* = path
        applying .c -> .o to "path.o"
SuffFindDeps (path.c)
        trying path.y...Searching for path.y...failed.
not there
        trying path.l...Searching for path.l...failed.
not there
path.c:@ = path.c
path.c:* = path
Searching for path.c...in '.'
path.c:@ = path.c
path.c:* = path
path.o:< = path.c
Examining path.c...modified 7:44:22 Dec 17, 1993...up-to-date.
Examining path.o...modified 10:52:47 Jan 11, 1995...up-to-date.
SuffFindDeps (quit.o)
        trying quit.c...Searching for quit.c...in '.'
got it
quit.o:@ = quit.o
quit.o:* = quit
        applying .c -> .o to "quit.o"
SuffFindDeps (quit.c)
        trying quit.y...Searching for quit.y...failed.
not there
        trying quit.l...Searching for quit.l...failed.
not there
quit.c:@ = quit.c
quit.c:* = quit
Searching for quit.c...in '.'
quit.c:@ = quit.c
quit.c:* = quit
quit.o:< = quit.c
Examining quit.c...modified 7:44:22 Dec 17, 1993...up-to-date.
Examining quit.o...modified 10:52:49 Jan 11, 1995...up-to-date.
SuffFindDeps (run.o)
        trying run.c...Searching for run.c...in '.'
got it
run.o:@ = run.o
run.o:* = run
        applying .c -> .o to "run.o"
SuffFindDeps (run.c)
        trying run.y...Searching for run.y...failed.
not there
        trying run.l...Searching for run.l...failed.
not there
run.c:@ = run.c
run.c:* = run
Searching for run.c...in '.'
run.c:@ = run.c
run.c:* = run
run.o:< = run.c
Examining run.c...modified 7:44:22 Dec 17, 1993...up-to-date.
Examining run.o...modified 10:52:52 Jan 11, 1995...up-to-date.
SuffFindDeps (salloc.o)
        trying salloc.c...Searching for salloc.c...in '.'
got it
salloc.o:@ = salloc.o
salloc.o:* = salloc
        applying .c -> .o to "salloc.o"
SuffFindDeps (salloc.c)
        trying salloc.y...Searching for salloc.y...failed.
not there
        trying salloc.l...Searching for salloc.l...failed.
not there
salloc.c:@ = salloc.c
salloc.c:* = salloc
Searching for salloc.c...in '.'
salloc.c:@ = salloc.c
salloc.c:* = salloc
salloc.o:< = salloc.c
Examining salloc.c...modified 7:44:23 Dec 17, 1993...up-to-date.
Examining salloc.o...modified 10:52:53 Jan 11, 1995...up-to-date.
SuffFindDeps (skipto.o)
        trying skipto.c...Searching for skipto.c...in '.'
got it
skipto.o:@ = skipto.o
skipto.o:* = skipto
        applying .c -> .o to "skipto.o"
SuffFindDeps (skipto.c)
        trying skipto.y...Searching for skipto.y...failed.
not there
        trying skipto.l...Searching for skipto.l...failed.
not there
skipto.c:@ = skipto.c
skipto.c:* = skipto
Searching for skipto.c...in '.'
skipto.c:@ = skipto.c
skipto.c:* = skipto
skipto.o:< = skipto.c
Examining skipto.c...modified 7:44:25 Dec 17, 1993...up-to-date.
Examining skipto.o...modified 10:52:55 Jan 11, 1995...up-to-date.
SuffFindDeps (vprintf.o)
        trying vprintf.c...Searching for vprintf.c...in '.'
got it
vprintf.o:@ = vprintf.o
vprintf.o:* = vprintf
        applying .c -> .o to "vprintf.o"
SuffFindDeps (vprintf.c)
        trying vprintf.y...Searching for vprintf.y...failed.
not there
        trying vprintf.l...Searching for vprintf.l...failed.
not there
vprintf.c:@ = vprintf.c
vprintf.c:* = vprintf
Searching for vprintf.c...in '.'
vprintf.c:@ = vprintf.c
vprintf.c:* = vprintf
vprintf.o:< = vprintf.c
Examining vprintf.c...modified 7:44:33 Dec 17, 1993...up-to-date.
Examining vprintf.o...modified 10:52:57 Jan 11, 1995...up-to-date.
Examining libextra.a...modified 11:31:27 Jan 11, 1995...library...out-of-date.
libextra.a:> = atoo.o
libextra.a:> = atoo.o errmsg.o
libextra.a:> = atoo.o errmsg.o expand.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o quit.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o quit.o run.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o quit.o run.o salloc.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o quit.o run.o salloc.o skipto.o
libextra.a:> = atoo.o errmsg.o expand.o ffilecopy.o filecopy.o nxtarg.o path.o quit.o run.o salloc.o skipto.o vprintf.o
libextra.a:? = 
ar r libextra.a 
ar: no archive members specified
usage:  ar -d [-Tv] archive file ...
        ar -m [-Tv] archive file ...
        ar -m [-abiTv] position archive file ...
        ar -p [-Tv] archive [file ...]
        ar -q [-cTv] archive file ...
        ar -r [-cuTv] archive file ...
        ar -r [-abciuTv] position archive file ...
        ar -t [-Tv] archive [file ...]
        ar -x [-ouTv] archive [file ...]
*** Error code 1

Stop.

>Fix:
	
>Audit-Trail:
>Unformatted: