MRNet replaces xdr for frontend to daemon communication. New igen - - -
[dyninst.git] / nmake.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 # $Id: nmake.library.tmpl,v 1.9 2005/12/19 19:41:38 pack Exp $
8 #
9
10 BUILD_ID= -s $(SUITE_NAME) -v $(RELEASE_NUM)$(BUILD_MARK)$(BUILD_NUM)
11
12 XTARGET = $(TARGET:.lib=)
13 XTARGET = $(XTARGET:.dll=)
14 VOUCHER = V_$(XTARGET)
15
16 $(VOUCHER):
17         @echo Updating build voucher information: $(VOUCHER)
18         $(BUILDSTAMP) $(BUILD_ID) $(XTARGET)
19         $(CC) -c $(VOUCHER).c
20
21 VPATH           = $(VPATH) ../src
22
23 !ifndef UNCOMMON_LINK
24 $(TARGET): $(OBJS)
25         -$(RM) $(TARGET)
26         @$(MAKE) $(VOUCHER)
27         $(LINK) -lib $(LDFLAGS) -out:$*.lib $(VOUCHER).obj $(OBJS) $(SYSLIBS)
28
29 !ifdef TARGET2
30 $(TARGET2): $(OBJS2)
31         -$(RM) $(TARGET2)
32         @$(MAKE) $(VOUCHER)
33         $(AR) crv $(TARGET2) $(VOUCHER).obj $(OBJS2)
34         $(RANLIB) $(TARGET2)
35 !endif  # TARGET2
36 !endif  # UNCOMMON_LINK
37
38 !ifndef DEST
39 DEST            = $(TO_CORE)\$(LIBRARY_DEST)
40 !endif
41
42 echo:
43         echo $(OBJS)
44
45 clean:
46         -$(RM) *.obj *.h *.C *.lib *.exp *.pdb $(TARGET)
47
48 !ifndef UNCOMMON_INSTALL
49 install: $(DEST)/$(TARGET)
50
51 $(DEST)/$(TARGET):  $(TARGET)
52         $(CP) $(TARGET) $(DEST)
53 #       $(RANLIB) $(DEST)/$(TARGET)
54
55 #
56 # definition for secondary library
57 #
58 !ifdef TARGET2
59 install: $(DEST)/$(TARGET2)
60
61 $(DEST)/$(TARGET2):  $(TARGET2)
62         $(CP) $(TARGET2) $(DEST)
63         $(RANLIB) $(DEST)/$(TARGET2)
64 !endif
65 !endif      # ifndef UNCOMMON_INSTALL
66
67 #
68 # dependency generation definitions
69 #
70
71 #.PHONY : depend
72 #depend:
73 #       $(RM) DEPENDS
74 #       $(MAKE) DEPENDS
75
76
77 # Define DEPENDS dependencies such that the DEPENDS files depends on
78 # the .I files, not the .[Ch] files; otherwise, DEPENDS get rebuilt
79 # all the time.  We do need to build the Igen-generated files before
80 # updating DEPENDS, however,
81 #
82 #!ifdef IGEN_ISRCS
83 #!ifdef EXPLICIT_DEPENDS
84 #DEPENDS:
85 #!else
86 #DEPENDS: $(SRCS) $(IGEN_ISRCS)
87 #!endif
88 #       touch DEPENDS
89 #       $(MAKE) $(IGEN_GEN_SRCS)
90 #       $(MAKE) $(SRCS)
91 #       $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_GEN_SRCS) > DEPENDS
92 ##       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS)
93 #!else
94 #!ifdef EXPLICIT_DEPENDS
95 #DEPENDS:
96 #!else
97 #DEPENDS: $(SRCS)
98 #!endif
99 #       touch DEPENDS
100 #       $(MAKE) $(SRCS)
101 #       $(MODCC) -MM $(MODCFLAGS) $(SRCS) > DEPENDS
102 ##       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
103 #!endif
104
105
106 #.depend.% %.C:
107 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
108
109 pure:
110
111
112
113 #
114 # A few pattern rules for simplicity in handling igen-generated files.
115 #
116
117 %.mrnet.CLNT.C %.mrnet.CLNT.h %.mrnet.SRVR.C %.mrnet.SRVR.h %.mrnet.h: %.I
118         $(IGEN) -mrnet $(ICFLAGS) $<
119
120 %.thread.C %.thread.CLNT.h %.thread.SRVR.h %.thread.h: %.I
121         $(IGEN) -thread $(ICFLAGS) $<
122
123
124 {..\src\}.C.obj:
125         $(CXX) $(CXXFLAGS) -c $<
126
127 .C.obj:
128         $(CXX) $(CXXFLAGS) -c $<
129
130 {..\src\}.y.C:
131         $(YACC) $(YFLAGS) $<
132         -$(RM) $@
133         $(MV) y.tab.c $@
134
135 {..\src\}.y.obj:
136         $(YACC) $(YFLAGS) $<
137         -$(RM) $@
138         $(MV) y.tab.c $@
139         $(CXX) $(CXXFLAGS) -c $<
140
141
142
143 #
144 # include the dependencies.
145 #
146 !include DEPENDS
147