igen --> $(IGEN)
[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.7  1996/01/05 19:51:52  tamches
9 # igen --> $(IGEN)
10 #
11 # Revision 1.6  1995/08/24 15:00:54  hollings
12 # AIX/SP-2 port (including option for split instruction/data heaps)
13 # Tracing of rexec (correctly spawns a paradynd if needed)
14 # Added rtinst function to read getrusage stats (can now be used in metrics)
15 # Critical Path
16 # Improved Error reporting in MDL sematic checks
17 # Fixed MDL Function call statement
18 # Fixed bugs in TK usage (strings passed where UID expected)
19 #
20 # Revision 1.5  1995/02/27  17:37:04  jcargill
21 # Added support for suppressing implicit dependency generation
22 # (EXPLICIT_DEPENDS) and removed PD_NO_DEPENDS support
23 #
24 # Revision 1.4  1995/02/21  16:34:06  jcargill
25 # Allow module-specific linking and installing where desired
26 #
27 # Revision 1.3  1995/02/17  22:19:21  markc
28 # Added defs to build libutilPVM.a
29 #
30 # Revision 1.2  1995/01/30  21:26:16  jcargill
31 # Better use of TO_CORE for modules below top-level (e.g. visiClients)
32 #
33 # Revision 1.1  1995/01/30  18:08:18  jcargill
34 # Major build system reorganization
35 #
36 #
37
38
39 VPATH           += ../src
40
41 OBJS =          $(patsubst %.C, %.o, $(filter %.C,$(notdir $(SRCS)))) \
42                 $(patsubst %.c, %.o, $(filter %.c,$(notdir $(SRCS)))) \
43                 $(patsubst %.y, %.o, $(filter %.y,$(notdir $(SRCS)))) \
44                 $(patsubst %.l, %.o, $(filter %.l,$(notdir $(SRCS)))) \
45                 $(patsubst %.s, %.o, $(filter %.s,$(notdir $(SRCS)))) \
46                 $(patsubst %.S, %.o, $(filter %.S,$(notdir $(SRCS)))) \
47                 $(IGEN_GEN_SRCS:%.C=%.o)
48
49 ifndef UNCOMMON_LINK
50 $(TARGET): $(OBJS)
51         @rm -f $(TARGET)
52         ar crv $(TARGET) $(OBJS)
53         $(RANLIB) $(TARGET)
54
55 ifdef TARGET2
56 $(TARGET2): $(OBJS2)
57         @rm -f $(TARGET2)
58         ar crv $(TARGET2) $(OBJS2)
59         $(RANLIB) $(TARGET2)
60 endif  # TARGET2
61 endif  # UNCOMMON_LINK
62
63 ifndef DEST
64 DEST            = $(TO_CORE)/../lib/$(PLATFORM)
65 endif
66
67 echo:
68         echo $(OBJS)
69
70 clean:
71         rm -f *.o *.[hC] *.a $(TARGET)
72
73 ifndef UNCOMMON_INSTALL
74 install: $(DEST)/$(TARGET)
75
76 $(DEST)/$(TARGET):  $(TARGET)
77         cp $(TARGET) $(DEST)
78         $(RANLIB) $(DEST)/$(TARGET)
79
80 #
81 # definition for secondary library
82 #
83 ifdef TARGET2
84 install: $(DEST)/$(TARGET2)
85
86 $(DEST)/$(TARGET2):  $(TARGET2)
87         cp $(TARGET2) $(DEST)
88         $(RANLIB) $(DEST)/$(TARGET2)
89 endif
90 endif      # ifndef UNCOMMON_INSTALL
91
92 #
93 # dependency generation definitions
94 #
95
96 .PHONY : depend
97 depend:
98         rm -f DEPENDS
99         $(MAKE) DEPENDS
100
101
102 # Define DEPENDS dependencies such that the DEPENDS files depends on
103 # the .I files, not the .[Ch] files; otherwise, DEPENDS get rebuilt
104 # all the time.  We do need to build the Igen-generated files before
105 # updating DEPENDS, however,
106 #
107 ifdef IGEN_ISRCS
108 ifdef EXPLICIT_DEPENDS
109 DEPENDS:
110 else
111 DEPENDS: $(SRCS) $(IGEN_ISRCS)
112 endif
113         touch DEPENDS
114         $(MAKE) $(IGEN_GEN_SRCS)
115         $(MAKE) $(SRCS)
116         $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_GEN_SRCS) > DEPENDS
117 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS)
118 else
119 ifdef EXPLICIT_DEPENDS
120 DEPENDS:
121 else
122 DEPENDS: $(SRCS)
123 endif
124         touch DEPENDS
125         $(MAKE) $(SRCS)
126         $(MODCC) -MM $(MODCFLAGS) $(SRCS) > DEPENDS
127 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
128 endif
129
130
131 #.depend.% %.C:
132 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
133
134 pure:
135
136
137
138 #
139 # A few pattern rules for simplicity in handling igen-generated files.
140 #
141
142 %.xdr.C %.xdr.CLNT.C %.xdr.CLNT.h %.xdr.SRVR.C %.xdr.SRVR.h %.xdr.h: %.I
143         $(IGEN) -xdr $(ICFLAGS) $<
144
145 %.thread.C %.thread.CLNT.h %.thread.SRVR.h %.thread.h: %.I
146         $(IGEN) -thread $(ICFLAGS) $<
147
148
149 #
150 # include the dependencies.
151 #
152 include DEPENDS