Documentation file cleanup.
[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.10 2006/01/30 07:16:50 jaw 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 #       touch DEPENDS
75 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
76         $(MAKE) DEPENDS
77
78
79 # Define DEPENDS dependencies such that the DEPENDS files depends on
80 # the .I files, not the .[Ch] files; otherwise, DEPENDS get rebuilt
81 # all the time.  We do need to build the Igen-generated files before
82 # updating DEPENDS, however,
83 #
84 #!ifdef IGEN_ISRCS
85 #!ifdef EXPLICIT_DEPENDS
86 #DEPENDS:
87 #!else
88 #DEPENDS: $(SRCS) $(IGEN_ISRCS)
89 #!endif
90 #       touch DEPENDS
91 #       $(MAKE) $(IGEN_GEN_SRCS)
92 #       $(MAKE) $(SRCS)
93 #       $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_GEN_SRCS) > DEPENDS
94 ##       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS)
95 #!else
96 #!ifdef EXPLICIT_DEPENDS
97 #DEPENDS:
98 #!else
99 DEPENDS: $(SRCS)
100 #!endif
101 #       touch DEPENDS
102 #       $(MAKE) $(SRCS)
103         $(MODCC) -MM $(MODCFLAGS) $(SRCS) > DEPENDS
104 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
105 #!endif
106
107
108 #.depend.% %.C:
109 #       makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
110
111 pure:
112
113
114
115 #
116 # A few pattern rules for simplicity in handling igen-generated files.
117 #
118
119 %.mrnet.CLNT.C %.mrnet.CLNT.h %.mrnet.SRVR.C %.mrnet.SRVR.h %.mrnet.h: %.I
120         $(IGEN) -mrnet $(ICFLAGS) $<
121
122 %.thread.C %.thread.CLNT.h %.thread.SRVR.h %.thread.h: %.I
123         $(IGEN) -thread $(ICFLAGS) $<
124
125
126 {..\src\}.C.obj:
127         $(CXX) $(CXXFLAGS) -c $<
128
129 .C.obj:
130         $(CXX) $(CXXFLAGS) -c $<
131
132 {..\src\}.y.C:
133         $(YACC) $(YFLAGS) $<
134         -$(RM) $@
135         $(MV) y.tab.c $@
136
137 {..\src\}.y.obj:
138         $(YACC) $(YFLAGS) $<
139         -$(RM) $@
140         $(MV) y.tab.c $@
141         $(CXX) $(CXXFLAGS) -c $<
142
143
144
145 #
146 # include the dependencies.
147 #
148 #!include DEPENDS
149