Major build system reorganization
[dyninst.git] / make.library.tmpl
1 #
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.
6
7 # $Log: make.library.tmpl,v $
8 # Revision 1.1  1995/01/30 18:08:18  jcargill
9 # Major build system reorganization
10 #
11 #
12
13
14 VPATH           += ../src
15
16 OBJS =          $(patsubst %.C, %.o, $(filter %.C,$(notdir $(SRCS)))) \
17                 $(patsubst %.c, %.o, $(filter %.c,$(notdir $(SRCS)))) \
18                 $(patsubst %.y, %.o, $(filter %.y,$(notdir $(SRCS)))) \
19                 $(patsubst %.l, %.o, $(filter %.l,$(notdir $(SRCS)))) \
20                 $(patsubst %.s, %.o, $(filter %.s,$(notdir $(SRCS)))) \
21                 $(IGEN_GEN_SRCS:%.C=%.o)
22
23 $(TARGET): $(OBJS)
24         @rm -f $(TARGET)
25         ar crv $(TARGET) $(OBJS)
26         $(RANLIB) $(TARGET)
27
28 ifndef DEST
29 DEST            = ../../../lib/$(PLATFORM)
30 endif
31
32 echo:
33         echo $(OBJS)
34
35 clean:
36         rm -f *.o *.[hC] *.a $(TARGET)
37
38 ifndef UNCOMMON_INSTALL
39 install: $(DEST)/$(TARGET)
40 endif
41
42 $(DEST)/$(TARGET):  $(TARGET)
43         cp $(TARGET) $(DEST)
44         $(RANLIB) $(DEST)/$(TARGET)
45
46 #
47 # definition for secondary library
48 #
49 ifdef TARGET2
50 install: $(DEST)/$(TARGET2)
51
52 $(DEST)/$(TARGET2):  $(TARGET2)
53         cp $(TARGET2) $(DEST)
54         $(RANLIB) $(DEST)/$(TARGET2)
55 endif
56
57 #
58 # dependency generation definitions
59 #
60
61 depend: DEPENDS
62
63
64 # Define DEPENDS dependencies such that the DEPENDS files depends on
65 # the .I files, not the .[Ch] files; otherwise, DEPENDS get rebuilt
66 # all the time.  We do need to build the Igen-generated files before
67 # updating DEPENDS, however,
68 #
69 ifdef IGEN_ISRCS
70 DEPENDS: $(SRCS) $(IGEN_ISRCS)
71         touch DEPENDS
72         $(MAKE) $(IGEN_GEN_SRCS)
73         $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS) > DEPENDS
74 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS)
75 else
76 DEPENDS: $(SRCS)
77         touch DEPENDS
78         $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS) > DEPENDS
79 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
80 endif
81
82
83 #.depend.% %.C:
84 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
85
86 pure:
87
88
89
90 #
91 # A few pattern rules for simplicity in handling igen-generated files.
92 #
93
94 %.xdr.C %.xdr.CLNT.C %.xdr.CLNT.h %.xdr.SRVR.C %.xdr.SRVR.h %.xdr.h: %.I
95         igen -xdr $(ICFLAGS) $<
96
97 %.thread.C %.thread.CLNT.h %.thread.SRVR.h %.thread.h: %.I
98         igen -thread $(ICFLAGS) $<
99
100
101 #
102 # include the dependencies.
103 #
104 include DEPENDS