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