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