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 <[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
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 "[EMAIL PROTECTED]@"
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