Ethereal-dev: [Ethereal-dev] another build patch for Win32

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Hamish Moffatt <hamish@xxxxxxxxxxxx>
Date: Fri, 4 Jan 2002 21:25:47 +1100
Here's another patch for the Makefiles on Win32.

Mostly I introduced some more dependencies, especially between
directories. You can build individual executables at the top
level directory now and it'll succeed. Or you can go straight
to \ethereal\packaging\nsis, run make, and it'll build the
lot and package it.

Guy, I found that PDB_FILE=vc*.pdb in config.nmake seems to
work fine. So I can keep using my old VC++ without upsetting
anyone. :-)

This patch is against the current CVS code.

regards
Hamish
-- 
Hamish Moffatt VK3SB <hamish@xxxxxxxxxx> <hamish@xxxxxxxxxxxx>
Index: Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/Makefile.nmake,v
retrieving revision 1.161
diff -u -r1.161 Makefile.nmake
--- Makefile.nmake	2002/01/04 06:57:07	1.161
+++ Makefile.nmake	2002/01/04 10:22:20
@@ -329,6 +329,7 @@
 dftest_LIBS= epan\ethereal.lib \
 	epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
 	wsock32.lib user32.lib \
+        wiretap\wiretap-$(WTAP_VERSION).lib \
 	$(GLIB_DIR)\glib-$(GLIB_VERSION).lib \
 	$(GLIB_DIR)\gmodule\gmodule-$(GLIB_VERSION).lib
 
@@ -338,13 +339,17 @@
 
 all: tools wiretap gtk epan image $(EXECUTABLES) $(RESOURCES)
 
-ethereal.exe	: config.h $(ethereal_OBJECTS) $(EXTRA_OBJECTS) image\ethereal.res wiretap\wiretap-$(WTAP_VERSION).lib gtk\libui.lib plugins
+$(RESOURCES): image
+
+wiretap\wiretap-$(WTAP_VERSION).lib: wiretap
+
+ethereal.exe	: config.h $(ethereal_OBJECTS) $(EXTRA_OBJECTS) epan gtk image\ethereal.res wiretap\wiretap-$(WTAP_VERSION).lib gtk\libui.lib plugins
 	@echo Linking $@
 	$(LINK) @<<
 		/OUT:ethereal.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /SUBSYSTEM:windows $(ethereal_LIBS) $(ethereal_OBJECTS) $(EXTRA_OBJECTS) image\ethereal.res
 <<
 
-tethereal.exe	: config.h $(tethereal_OBJECTS) $(EXTRA_OBJECTS) image\tethereal.res wiretap\wiretap-$(WTAP_VERSION).lib plugins
+tethereal.exe	: config.h $(tethereal_OBJECTS) $(EXTRA_OBJECTS) epan image\tethereal.res wiretap\wiretap-$(WTAP_VERSION).lib plugins
 	@echo Linking $@
 	$(LINK) @<<
 		/OUT:tethereal.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(tethereal_LIBS) $(tethereal_OBJECTS) $(EXTRA_OBJECTS) image\tethereal.res
@@ -410,7 +415,7 @@
 		tethereal.obj editcap.obj mergecap.obj text2pcap.obj \
 		text2pcap-scanner.obj text2pcap-scanner.c register.c \
 		rdps.obj rdps.pdb config.h ps.c packet-ncp2222.c register.c \
-		rdps.exe rdps.ilk $(RESOURCES)
+		rdps.exe rdps.ilk dftest.obj dftest.exe $(RESOURCES)
 	cd wiretap
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
 	cd ../gtk
@@ -422,8 +427,12 @@
 	cd ../tools
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
 	cd ../image
+	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
+	cd ../doc
+	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
+	cd ../packaging/nsis
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
-	cd ..
+	cd ../..
 
 tools::
 	cd tools
Index: config.nmake
===================================================================
RCS file: /cvsroot/ethereal/config.nmake,v
retrieving revision 1.21
diff -u -r1.21 config.nmake
--- config.nmake	2002/01/04 06:57:07	1.21
+++ config.nmake	2002/01/04 10:22:20
@@ -16,10 +16,10 @@
 LOCAL_LDFLAGS=/DEBUG
 
 # Set PDB_FILE according to your VC++ version 
-PDB_FILE=vc60.pdb
+PDB_FILE=vc*.pdb
 
 # Set path if you need to find some binary
-PATH=c:\cygnus\cygwin-b20\H-i586-cygwin32\bin;c:\python22;c:\ethereal-0.9.0\wiretap;c:\program files\gnu;$(PATH)
+PATH=c:\cygnus\cygwin-b20\H-i586-cygwin32\bin;c:\python22;c:\ethereal\wiretap;c:\program files\common files\gnu;$(PATH)
 
 PERL=perl
 POD2MAN=pod2man
Index: doc/Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/doc/Makefile.nmake,v
retrieving revision 1.6
diff -u -r1.6 Makefile.nmake
--- Makefile.nmake	2002/01/04 06:57:08	1.6
+++ Makefile.nmake	2002/01/04 10:22:21
@@ -41,6 +41,11 @@
 	--noindex                                 \
 	> ethereal.html
 
+../tethereal.exe:
+	cd ..
+	$(MAKE) -f makefile.nmake tethereal.exe
+	cd doc
+
 ethereal.pod: ethereal.pod.template  ../tethereal.exe
 	..\\tethereal.exe -G | $(PERL) dfilter2pod.pl ethereal.pod.template > ethereal.pod
 
Index: epan/dfilter/Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/epan/dfilter/Makefile.nmake,v
retrieving revision 1.6
diff -u -r1.6 Makefile.nmake
--- Makefile.nmake	2001/12/12 01:29:03	1.6
+++ Makefile.nmake	2002/01/04 10:22:21
@@ -31,10 +31,15 @@
 	sttype-test.obj		\
 	syntax-tree.obj
 
-
 dfilter.lib	: $(OBJECTS)
 	lib /out:dfilter.lib $(OBJECTS)
 
+$(OBJECTS): ..\config.h
+
+..\config.h:
+	cd ..
+	$(MAKE) -f makefile.nmake config.h
+	cd dfilter
 
 clean:
 	rm -f $(OBJECTS) scanner.c grammar.c grammar.h grammar.out \
@@ -46,6 +51,12 @@
 scanner.obj : scanner.c grammar.h
 
 grammar.h : grammar.c
-grammar.c : grammar.lemon
+grammar.c : grammar.lemon $(LEMON)\lemon.exe
 	$(LEMON)\lemon.exe t=$(LEMON)\lempar.c grammar.lemon 
+
+$(LEMON)\lemon.exe:
+	cd ../../tools/lemon
+	$(MAKE) -f makefile.nmake
+	cd ../../epan/dfilter
+
 
Index: packaging/nsis/Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/packaging/nsis/Makefile.nmake,v
retrieving revision 1.9
diff -u -r1.9 Makefile.nmake
--- Makefile.nmake	2001/12/19 19:16:12	1.9
+++ Makefile.nmake	2002/01/04 10:22:22
@@ -27,7 +27,6 @@
 
 DELIVERABLES=$(EXE) $(DLL) $(DOC) $(GPL) $(PLUGINS) 
 
-
 ethereal-setup.exe : ethereal.nsi $(DELIVERABLES)
 	$(MAKENSIS) ethereal.nsi
 
@@ -38,3 +37,14 @@
 
 clean:
 	rm -f ethereal.nsi ethereal-setup.exe
+
+$(DOC):
+	cd ../../doc
+	$(MAKE) -f makefile.nmake
+	cd ../packaging/nsis
+
+$(EXE) $(DLL):
+	cd ../..
+	$(MAKE) -f makefile.nmake
+	cd packaging/nsis
+