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