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