cleanup matelib and mate examples
[obnox/wireshark/wip.git] / Makefile.nmake
1 ## Makefile for building ethereal.exe with Microsoft C and nmake
2 ## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
3 #
4 # $Id$
5
6 include config.nmake
7 include <win32.mak>
8
9 ############### no need to modify below this line #########
10
11 CC = cl
12 LINK= link
13
14 LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386 $(LOCAL_LDFLAGS)
15
16 CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) $(GLIB_CFLAGS) /I. /Iwiretap \
17         $(ZLIB_CFLAGS) /I$(PCAP_DIR)\include \
18         /I$(NET_SNMP_DIR)\include /I$(NET_SNMP_DIR)\win32 \
19         $(ADNS_CFLAGS) $(PCRE_CFLAGS) -D_U_=""
20
21 CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
22
23 .c.obj::
24         $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
25
26 PLATFORM_SRC = capture-wpcap.c
27
28 include Makefile.common
29
30 BUILT_SOURCES = $(BUILT_SOURCES) \
31         svnversion.h
32
33 ethereal_OBJECTS = $(ethereal_SOURCES:.c=.obj)
34 tethereal_OBJECTS = $(tethereal_SOURCES:.c=.obj)
35 dftest_OBJECTS = $(dftest_SOURCES:.c=.obj)
36
37 randpkt_OBJECTS = $(randpkt_SOURCES:.c=.obj)
38
39 command_line_OBJECTS = setargv.obj
40
41 EXTRA_OBJECTS = \
42 #       snprintf.obj    \
43 #       strerror.obj    \
44         mkstemp.obj     \
45         strptime.obj
46
47 ethereal_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
48         wsock32.lib user32.lib shell32.lib \
49         $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib \
50 !IFDEF ENABLE_LIBETHEREAL
51         epan\libethereal.lib \
52 !ELSE
53         epan\dissectors\dissectors.lib \
54         epan\ethereal.lib \
55         epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
56         $(ADNS_LIBS) \
57         $(PCRE_LIBS) \
58         $(ZLIB_LIBS)
59 !ENDIF
60 #       $(PCAP_DIR)\lib\wpcap.lib
61
62 tethereal_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
63         wsock32.lib user32.lib \
64         $(GLIB_LIBS) \
65         $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib \
66 !IFDEF ENABLE_LIBETHEREAL
67         epan\libethereal.lib \
68 !ELSE
69         epan\dissectors\dissectors.lib \
70         epan\ethereal.lib \
71         epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
72         $(ADNS_LIBS) \
73         $(PCRE_LIBS) \
74         $(ZLIB_LIBS)
75 !ENDIF
76
77 capinfos_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
78         wsock32.lib user32.lib \
79         $(GLIB_LIBS)
80
81 editcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
82         wsock32.lib user32.lib \
83         $(GLIB_LIBS)
84
85 mergecap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
86         wsock32.lib user32.lib \
87         $(GLIB_LIBS)
88
89 dftest_LIBS=  wiretap\wiretap-$(WTAP_VERSION).lib \
90         wsock32.lib user32.lib \
91         $(GLIB_LIBS) \
92         $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib \
93 !IFDEF ENABLE_LIBETHEREAL
94         epan\libethereal.lib \
95 !ELSE
96         epan\dissectors\dissectors.lib \
97         epan\ethereal.lib \
98         epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
99         $(ADNS_LIBS) \
100         $(PCRE_LIBS) \
101         $(ZLIB_LIBS)    
102 !ENDIF
103
104 randpkt_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
105         user32.lib \
106         $(GLIB_LIBS) \
107         $(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib
108
109 EXECUTABLES=ethereal.exe ethereal-gtk2.exe tethereal.exe \
110         capinfos.exe editcap.exe mergecap.exe text2pcap.exe
111
112 RESOURCES=image\ethereal.res image\libethereal.res image\tethereal.res \
113         image\capinfos.res image\editcap.res image\mergecap.res \
114         image\text2pcap.res image\wiretap.res
115
116 all: config.h tools image wiretap epan $(EXECUTABLES) $(RESOURCES) doc
117
118 packaging: all
119         cd packaging
120         cd nsis
121         nmake -f makefile.nmake
122         cd ..
123         cd ..
124
125 separate_packaging: all
126         cd packaging
127         cd nsis
128 !IFDEF GTK1_DIR
129         nmake -f makefile.nmake GTK1_ONLY="USE"
130 !ENDIF
131 !IFDEF GTK2_DIR
132         nmake -f makefile.nmake GTK2_ONLY="USE"
133 !ENDIF
134         cd ..
135         cd ..
136
137 $(RESOURCES): image
138
139 wiretap\wiretap-$(WTAP_VERSION).lib: wiretap
140
141 !IFNDEF GTK1_DIR
142 ethereal.exe    : 
143 !ELSE
144 ethereal.exe    : config.h svnversion.h $(ethereal_OBJECTS) epan gtk image\ethereal.res wiretap\wiretap-$(WTAP_VERSION).lib gtk\libui.lib plugins
145         @echo Linking $@
146         $(LINK) @<<
147                 /OUT:ethereal.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /SUBSYSTEM:windows $(ethereal_LIBS) $(GTK1_LIBS) gtk\libui.lib $(ethereal_OBJECTS) image\ethereal.res
148 <<
149 !ENDIF
150
151 !IFNDEF GTK2_DIR
152 ethereal-gtk2.exe       : 
153 !ELSE
154 ethereal-gtk2.exe       : config.h svnversion.h $(ethereal_OBJECTS) epan gtk2 image\ethereal.res wiretap\wiretap-$(WTAP_VERSION).lib gtk2.tmp\libui.lib plugins
155         @echo Linking $@
156         $(LINK) @<<
157                 /OUT:ethereal-gtk2.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /SUBSYSTEM:windows $(ethereal_LIBS) $(GTK2_LIBS) gtk2.tmp\libui.lib $(ethereal_OBJECTS) image\ethereal.res
158 <<
159 !ENDIF
160
161 tethereal.exe   : config.h svnversion.h $(tethereal_OBJECTS) epan image\tethereal.res wiretap\wiretap-$(WTAP_VERSION).lib plugins
162         @echo Linking $@
163         $(LINK) @<<
164                 /OUT:tethereal.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(tethereal_LIBS) $(tethereal_OBJECTS) $(command_line_OBJECTS) image\tethereal.res
165 <<
166
167 capinfos.exe    : config.h capinfos.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\capinfos.res
168         @echo Linking $@
169         $(LINK) @<<
170                 /OUT:capinfos.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console capinfos.obj getopt.obj $(command_line_OBJECTS) $(capinfos_LIBS) image\capinfos.res
171 <<
172
173 editcap.exe     : config.h editcap.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\editcap.res
174         @echo Linking $@
175         $(LINK) @<<
176                 /OUT:editcap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console editcap.obj getopt.obj $(command_line_OBJECTS) $(editcap_LIBS) image\editcap.res
177 <<
178
179 mergecap.exe    : config.h svnversion.h mergecap.obj merge.obj getopt.obj wiretap\wiretap-$(WTAP_VERSION).lib image\mergecap.res
180         @echo Linking $@
181         $(LINK) @<<
182                 /OUT:mergecap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console mergecap.obj merge.obj getopt.obj $(command_line_OBJECTS) $(mergecap_LIBS) image\mergecap.res
183 <<
184
185 text2pcap.exe   : config.h text2pcap.obj text2pcap-scanner.obj getopt.obj strptime.obj image\text2pcap.res
186         @echo Linking $@
187         $(LINK) @<<
188                 /OUT:text2pcap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console text2pcap.obj text2pcap-scanner.obj getopt.obj strptime.obj $(command_line_OBJECTS) image\text2pcap.res
189 <<
190
191 dftest.exe      : $(dftest_OBJECTS) epan
192         $(LINK) @<<
193                 /OUT:dftest.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(dftest_LIBS) $(dftest_OBJECTS)
194 <<
195
196 randpkt.exe     : $(randpkt_OBJECTS)
197         $(LINK) @<<
198                 /OUT:randpkt.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(randpkt_LIBS) $(randpkt_OBJECTS) $(command_line_OBJECTS)
199 <<
200
201 config.h        : config.h.win32 config.nmake
202         sed -e s/@VERSION@/$(VERSION)/ \
203             -e "s/@HAVE_GNU_ADNS@/$(ADNS_CONFIG)/" \
204             -e "s/@HAVE_PCRE@/$(PCRE_CONFIG)/" \
205             -e "s/@HAVE_NETTLE@/$(NETTLE_CONFIG)/" \
206             -e "s/@HAVE_LIBZ@/$(ZLIB_CONFIG)/" \
207             -e "s/@HAVE_LIBPCAP@/$(WINPCAP_CONFIG)/" \
208             -e "s/@HAVE_PCAP_FINDALLDEVS@/$(PCAP_FINDALLDEVS_CONFIG)/" \
209             -e "s/@HAVE_PCAP_DATALINK_NAME_TO_VAL@/$(PCAP_DATALINK_NAME_TO_VAL_CONFIG)/" \
210             -e "s/@HAVE_PCAP_DATALINK_VAL_TO_NAME@/$(PCAP_DATALINK_VAL_TO_NAME_CONFIG)/" \
211             -e "s/@HAVE_LIBETHEREALDLL@/$(LIBETHEREAL_CONFIG)/" \
212             -e "s/@WPCAP_CONSTIFIED@/$(WPCAP_CONSTIFIED_CONFIG)/" \
213             < config.h.win32 > $@
214
215 ps.c    : rdps.exe print.ps
216         rdps print.ps ps.c
217
218
219 #
220 # Build the version string
221 #
222 svnversion.h:
223         $(PERL) make-version.pl
224
225 #
226 # Build the short version of the authors file for the about dialog
227 #
228 AUTHORS-SHORT: AUTHORS make-authors-short.pl
229         $(PERL) perlnoutf.pl make-authors-short.pl < AUTHORS > AUTHORS-SHORT
230
231 #
232 # Build the short version of the authors file with formatting codes for
233 # the man page
234 #
235 AUTHORS-SHORT-FORMAT: AUTHORS-SHORT make-authors-format.pl
236     $(PERL) perlnoutf.pl make-authors-format.pl < AUTHORS-SHORT > AUTHORS-SHORT-FORMAT
237
238 #
239 # Build "tethereal-tap-register.c", which contains a function 
240 # "register_all_tap_listeners()"
241 # that calls the register routines for all tehtereal tap listeners.
242 #
243 # We do this by grepping through sources.
244 #
245 # Formatting conventions:  The name of the tap_listener_register_* 
246 # routines must start in column zero, or must be preceded only by 
247 # "void " starting in column zero, and must not be inside #if.
248 #
249 # The first argument is the name of the file to write.
250 # The second argument is the directory in which the source files live.
251 # All subsequent arguments are the files to scan.
252 #
253 tethereal-tap-register.c: $(TETHEREAL_TAP_SRC) make-tapreg-dotc
254         @echo Making tethereal-tap-register.c
255         @$(SH) make-tapreg-dotc tethereal-tap-register.c . $(TETHEREAL_TAP_SRC)
256
257 text2pcap-scanner.c : text2pcap-scanner.l
258         $(LEX) -otext2pcap-scanner.c text2pcap-scanner.l
259
260 gtk2_distclean:
261         rm -f gtk2.tmp/*.*
262         if exist gtk2.tmp rmdir gtk2.tmp
263
264 clean: gtk2_distclean
265         rm -f $(ethereal_OBJECTS) $(tethereal_OBJECTS) $(EXTRA_OBJECTS) \
266                 $(EXECUTABLES) $(PDB_FILE) \
267                 capinfos.obj editcap.obj mergecap.obj text2pcap.obj getopt.obj\
268                 text2pcap-scanner.obj text2pcap-scanner.c rdps.obj \
269                 rdps.pdb rdps.exe rdps.ilk config.h ps.c AUTHORS-SHORT \
270                 AUTHORS-SHORT-FORMAT \
271                 dftest.obj dftest.exe randpkt.obj randpkt.ext doxygen.cfg \
272                 $(RESOURCES)
273         cd wiretap
274         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
275         cd ../gtk
276         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
277         cd ../epan
278         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
279         cd ../plugins
280         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
281         cd ../tools
282         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
283         cd ../image
284         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
285         cd ../doc
286         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
287         cd ../help
288         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
289         cd ../packaging/nsis
290         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
291         cd ../..
292
293 # Call distclean only, if you would like to remove ALL generated files.
294 # Be sure to have python and perl installed to regenerate them.
295 distclean: clean gtk2_distclean
296         rm -f $(BUILT_SOURCES) \
297                 tethereal-tap-register.c 
298         cd wiretap
299         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
300         cd ../gtk
301         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
302         cd ../epan
303         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
304         cd ../plugins
305         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
306         cd ../tools
307         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
308         cd ../image
309         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
310         cd ../doc
311         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
312         cd ../help
313         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
314         cd ../packaging/nsis
315         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
316         cd ../..
317
318 tools::
319         cd tools
320         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
321         cd ..
322
323 image::
324         cd image
325         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
326         cd ..
327
328 wiretap::
329         cd wiretap
330         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
331         cd ..
332
333 gtk:: help config.h svnversion.h AUTHORS-SHORT doxygen
334         cd gtk
335         $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake GTK_CFLAGS="$(GTK1_CFLAGS)" GTK_LIBS="$(GTK1_LIBS)" libui.lib
336         cd ..
337
338 # copy all required files to gtk2.tmp (but only when newer than existing) and compile in that dir
339 gtk2:: help config.h svnversion.h AUTHORS-SHORT
340         if not exist gtk2.tmp mkdir gtk2.tmp
341         cd gtk
342         xcopy Makefile.* ..\gtk2.tmp /d /y
343         xcopy *.c        ..\gtk2.tmp /d /y
344         xcopy *.h        ..\gtk2.tmp /d /y
345         cd ..\gtk2.tmp
346         $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake GTK_CFLAGS="$(GTK2_CFLAGS)" GTK_LIBS="$(GTK2_LIBS)" libui.lib
347         cd ..
348
349 epan:: $(EXTRA_OBJECTS) $(RESOURCES) $(BUILT_SOURCES) doxygen
350         cd epan
351         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
352         cd ..
353
354 plugins::
355         cd plugins
356         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
357         cd ..
358
359 doc::
360         cd doc
361         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
362         cd ..
363
364 help::
365         cd help
366         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
367         cd ..
368
369 doxygen.cfg: config.nmake doxygen.cfg.in
370         sed -e s/@VERSION@/$(VERSION)/ \
371             < doxygen.cfg.in > $@
372
373 doxygen-run:
374 !IFDEF DOXYGEN
375         $(DOXYGEN) doxygen.cfg
376 !ENDIF
377
378 doxygen: doxygen.cfg doxygen-run
379
380 REQUIRED_TOOLS=\
381         $(SH)   \
382         $(YACC) \
383         $(LEX)  \
384         grep    \
385         /usr/bin/find   \
386         $(PERL) \
387         $(PYTHON)       \
388         sed     \
389         unzip   \
390         wget
391
392 verify_tools:
393         @$(SH) tools\win32-setup.sh --appverify $(REQUIRED_TOOLS)
394
395 # Download and install all the required libraries into ETHEREAL_LIBS.
396 # If you used this setup target before, consider doing a clean_setup.
397 setup: verify_tools
398 !IF "$(GTK2_INST_VERSION)" == "2.4"
399         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
400                 glib gtk2.4/glib-2.4.7.zip
401         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
402                 glib gtk2.4/glib-dev-2.4.7.zip
403 !ELSE
404         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
405                 glib glib-2.2.3-20040116.zip
406         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
407                 glib glib-dev-2.2.3-20040116.zip
408 !ENDIF
409 !IFDEF GTK1_DIR
410         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
411                 gtk+ gtk+-1.3.0-20030717.zip
412         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
413                 gtk+ gtk+-dev-1.3.0-20030115.zip
414 !ENDIF
415         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
416                 libiconv-1.9.1.bin.woe32 libiconv-1.9.1.bin.woe32.zip
417         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
418                 gettext-runtime-0.13.1 gettext-runtime-0.13.1.zip
419 !IFDEF NET_SNMP_DIR
420         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
421                 . net-snmp-5.1.2.zip
422 !ENDIF
423 !IFDEF PCAP_DIR
424         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
425                 . wpdpack_3_0.zip
426 !ENDIF
427 !IFDEF ADNS_DIR
428         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
429                 . adns-1.0-win32-04.zip
430 !ENDIF
431 !IFDEF PCRE_DIR
432         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
433                 . pcre-4.4.zip
434 !ENDIF
435 !IFDEF ZLIB_DIR
436         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
437                 zlib122-dll zlib122-dll.zip
438 !ENDIF
439 !IFDEF GTK2_DIR
440 !IF "$(GTK2_INST_VERSION)" == "2.4"
441         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
442                 gtk2 gtk2.4/gtk+-2.4.14.zip
443         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
444                 gtk2 gtk2.4/gtk+-dev-2.4.14.zip
445         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
446                 gtk2 gtk2.4/atk-1.6.0.zip
447         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
448                 gtk2 gtk2.4/atk-dev-1.6.0.zip
449 !ELSE
450         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
451                 gtk2 gtk2/gtk+-2.2.4-20040124.zip
452         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
453                 gtk2 gtk2/gtk+-dev-2.2.4-20040124.zip
454         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
455                 gtk2 gtk2/atk-1.4.0.zip
456         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
457                 gtk2 gtk2/atk-dev-1.4.0.zip
458 !ENDIF
459 !IF "$(PANGO_INST_VERSION)" == "1.4"
460         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
461                 gtk2 gtk2.4/pango-1.4.1.zip
462         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
463                 gtk2 gtk2.4/pango-dev-1.4.1.zip
464 !ELSE
465         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
466                 gtk2 gtk2/pango-1.2.5-20040124.zip
467         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
468                 gtk2 gtk2/pango-dev-1.2.5-20040124.zip
469 !ENDIF
470 !ENDIF
471 !IFDEF GTK_WIMP_DIR
472         @$(SH) tools\win32-setup.sh --download "$(ETHEREAL_LIBS)" \
473                 gtk-wimp gtk-wimp/gtk-wimp-0.6.2-bin.zip
474 !ENDIF
475         @echo.
476         @echo Ethereal is ready to build.
477
478 # Cleanup files installed by the setup target. It will not remove the 
479 # downloaded zip files.
480 clean_setup:
481     rm -r -f $(ETHEREAL_LIBS)/glib
482     rm -r -f $(ETHEREAL_LIBS)/gtk+
483     rm -r -f $(ETHEREAL_LIBS)/libiconv-1.9.1.bin.woe32
484     rm -r -f $(ETHEREAL_LIBS)/gettext-runtime-0.13.1
485     rm -r -f $(ETHEREAL_LIBS)/zlib122-dll
486     rm -r -f $(ETHEREAL_LIBS)/gtk2
487     rm -r -f $(ETHEREAL_LIBS)/gtk-wimp
488
489 update_plugin_api: config.h
490         cd plugins
491         $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake xyzzy
492         cd ..
493