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):