Build tethereal and editcap on Win32.
[obnox/wireshark/wip.git] / Makefile.nmake
1 ## Makefile for building ethereal.exe with Microsoft C and nmake
2 ## Use: nmake -f makefile.nmake
3 #
4 # $Id: Makefile.nmake,v 1.24 2000/04/12 21:51:27 gram Exp $
5
6 include config.nmake
7
8 ############### no need to modify below this line #########
9
10 CC = cl
11 LINK= link
12
13 LDFLAGS = /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /MACHINE:I386 \
14         $(LOCAL_LDFLAGS)
15
16 CFLAGS=/MT -DHAVE_CONFIG_H $(LOCAL_CFLAGS) /I$(GLIB_DIR) /I$(GLIB_DIR)\gmodule \
17         /I$(GTK_DIR) /Iwiretap /I$(GTK_DIR)\gdk /I$(GTK_DIR)\gdk\win32 \
18         /I$(PCAP_DIR)/include
19
20 DISSECTOR_OBJECTS = \
21         packet-aarp.obj  \
22         packet-afs.obj   \
23         packet-arp.obj   \
24         packet-ascend.obj\
25         packet-atalk.obj \
26         packet-atm.obj   \
27         packet-auto_rp.obj   \
28         packet-bgp.obj   \
29         packet-bootp.obj \
30         packet-bootparams.obj \
31         packet-bpdu.obj  \
32         packet-cdp.obj   \
33         packet-cgmp.obj  \
34         packet-clip.obj  \
35         packet-data.obj  \
36         packet-dhis.obj  \
37         packet-dns.obj   \
38         packet-eth.obj   \
39         packet-fddi.obj  \
40         packet-ftp.obj   \
41         packet-giop.obj  \
42         packet-gre.obj   \
43         packet-h1.obj    \
44         packet-hsrp.obj  \
45         packet-http.obj  \
46         packet-icmpv6.obj\
47         packet-icp.obj   \
48         packet-icq.obj   \
49         packet-imap.obj   \
50         packet-ip.obj    \
51         packet-ipp.obj   \
52         packet-ipsec.obj \
53         packet-ipv6.obj  \
54         packet-ipx.obj   \
55         packet-irc.obj   \
56         packet-isakmp.obj\
57         packet-isis.obj  \
58         packet-isis-clv.obj \
59         packet-isis-hello.obj \
60         packet-isis-lsp.obj \
61         packet-isis-snp.obj \
62         packet-isl.obj \
63         packet-l2tp.obj  \
64         packet-lapb.obj  \
65         packet-lapd.obj  \
66         packet-ldap.obj  \
67         packet-llc.obj   \
68         packet-lpd.obj   \
69         packet-mapi.obj  \
70         packet-mount.obj \
71         packet-mpls.obj \
72         packet-nbipx.obj \
73         packet-nbns.obj  \
74         packet-ncp.obj   \
75         packet-netbios.obj \
76         packet-nfs.obj   \
77         packet-nlm.obj   \
78         packet-nntp.obj  \
79         packet-ntp.obj  \
80         packet-null.obj  \
81         packet-osi.obj   \
82         packet-ospf.obj  \
83         packet-pim.obj   \
84         packet-pop.obj   \
85         packet-portmap.obj   \
86         packet-ppp.obj   \
87         packet-pppoe.obj \
88         packet-pptp.obj  \
89         packet-q2931.obj \
90         packet-q931.obj  \
91         packet-radius.obj\
92         packet-raw.obj   \
93         packet-rip.obj   \
94         packet-ripng.obj \
95         packet-rlogin.obj \
96         packet-rpc.obj   \
97         packet-rsvp.obj  \
98         packet-rtsp.obj  \
99         packet-rx.obj  \
100         packet-sap.obj   \
101         packet-sdp.obj   \
102         packet-smb.obj   \
103         packet-smb-browse.obj \
104         packet-smb-common.obj \
105         packet-smb-logon.obj \
106         packet-smb-mailslot.obj \
107         packet-smb-pipe.obj \
108         packet-sna.obj   \
109         packet-snmp.obj \
110         packet-srvloc.obj \
111         packet-sscop.obj \
112         packet-stat.obj   \
113         packet-tacacs.obj \
114         packet-tcp.obj   \
115         packet-telnet.obj\
116         packet-tftp.obj  \
117         packet-time.obj  \
118         packet-tns.obj \
119         packet-tr.obj    \
120         packet-trmac.obj \
121         packet-udp.obj   \
122         packet-v120.obj \
123         packet-vines.obj \
124         packet-vlan.obj \
125         packet-vrrp.obj \
126         packet-vtp.obj  \
127         packet-wccp.obj\
128         packet-who.obj\
129         packet-x25.obj   \
130         packet-yhoo.obj  \
131         packet-ypbind.obj \
132         packet-ypserv.obj \
133         packet-ypxfr.obj \
134
135 ETHEREAL_COMMON_OBJECTS = \
136         asn1.obj         \
137         column.obj       \
138         conversation.obj \
139         dfilter-grammar.obj \
140         dfilter-scanner.obj \
141         dfilter.obj      \
142         ethertype.obj    \
143         follow.obj       \
144         getopt.obj       \
145         ipproto.obj      \
146         ipv4.obj         \
147         packet.obj       \
148         plugins.obj      \
149         prefs.obj        \
150         print.obj        \
151         proto.obj        \
152         ps.obj           \
153         register.obj     \
154         resolv.obj       \
155         util.obj         \
156         xdlc.obj         \
157
158 ethereal_OBJECTS = \
159         $(DISSECTOR_OBJECTS) \
160         $(ETHEREAL_COMMON_OBJECTS) \
161         capture.obj      \
162         file.obj         \
163         summary.obj      \
164
165 tethereal_OBJECTS = \
166         $(DISSECTOR_OBJECTS) \
167         $(ETHEREAL_COMMON_OBJECTS) \
168         tethereal.obj
169
170 EXTRA_OBJECTS = \
171         snprintf.obj    \
172         strerror.obj    \
173         mkstemp.obj     \
174         inet_aton.obj     \
175         inet_pton.obj     \
176         inet_ntop.obj
177
178 ethereal_LIBS= wiretap\libwtap.lib gtk\libui.lib wsock32.lib user32.lib \
179         $(GTK_DIR)\gtk\gtk-$(GTK_VERSION).lib \
180         $(GTK_DIR)\gdk\win32\gdk-$(GTK_VERSION).lib \
181         $(GLIB_DIR)\glib-$(GLIB_VERSION).lib \
182         $(GLIB_DIR)\gmodule-$(GLIB_VERSION).lib \
183         $(PCAP_DIR)\lib\libpcap.lib
184
185 tethereal_LIBS= wiretap\libwtap.lib wsock32.lib user32.lib \
186         $(GLIB_DIR)\glib-$(GLIB_VERSION).lib \
187         $(GLIB_DIR)\gmodule-$(GLIB_VERSION).lib \
188         $(PCAP_DIR)\lib\libpcap.lib
189
190 editcap_LIBS= wiretap\libwtap.lib wsock32.lib user32.lib \
191         $(GLIB_DIR)\glib-$(GLIB_VERSION).lib \
192         $(GLIB_DIR)\gmodule-$(GLIB_VERSION).lib
193
194 EXECUTABLES=ethereal.exe tethereal.exe editcap.exe
195
196 all: $(EXECUTABLES)
197
198 ethereal.exe    : config.h $(ethereal_OBJECTS) $(EXTRA_OBJECTS) wiretap gtk plugins
199         $(LINK) @<<
200                 /OUT:ethereal.exe $(LDFLAGS) $(ethereal_LIBS) $(ethereal_OBJECTS) $(EXTRA_OBJECTS)
201 <<
202
203 tethereal.exe   : config.h $(tethereal_OBJECTS) $(EXTRA_OBJECTS) wiretap plugins
204         $(LINK) @<<
205                 /OUT:tethereal.exe $(LDFLAGS) $(tethereal_LIBS) $(tethereal_OBJECTS) $(EXTRA_OBJECTS)
206 <<
207
208 editcap.exe     : config.h editcap.obj getopt.obj wiretap
209         $(LINK) @<<
210                 /OUT:editcap.exe $(LDFLAGS) editcap.obj getopt.obj $(editcap_LIBS)
211 <<
212
213 config.h        : config.h.win32
214         copy config.h.win32 $@
215
216 ps.c    : rdps.exe print.ps
217         rdps print.ps ps.c
218
219 dfilter-scanner.obj : dfilter-scanner.c dfilter-grammar.h
220
221 dfilter-scanner.c : dfilter-scanner.l
222         $(LEX) -Pdfilter_ -odfilter-scanner.c dfilter-scanner.l
223
224 dfilter-grammar.c dfilter-grammar.h : dfilter-grammar.y
225         $(YACC) $(YACC_OPTS) -d -p dfilter_ dfilter-grammar.y -o dfilter-grammar.c
226
227 #
228 # TODO: Create register.c
229 #
230
231 clean:
232         rm -f $(ethereal_OBJECTS) $(EXTRA_OBJECTS) $(EXECUTABLES) tethereal.obj editcap.obj
233         cd wiretap
234         nmake -f Makefile.nmake clean
235         cd ../gtk
236         nmake -f Makefile.nmake clean
237         cd ../plugins
238         nmake -f Makefile.nmake clean
239         cd ..
240
241 wiretap::
242         cd wiretap
243         nmake -f Makefile.nmake
244         cd ..
245
246 gtk::
247         cd gtk
248         nmake -f Makefile.nmake
249         cd ..
250
251 plugins::
252         cd plugins
253         nmake -f Makefile.nmake
254         cd ..
255