2 # This file defines the things that should be common to all "libraries"
3 # in the paradyn build tree. It depends on things like SRCS and
4 # TARGET being set correctly in the module-specific template and the
5 # architecture-specific Makefile.
7 # $Id: make.library.tmpl,v 1.15 1999/06/08 04:53:41 csserra Exp $
10 BUILD_ID= -s $(SUITE_NAME) -v $(RELEASE_NUM)$(BUILD_MARK)$(BUILD_NUM)
12 XTARGET = $(basename $(basename $(TARGET)))
13 VOUCHER = V_$(XTARGET)
16 @echo Updating build voucher information: $(VOUCHER)
17 $(BUILDSTAMP) $(BUILD_ID) $(XTARGET)
18 $(MODCC) -c $(VOUCHER).c
22 OBJS = $(patsubst %.C, %.o, $(filter %.C,$(notdir $(SRCS)))) \
23 $(patsubst %.c, %.o, $(filter %.c,$(notdir $(SRCS)))) \
24 $(patsubst %.y, %.o, $(filter %.y,$(notdir $(SRCS)))) \
25 $(patsubst %.l, %.o, $(filter %.l,$(notdir $(SRCS)))) \
26 $(patsubst %.s, %.o, $(filter %.s,$(notdir $(SRCS)))) \
27 $(patsubst %.S, %.o, $(filter %.S,$(notdir $(SRCS)))) \
28 $(IGEN_GEN_SRCS:%.C=%.o)
34 $(AR) crv $(TARGET) $(VOUCHER).o $(OBJS)
38 XTARGET2= $(basename $(TARGET2))
39 VOUCHER2= V_$(XTARGET2)
44 $(AR) crv $(TARGET2) $(VOUCHER2).o $(OBJS2)
49 XTARGET3= $(basename $(basename $(TARGET3_SO)))
50 VOUCHER3= V_$(XTARGET3)
52 $(TARGET3_SO): $(OBJS)
55 $(LD) $(LDFLAGS) -o $(TARGET3_SO) $(VOUCHER3).o $(OBJS) $(LIBS)
60 DEST = $(TO_CORE)/$(LIBRARY_DEST)
67 $(RM) *.o *.[hC] *.a *.so* $(TARGET)
69 ifndef UNCOMMON_INSTALL
72 install: $(DEST)/$(TARGET)
74 $(DEST)/$(TARGET): $(TARGET)
75 -$(CP) $(TARGET) $(DEST)
76 $(RANLIB) $(DEST)/$(TARGET)
80 install: $(DEST)/$(TARGET3_SO)
82 $(DEST)/$(TARGET3_SO): $(TARGET3_SO)
83 -$(CP) $(TARGET3_SO) $(DEST)
88 # definition for secondary library
91 install: $(DEST)/$(TARGET2)
93 $(DEST)/$(TARGET2): $(TARGET2)
94 -$(CP) $(TARGET2) $(DEST)
95 $(RANLIB) $(DEST)/$(TARGET2)
99 # definition for USES_LIBDYNINSTRT_SO
102 install: $(DEST)/$(TARGET3)
104 $(DEST)/$(TARGET3): $(TARGET3)
105 -$(CP) $(TARGET3) $(DEST)
108 endif # ifndef UNCOMMON_INSTALL
111 # dependency generation definitions
120 # Define DEPENDS dependencies such that the DEPENDS files depends on
121 # the .I files, not the .[Ch] files; otherwise, DEPENDS get rebuilt
122 # all the time. We do need to build the Igen-generated files before
123 # updating DEPENDS, however,
126 ifdef EXPLICIT_DEPENDS
129 DEPENDS: $(SRCS) $(IGEN_ISRCS)
132 $(MAKE) $(IGEN_GEN_SRCS)
134 $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_GEN_SRCS) > DEPENDS
135 # makedepend -fDEPENDS -- $(CFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS)
137 ifdef EXPLICIT_DEPENDS
145 gcc -MM $(MODCFLAGS) $(SRCS) > DEPENDS
147 $(MODCC) -MM $(MODCFLAGS) $(SRCS) > DEPENDS
149 # makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
154 # makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
160 # A few pattern rules for simplicity in handling igen-generated files.
163 %.xdr.C %.xdr.CLNT.C %.xdr.CLNT.h %.xdr.SRVR.C %.xdr.SRVR.h %.xdr.h: %.I
164 $(IGEN) -xdr $(ICFLAGS) $<
166 %.thread.C %.thread.CLNT.h %.thread.SRVR.h %.thread.h: %.I
167 $(IGEN) -thread $(ICFLAGS) $<
171 # include the dependencies.