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