Updated so as to not put symbols into separate *.pdb files
[dyninst.git] / nmake.program.tmpl
1 #
2 # This file defines the things that should be common to all "programs"
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.program.tmpl,v 1.4 1999/03/12 22:49:12 pcroth Exp $
8 #
9
10 BUILD_ID= -s $(SUITE_NAME) -v $(RELEASE_NUM)$(BUILD_MARK)$(BUILD_NUM)
11
12 !ifndef DEST
13 DEST            = $(TO_CORE)\$(PROGRAM_DEST)
14 !endif
15
16 !ifndef TARGETS
17 XTARGET = $(TARGET:.exe=)
18 VOUCHER = V_$(XTARGET)
19
20 $(VOUCHER):
21         @echo Updating build voucher information: $(VOUCHER)
22         $(BUILDSTAMP) $(BUILD_ID) $(XTARGET)
23         $(CC) -c -Tc $(VOUCHER).c
24 !endif
25
26 !ifndef UNCOMMON_LINK
27 !ifdef TARGET
28 $(TARGET): $(OBJS)
29         @$(MAKE) $(VOUCHER)
30         link -out:$(TARGET) -debug -pdb:none $(LDFLAGS) $(VOUCHER).obj $(OBJS) $(LIBDIR) $(LIBS) $(SYSLIBS)
31 !endif
32 !endif
33
34 #!ifndef UNCOMMON_LINK
35 # The user may set APP_PURE_OPTIONS for application-specific purify options
36 #pure: $(OBJS) $(LIBS)
37 #       purify $(APP_PURE_OPTIONS) -cache-dir=/tmp -$(MODCC) -collector=$(COLLECTOR) $(MODCC) -o $(TARGET) $(LDFLAGS) $(OBJS) $(LIBDIR) $(LIBS) $(SYSLIBS)
38 #!endif
39
40 #!ifndef UNCOMMON_LINK
41 #quantify: $(OBJS) $(LIBS)
42 #       quantify -cache-dir=/tmp -$(MODCC) -collector=$(COLLECTOR) $(MODCC) -o $(TARGET) $(LDFLAGS) $(OBJS) $(LIBDIR) $(LIBS) $(SYSLIBS)
43 #!endif
44
45 #!ifndef UNCOMMON_LINK
46 #qpt: $(OBJS) $(LIBS)
47 #       $(MODCC) -static -o $(TARGET) $(LDFLAGS) $(OBJS) $(LIBDIR) $(LIBS) $(SYSLIBS)
48 #       # qpt's quick profiling may produce incorrect results in programs
49 #       # executing interprocedural jumps; this includes setjmp/longjmp.
50 #       # Hence we must use the -s option for paradyn:
51 #       qpt2 -s $(TARGET)
52 #!endif
53
54 VPATH           = $(VPATH) ../src:$(TO_CORE)\$(LIBRARY_DEST):$(TO_CORE)/../lib/$(PLATFORM):$(BACKUP_CORE)/../lib/$(PLATFORM)
55
56
57 echo:
58         echo $(VPATH)
59
60 clean:
61         $(RM) *.obj  *.ilk *.pdb *.h *.C $(TARGET) $(TARGETS)
62
63 !ifndef UNCOMMON_INSTALL
64 install:  $(DEST)\$(TARGET)
65
66 $(DEST)\$(TARGET): $(TARGET)
67         $(CP) $(TARGET) $(DEST)
68 !endif
69
70 #.PHONY : depend
71 #depend:
72 #       $(RM) DEPENDS
73 #       $(MAKE) DEPENDS
74
75
76 # Define DEPENDS dependencies such that the DEPENDS files depends on
77 # the .I files, not the .[Ch] files; otherwise, DEPENDS get rebuilt
78 # all the time.  We do need to build the Igen-generated files before
79 # updating DEPENDS, however,
80 #
81 #!ifdef IGEN_ISRCS
82 #!ifdef EXPLICIT_DEPENDS
83 #DEPENDS:
84 #!else
85 #DEPENDS: $(SRCS) $(IGEN_ISRCS)
86 #!endif
87 #       touch DEPENDS
88 #       $(MAKE) $(IGEN_GEN_SRCS)
89 #       $(MAKE) $(SRCS)
90 #       $(MODCC) -MM $(MODCFLAGS) $(SRCS) $(IGEN_GEN_SRCS) > DEPENDS
91 ##      makedepend -fDEPENDS -- $(CFLAGS) $(SRCS) $(IGEN_SRCS) $(NOPED_SRCS)
92 #!else
93 #!ifdef EXPLICIT_DEPENDS
94 #ADEPENDS:
95 #!else
96 #DEPENDS: $(SRCS)
97 #!endif
98 #       touch DEPENDS
99 #       $(MAKE) $(SRCS)
100 #       $(MODCC) -MM $(MODCFLAGS) $(SRCS) > DEPENDS
101 ##      makedepend -fDEPENDS -- $(CFLAGS) $(SRCS)
102 #!endif
103
104
105
106 # A few pattern rules for simplicity.  The default lex rule is
107 # redefined, just for the sake of cleanliness.  More important are the
108 # igen rules; they "automatically" pick the correct type of igen to
109 # run.  Actually, we can't do this completely "right" unless igen is
110 # changed to generate different output files for the various type of
111 # interfaces.
112 #
113
114 {..\src\}.C.obj:
115         $(CXX) $(CXXFLAGS) -c $<
116
117 .C.obj:
118         $(CXX) $(CXXFLAGS) -c $<
119
120 {..\src\}.y.C:
121         $(YACC) $(YFLAGS) $<
122         $(RM) $@
123         $(MV) y.tab.c $@
124
125 {..\src\}.y.obj:
126         $(YACC) $(YFLAGS) $<
127         $(RM) $@
128         $(MV) y.tab.c $@
129         $(CXX) $(CXXFLAGS) -c $<
130
131
132 #%.C: %.y
133 #       $(YACC) $(YFLAGS) $<
134 #       $(MV) y.tab.c $@
135
136 %.C: %.l
137         $(LEX) -t $(LFLAGS) $< > $@
138
139 %.xdr.C %.xdr.CLNT.C %.xdr.CLNT.h %.xdr.SRVR.C %.xdr.SRVR.h %.xdr.h: %.I
140         $(IGEN) -xdr $(ICFLAGS) $<
141
142 %.thread.C %.thread.CLNT.h %.thread.SRVR.h %.thread.h: %.I
143         $(IGEN) -thread $(ICFLAGS) $<
144
145 #
146 # include the dependencies.
147 #
148 !include DEPENDS