Query for Pmake Gurus on makeing libraries
Steve Dahmen
smd at rehder.larc.nasa.gov
Thu Mar 28 01:26:24 AEST 1991
After diligently scanning the blessed manpage for Pmake, i am at wits
end trying to get my pmake file to function correctly.
Here's the problem.
I am keeping both a library (libsmart.a) and an executable (smart) up
to date. The
library is basically all the .o files used in the executable, to be
used by developers when linking their own test versions, etc.
Most everything works fine. The odd thing happens when I make a
change to a source (.c) file.
When I invoke pmake, it compiles the .c file correctly, and changes
the archive, but then tells me that my executable is "up to date", but
I (think) I have my executable depending on the library file. When it
exits, I can then reinvoke "pmake Smart", and it compiles my
executable appropriately. How can I get it to do it in the same
invocation of pmake?
Here's the abbreviated makefile....
email is fine/preferred.
===================
# $SMART and $PROJ are environmental variables
#PROJ = $(SMART)
# where you want the smart executable
INSTALLDIR = $(SMART)
# where you want the library put
LIBDIR = $(SMART)
.PATH : $(PROJ)/code
.PATH.h : $(PROJ)/code/include $(PROJ)/code/datastruc
.LIBS: .a
.PATH.a : $(LIBDIR)
LIB= libsmart.a
OBJS = an_node.o\
curves.o\
popup.o\
bezier_link.o\
reset_tree.o\
dim_node.o .... etc.
CFLAGSD = -c -g $(.INCLUDES)
LDFLAGS = -t $(.LIBS) -lsmart -lgl_s -lgutil -limage -lm -g
.c.o :
$(CC) $(CFLAGSD) $(.IMPSRC) -o $(.TARGET)
${LIB}: ${LIB}($(OBJS))
Smart: ${LIB}
$(CC) $(LDFLAGS) -o Smart
strip Smart
# for those compiles where you know all is ok.
force:
$(CC) $(LDFLAGS) -o Smart
strip Smart
install: Smart
# pmake Smart
ln $(LIB) $(LIBDIR)
ln Smart $(INSTALLDIR)/smart
.o.a:
...
ar cru ${LIB} $(.OODATE)
rm -f $(.OODATE)
continuing with all the individual dependencies for the .o files, not
listing special commands to make them.
--
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Steve Dahmen, Systems Analyst (804) 864-4519 (W)
M/S 365, NASA Langley Research Center
Hampton, Virginia 23665 smd at rehder.larc.nasa.gov
More information about the Comp.sys.sgi
mailing list