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