Ethereal-dev: [Ethereal-dev] Compiling ethereal with glib2 and gtk1.3 on Win32
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Lars Roland <Lars.Roland@xxxxxxx>
Date: Mon, 21 Jul 2003 17:36:50 +0200
Hello Gerald,attached patches allow you to build ethereal with glib2 and gtk1 on Win32 using the libraries from http://www.gimp.org/~tml/gimp/win32/downloads.html
See also http://www.ethereal.com/lists/ethereal-dev/200306/msg00130.htmlThe combination of using glib2 and newer gtk1.3 library improves stability of ethereal, fixes a GDI-resource leak and supports 8-bit colour display mode.
I think, it would be good to build official ethereal-release with them. There will be no change in the look of the gui, because this is still gtk1.
Extract both developement packages http://www.gimp.org/~tml/gimp/win32/glib-dev-2.2.1.zip http://www.gimp.org/~tml/gimp/win32/gtk+-dev-1.3.0-20030115.zipinto the same directory (preserve directory structure). This directory will be GTK_DIR and GLIB_DIR in config.nmake .
For runtime and for nsis-packaging you need following: From http://www.gimp.org/~tml/gimp/win32/gtk+-1.3.0-20030216.zip the new gtk-libraries libgtk-0.dll and libgdk-0.dll . From http://www.gimp.org/~tml/gimp/win32/glib-2.2.1.zip libglib-2.0-0.dll , libgmodule-2.0-0.dll and libgobject-2.0-0.dllhttp://www.gimp.org/~tml/gimp/win32/libintl-0.10.40-tml-20020904.zip contains libintl-1.dll.
From http://ftp.gnu.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip iconv.dll Best regards, Lars Roland
Index: ethereal/packaging/nsis/Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/packaging/nsis/Makefile.nmake,v
retrieving revision 1.18
diff -u -r1.18 Makefile.nmake
--- ethereal/packaging/nsis/Makefile.nmake 11 Jun 2003 09:17:01 -0000 1.18
+++ ethereal/packaging/nsis/Makefile.nmake 13 Jun 2003 20:32:15 -0000
@@ -32,10 +32,17 @@
../../plugins/pcli/pcli.dll \
../../plugins/rtnet/rtnet.dll
-DELIVERABLES=$(EXE) $(DLL) $(DOC) $(GPL) $(PLUGINS)
+DELIVERABLES=$(EXE) $(DLL) $(DOC) $(GPL) $(PLUGINS)
ethereal-setup-$(VERSION).exe : ethereal.nsi $(DELIVERABLES)
- $(MAKENSIS) /DVERSION=$(VERSION) /DWTAP_VERSION=$(WTAP_VERSION) /DCOMMON_FILES_GNU=$(COMMON_FILES_GNU) /DNET_SNMP_DIR=$(NET_SNMP_DIR) ethereal.nsi
+ $(MAKENSIS) \
+!IF "$(GTK_VERSION)" == "2.0"
+ /DGTK2 \
+!ENDIF
+!IF "$(GLIB_VERSION)" == "2.0"
+ /DGLIB2 \
+!ENDIF
+ /DVERSION=$(VERSION) /DWTAP_VERSION=$(WTAP_VERSION) /DCOMMON_FILES_GNU=$(COMMON_FILES_GNU) /DNET_SNMP_DIR=$(NET_SNMP_DIR) ethereal.nsi
clean:
rm -f ethereal-setup-$(VERSION).exe
Index: ethereal/packaging/nsis/ethereal.nsi
===================================================================
RCS file: /cvsroot/ethereal/packaging/nsis/ethereal.nsi,v
retrieving revision 1.16
diff -u -r1.16 ethereal.nsi
--- ethereal/packaging/nsis/ethereal.nsi 11 Jun 2003 09:17:01 -0000 1.16
+++ ethereal/packaging/nsis/ethereal.nsi 13 Jun 2003 20:32:15 -0000
@@ -71,10 +71,18 @@
SetOutPath $INSTDIR
File "..\..\wiretap\wiretap-${WTAP_VERSION}.dll"
+!ifndef GLIB2
File "${COMMON_FILES_GNU}\iconv-1.3.dll"
File "${COMMON_FILES_GNU}\glib-1.3.dll"
File "${COMMON_FILES_GNU}\gmodule-1.3.dll"
File "${COMMON_FILES_GNU}\gnu-intl.dll"
+!else
+File "${COMMON_FILES_GNU}\iconv.dll"
+File "${COMMON_FILES_GNU}\libglib-2.0-0.dll"
+File "${COMMON_FILES_GNU}\libgmodule-2.0-0.dll"
+File "${COMMON_FILES_GNU}\libgobject-2.0-0.dll"
+File "${COMMON_FILES_GNU}\libintl-1.dll"
+!endif
File "${COMMON_FILES_GNU}\zlib.dll"
File "${COMMON_FILES_GNU}\adns_dll.dll"
File "..\..\FAQ"
@@ -105,8 +113,33 @@
SetOutPath $INSTDIR
File "..\..\ethereal.exe"
File "..\..\doc\ethereal.html"
+!ifndef GTK2
+!ifndef GLIB2
File "${COMMON_FILES_GNU}\gtk-1.3.dll"
File "${COMMON_FILES_GNU}\gdk-1.3.dll"
+!else
+File "${COMMON_FILES_GNU}\libgtk-0.dll"
+File "${COMMON_FILES_GNU}\libgdk-0.dll"
+!endif
+!else
+File "${COMMON_FILES_GNU}\libgdk-win32-2.0-0.dll"
+File "${COMMON_FILES_GNU}\libgdk_pixbuf-2.0-0.dll"
+File "${COMMON_FILES_GNU}\libgtk-win32-2.0-0.dll"
+File "${COMMON_FILES_GNU}\libatk-1.0-0.dll"
+File "${COMMON_FILES_GNU}\libpango-1.0-0.dll"
+File "${COMMON_FILES_GNU}\libpangowin32-1.0-0.dll"
+SetOutPath $INSTDIR\etc\gtk-2.0
+File "${COMMON_FILES_GNU}\etc\gtk-2.0\gdk-pixbuf.loaders"
+File "${COMMON_FILES_GNU}\etc\gtk-2.0\gtk.immodules"
+SetOutPath $INSTDIR\etc\pango
+File "${COMMON_FILES_GNU}\etc\pango\pango.modules"
+SetOutPath $INSTDIR\lib\gtk-2.0\2.2.0\loaders
+File "${COMMON_FILES_GNU}\lib\gtk-2.0\2.2.0\loaders\libpixbufloader-*.dll"
+SetOutPath $INSTDIR\lib\gtk-2.0\2.2.0\immodules
+File "${COMMON_FILES_GNU}\lib\gtk-2.0\2.2.0\immodules\im-*.dll"
+SetOutPath $INSTDIR\lib\pango\1.2.0\modules
+File "${COMMON_FILES_GNU}\lib\pango\1.2.0\modules\pango-*.dll"
+!endif
SectionEnd
Section "Tethereal"
@@ -191,6 +224,13 @@
;
SetShellVarContext all
+!ifdef GTK2
+Delete "$INSTDIR\etc\gtk-2.0\*.*"
+Delete "$INSTDIR\etc\pango\*.*"
+Delete "$INSTDIR\lib\gtk-2.0\2.2.0\loaders\*.*"
+Delete "$INSTDIR\lib\gtk-2.0\2.2.0\immodules\*.*"
+Delete "$INSTDIR\lib\pango\1.2.0\modules\*.*"
+!endif
Delete "$INSTDIR\plugins\${VERSION}\*.*"
Delete "$INSTDIR\plugins\*.*"
Delete "$INSTDIR\diameter\*.*"
@@ -200,6 +240,19 @@
Delete "$SMPROGRAMS\Ethereal\*.*"
Delete "$DESKTOP\Ethereal.lnk"
+!ifdef GTK2
+RMDir "$INSTDIR\etc\gtk-2.0"
+RMDir "$INSTDIR\etc\pango"
+RMDir "$INSTDIR\etc"
+RMDir "$INSTDIR\lib\gtk-2.0\2.2.0\loaders"
+RMDir "$INSTDIR\lib\gtk-2.0\2.2.0\immodules"
+RMDir "$INSTDIR\lib\gtk-2.0\2.2.0"
+RMDir "$INSTDIR\lib\gtk-2.0"
+RMDir "$INSTDIR\lib\pango\1.2.0\modules"
+RMDir "$INSTDIR\lib\pango\1.2.0"
+RMDir "$INSTDIR\lib\pango"
+RMDir "$INSTDIR\lib"
+!endif
RMDir "$SMPROGRAMS\Ethereal"
RMDir "$INSTDIR\plugins\${VERSION}"
RMDir "$INSTDIR\plugins"
Index: ethereal/config.nmake =================================================================== RCS file: /cvsroot/ethereal/config.nmake,v retrieving revision 1.53 diff -u -r1.53 config.nmake --- ethereal/config.nmake 26 Jun 2003 08:41:33 -0000 1.53 +++ ethereal/config.nmake 21 Jul 2003 14:42:55 -0000 @@ -16,7 +16,7 @@ WTAP_VERSION=0.0 GTK_VERSION=1.3 -GLIB_VERSION=1.3 +GLIB_VERSION=2.0 # # This presumes that GLib 1.3 developer's packages put header files and @@ -92,12 +92,24 @@ $(GLIB_DIR)\lib\gmodule-$(GLIB_VERSION).lib \ $(GLIB_DIR)\lib\gobject-$(GLIB_VERSION).lib !ENDIF + !IF "$(GTK_VERSION)" == "1.3" +!IF "$(GLIB_VERSION)" == "1.3" +# GTK 1.3 with GLIB 1.3 GTK_CFLAGS=$(GLIB_CFLAGS) /I$(GTK_DIR) /I$(GTK_DIR)\gdk GTK_LIBS=$(GTK_DIR)\gtk\gtk-$(GTK_VERSION).lib \ $(GTK_DIR)\gdk\gdk-$(GTK_VERSION).lib \ $(GLIB_LIBS) !ELSE +# GTK 1.3 with GLIB 2.0 +GTK_CFLAGS=$(GLIB_CFLAGS) /I$(GTK_DIR)\include /I$(GTK_DIR)\include\gdk \ + /I$(GTK_DIR)\lib\gtk+\include +GTK_LIBS=$(GTK_DIR)\lib\gtk.lib \ + $(GTK_DIR)\lib\gdk.lib \ + $(GLIB_LIBS) +!ENDIF +!ELSE +# GTK 2.0 GTK_CFLAGS=$(GLIB_CFLAGS) /I$(GTK_DIR)\include\gtk-$(GTK_VERSION) \ /I$(GTK_DIR)\lib\gtk-$(GTK_VERSION)\include \ /I$(GTK_DIR)\include\atk-1.0 \
- Follow-Ups:
- [Ethereal-dev] Re: Compiling ethereal with glib2 and gtk1.3 on Win32
- From: Gerald Combs
- [Ethereal-dev] Re: Compiling ethereal with glib2 and gtk1.3 on Win32
- Prev by Date: RE: [Ethereal-dev] Fix for NTLMSSP decryption support with DCE/RPC auth padding
- Next by Date: [Ethereal-dev] New Find capabilities
- Previous by thread: Re: [Ethereal-dev] Fix for NTLMSSP decryption support with DCE/RPC auth padding
- Next by thread: [Ethereal-dev] Re: Compiling ethereal with glib2 and gtk1.3 on Win32
- Index(es):





