Ethereal-dev: [Ethereal-dev] Win32 build patches

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 17:36:15 +1100
Here's a couple of patches to ease building on Win32.
Changes are:

1. The clean targets in various makefiles missed a few files.

2. For building the doc directory, I couldn't find man2html.
   Looks like this step was done on UNIX in 0.8.20. There's
   a comment in the existing makefile suggesting this be
   changed to use pod2html. Did that, works fine. Added
   POD2HTML variable in config.nmake, similar to POD2MAN.
   (You don't want the rest of my changes to that file though.)

3. ethereal.nsi.in isn't compatible with recent versions of
   NSIS, as the way the uninstaller is generated has changed.
   Fixed.

It builds well now. It's still a three step process though:

build in top level directory;
build in doc subdirectory;
build in packaging\nsis directory.

Some extra rules in the packaging\nsis\makefile.nmake would
help with that, I'll work on that next.

To build you need VC++, all the GTK/GDK development libraries, 
Perl, Python, Cygwin, and NSIS installed. Nice and simple. :-)


regards,
Hamish
-- 
Hamish Moffatt VK3SB <hamish@xxxxxxxxxx> <hamish@xxxxxxxxxxxx>
diff -ur ethereal-0.9.0.orig/Makefile.nmake ethereal-0.9.0/Makefile.nmake
--- ethereal-0.9.0.orig/Makefile.nmake	Tue Dec 25 02:31:28 2001
+++ ethereal-0.9.0/Makefile.nmake	Fri Jan 04 12:32:42 2002
@@ -407,7 +407,8 @@
 	rm -f $(ethereal_OBJECTS) $(EXTRA_OBJECTS) $(EXECUTABLES) $(PDB_FILE) \
 		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.obj rdps.pdb config.h ps.c packet-ncp2222.c register.c \
+		rdps.exe rdps.ilk $(RESOURCES)
 	cd wiretap
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
 	cd ../gtk
diff -ur ethereal-0.9.0.orig/config.nmake ethereal-0.9.0/config.nmake
--- ethereal-0.9.0.orig/config.nmake	Mon Dec 24 07:11:24 2001
+++ ethereal-0.9.0/config.nmake	Fri Jan 04 12:13:48 2002
@@ -7,23 +7,24 @@
 GTK_VERSION=1.3
 GLIB_VERSION=1.3
 
-GLIB_DIR=F:\gram\win32tools\src\glib
-GTK_DIR=F:\gram\win32tools\src\gtk+
-ZLIB_DIR=F:\gram\win32tools\src\zlib-1.1.3
-PCAP_DIR=F:\gram\win32tools\WPdpack
+GLIB_DIR=C:\ethereal-win32-libs\glib
+GTK_DIR=C:\ethereal-win32-libs\gtk+
+ZLIB_DIR=C:\ethereal-win32-libs\zlib-1.1.3
+PCAP_DIR=C:\ethereal-win32-libs\WPdpack
 
 LOCAL_CFLAGS=-Zi
 LOCAL_LDFLAGS=/DEBUG
 
 # Set PDB_FILE according to your VC++ version 
-PDB_FILE=vc60.pdb
+PDB_FILE=vc50.pdb
 
 # Set path if you need to find some binary
-#PATH=t:\w32-ix86\cygnus\cygwin-b20\H-i586-cygwin32\bin;$(PATH)
+PATH=c:\cygnus\cygwin-b20\H-i586-cygwin32\bin;c:\python22;c:\ethereal-0.9.0\wiretap;c:\program files\gnu;$(PATH)
 
 PERL=perl
-POD2MAN=perl /usr/bin/pod2man
-PYTHON="C:/python21/python.exe"
+POD2MAN=pod2man
+POD2HTML=pod2html
+PYTHON="C:/python22/python.exe"
 LEX=flex
 YACC=bison
 
diff -ur ethereal-0.9.0.orig/doc/Makefile.nmake ethereal-0.9.0/doc/Makefile.nmake
--- ethereal-0.9.0.orig/doc/Makefile.nmake	Sun Sep 16 23:41:04 2001
+++ ethereal-0.9.0/doc/Makefile.nmake	Fri Jan 04 12:25:30 2002
@@ -29,33 +29,18 @@
 doc: ethereal.html tethereal.html editcap.html idl2eth.html \
 	mergecap.html text2pcap.html
 
-#
-# XXX - can't we just use "pod2html" here?
-#
-ethereal.html : ethereal.1
-	man2html ethereal.1 > $@
-
-tethereal.html : tethereal.1
-	man2html tethereal.1 > $@
-
-editcap.html : editcap.1
-	man2html editcap.1 > $@
-
-idl2eth.html : idl2eth.1
-	man2html idl2eth.1 > $@
-
-mergecap.html : mergecap.1
-	man2html mergecap.1 > $@
-
-text2pcap.html : text2pcap.1
-	man2html text2pcap.1 > $@
-
 ethereal.1: ethereal.pod ../config.h
 	$(POD2MAN) ethereal.pod                     \
 	--center="The Ethereal Network Analyzer" \
 	--release=$(VERSION)			 \
 	> ethereal.1
 
+ethereal.html: ethereal.pod ../config.h
+	$(POD2HTML) ethereal.pod                     \
+	--title="The Ethereal Network Analyzer $(VERSION)" \
+	--noindex                                 \
+	> ethereal.html
+
 ethereal.pod: ethereal.pod.template  ../tethereal.exe
 	..\\tethereal.exe -G | $(PERL) dfilter2pod.pl ethereal.pod.template > ethereal.pod
 
@@ -65,6 +50,12 @@
 	--release=$(VERSION)			 \
 	> tethereal.1
 
+tethereal.html: tethereal.pod ../config.h
+	$(POD2HTML) tethereal.pod                     \
+	--title="The Ethereal Network Analyzer $(VERSION)" \
+	--noindex                                 \
+	> tethereal.html
+
 tethereal.pod: tethereal.pod.template  ../tethereal.exe
 	..\\tethereal.exe -G | $(PERL) dfilter2pod.pl tethereal.pod.template > tethereal.pod
 
@@ -74,24 +65,48 @@
 	--release=$(VERSION)			 \
 	> editcap.1
 
+editcap.html: editcap.pod ../config.h
+	$(POD2HTML) editcap.pod                     \
+	--title="The Ethereal Network Analyzer $(VERSION)" \
+	--noindex                                 \
+	> editcap.html
+
 mergecap.1: mergecap.pod ../config.h
 	$(POD2MAN) mergecap.pod                     \
 	--center="The Ethereal Network Analyzer" \
 	--release=$(VERSION)			 \
 	> mergecap.1
 
+mergecap.html: mergecap.pod ../config.h
+	$(POD2HTML) mergecap.pod                     \
+	--title="The Ethereal Network Analyzer $(VERSION)" \
+	--noindex                                 \
+	> mergecap.html
+
 idl2eth.1: idl2eth.pod ../config.h
 	$(POD2MAN) idl2eth.pod                       \
 	--center="The Ethereal Network Analyzer" \
 	--release=$(VERSION)			 \
 	> idl2eth.1
 
+idl2eth.html: idl2eth.pod ../config.h
+	$(POD2HTML) idl2eth.pod                     \
+	--title="The Ethereal Network Analyzer $(VERSION)" \
+	--noindex                                 \
+	> idl2eth.html
+
 text2pcap.1: text2pcap.pod ../config.h
 	$(POD2MAN) text2pcap.pod                     \
 	--center="The Ethereal Network Analyzer" \
 	--release=$(VERSION)			 \
 	> text2pcap.1
 
+text2pcap.html: text2pcap.pod ../config.h
+	$(POD2HTML) text2pcap.pod                     \
+	--title="The Ethereal Network Analyzer $(VERSION)" \
+	--noindex                                 \
+	> text2pcap.html
+
 clean:
 	rm -f ethereal.html ethereal.1 ethereal.pod
 	rm -f tethereal.html tethereal.1 tethereal.pod
@@ -99,3 +114,4 @@
 	rm -f idl2eth.html idl2eth.1
 	rm -f mergecap.html mergecap.1
 	rm -f text2pcap.html text2pcap.1
+	rm -f pod2htm*
diff -ur ethereal-0.9.0.orig/packaging/nsis/ethereal.nsi.in ethereal-0.9.0/packaging/nsis/ethereal.nsi.in
--- ethereal-0.9.0.orig/packaging/nsis/ethereal.nsi.in	Thu Dec 20 13:38:36 2001
+++ ethereal-0.9.0/packaging/nsis/ethereal.nsi.in	Fri Jan 04 12:07:42 2002
@@ -16,8 +16,7 @@
 Icon "..\..\image\ethereal.ico"
 
 ; Uninstall stuff
-UninstallText "This will uninstall Etheral. Hit 'Next' to continue."
-UninstallExeName "uninstall.exe"
+UninstallText "This will uninstall Ethereal. Hit 'Next' to continue."
 
 ; ============================================================================
 ; License page configuration
@@ -73,6 +72,7 @@
 ; Write the uninstall keys for Windows
 WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "DisplayName" "Ethereal"
 WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\Ethereal" "UninstallString" '"$INSTDIR\uninstall.exe"'
+WriteUninstaller "uninstall.exe"
 SectionEnd
 
 Section "Ethereal"
@@ -165,5 +165,6 @@
 RMDir "$INSTDIR\plugins\@VERSION@"
 RMDir "$INSTDIR\plugins"
 RMDir "$INSTDIR"
+
 SectionEnd
 
diff -ur ethereal-0.9.0.orig/tools/lemon/Makefile.nmake ethereal-0.9.0/tools/lemon/Makefile.nmake
--- ethereal-0.9.0.orig/tools/lemon/Makefile.nmake	Wed Dec 12 15:23:32 2001
+++ ethereal-0.9.0/tools/lemon/Makefile.nmake	Fri Jan 04 12:23:46 2002
@@ -9,4 +9,4 @@
 all : lemon.exe
 
 clean:
-	rm -f lemon.obj lemon.exe $(PDB_FILE) lemon.pdb
+	rm -f lemon.obj lemon.exe lemon.ilk $(PDB_FILE) lemon.pdb