Updated to compile under new system.
[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.4  1995/02/21 16:34:06  jcargill
9 # Allow module-specific linking and installing where desired
10 #
11 # Revision 1.3  1995/02/17  22:19:21  markc
12 # Added defs to build libutilPVM.a
13 #
14 # Revision 1.2  1995/01/30  21:26:16  jcargill
15 # Better use of TO_CORE for modules below top-level (e.g. visiClients)
16 #
17 # Revision 1.1  1995/01/30  18:08:18  jcargill
18 # Major build system reorganization
19 #
20 #
21
22
23 VPATH           += ../src
24
25 OBJS =          $(patsubst %.C, %.o, $(filter %.C,$(notdir $(SRCS)))) \
26                 $(patsubst %.c, %.o, $(filter %.c,$(notdir $(SRCS)))) \
27                 $(patsubst %.y, %.o, $(filter %.y,$(notdir $(SRCS)))) \
28                 $(patsubst %.l, %.o, $(filter %.l,$(notdir $(SRCS)))) \
29                 $(patsubst %.s, %.o, $(filter %.s,$(notdir $(SRCS)))) \
30                 $(IGEN_GEN_SRCS:%.C=%.o)
31
32 ifndef UNCOMMON_LINK
33 $(TARGET): $(OBJS)
34         @rm -f $(TARGET)
35         ar crv $(TARGET) $(OBJS)
36         $(RANLIB) $(TARGET)
37
38 ifdef TARGET2
39 $(TARGET2): $(OBJS2)
40         @rm -f $(TARGET2)
41         ar crv $(TARGET2) $(OBJS2)
42         $(RANLIB) $(TARGET2)
43 endif  # TARGET2
44 endif  # UNCOMMON_LINK
45
46 ifndef DEST
47 DEST            = $(TO_CORE)/../lib/$(PLATFORM)
48 endif
49
50 echo:
51         echo $(OBJS)
52
53 clean:
54         rm -f *.o *.[hC] *.a $(TARGET)
55
56 ifndef UNCOMMON_INSTALL
57 install: $(DEST)/$(TARGET)
58
59 $(DEST)/$(TARGET):  $(TARGET)
60         cp $(TARGET) $(DEST)
61         $(RANLIB) $(DEST)/$(TARGET)
62
63 #
64 # definition for secondary library
65 #
66 ifdef TARGET2
67 install: $(DEST)/$(TARGET2)
68
69 $(DEST)/$(TARGET2):  $(TARGET2)
70         cp $(TARGET2) $(DEST)
71         $(RANLIB) $(DEST)/$(TARGET2)
72 endif
73 endif      # ifndef UNCOMMON_INSTALL
74
75 #
76 # dependency generation definitions
77 #
78
79 depend: DEPENDS
80
81
82 # Define DEPENDS dependencies such that the DEPENDS files depends on
83 # the .I files, not the .[Ch] files; otherwise, DEPENDS get rebuilt
84 # all the time.  We do need to build the Igen-generated files before
85 # updating DEPENDS, however,
86 #
87 ifdef IGEN_ISRCS
88 DEPENDS: $(SRCS) $(IGEN_ISRCS)
89         touch DEPENDS
90         $(MAKE) $(IGEN_GEN_SRCS)
91         $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS) > DEPENDS
92 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS)
93 else
94 DEPENDS: $(SRCS)
95         touch DEPENDS
96         $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS) > DEPENDS
97 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
98 endif
99
100
101 #.depend.% %.C:
102 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
103
104 pure:
105
106
107
108 #
109 # A few pattern rules for simplicity in handling igen-generated files.
110 #
111
112 %.xdr.C %.xdr.CLNT.C %.xdr.CLNT.h %.xdr.SRVR.C %.xdr.SRVR.h %.xdr.h: %.I
113         igen -xdr $(ICFLAGS) $<
114
115 %.thread.C %.thread.CLNT.h %.thread.SRVR.h %.thread.h: %.I
116         igen -thread $(ICFLAGS) $<
117
118
119 #
120 # include the dependencies.
121 #
122 include DEPENDS