The U3 and PortableApps packaging processes depend on simple
authorGerald Combs <gerald@wireshark.org>
Fri, 19 Oct 2012 17:47:34 +0000 (17:47 -0000)
committerGerald Combs <gerald@wireshark.org>
Fri, 19 Oct 2012 17:47:34 +0000 (17:47 -0000)
defined/undefined checks. Create a bunch of them corresponding to the
various components that GTK2 and GTK3 need and plumb the packaging files
accordingly. Tested only with GTK2 but GTK3 *should* work.

svn path=/trunk/; revision=45659

Makefile.nmake
config.nmake
packaging/nsis/Makefile.nmake
packaging/nsis/wireshark.nsi
packaging/u3/win32/makenmake.pl
packaging/ws-manifest.pl

index 085ce46ed5daee1831903cd0f153cf21bc009626..f3010c8dd32a8a458ab172cac44e6942b3a22c66 100644 (file)
@@ -1132,39 +1132,41 @@ install-all: install-generated-files
        xcopy $(GTK_DIR)\bin\libatk-1.0-0.dll $(INSTALL_DIR) /d
        xcopy $(GTK_DIR)\bin\libpango-1.0-0.dll $(INSTALL_DIR) /d
        xcopy $(GTK_DIR)\bin\libpangowin32-1.0-0.dll $(INSTALL_DIR) /d
+       if not exist $(INSTALL_DIR)\lib mkdir $(INSTALL_DIR)\lib
        if not exist $(INSTALL_DIR)\etc mkdir $(INSTALL_DIR)\etc
+       if not exist $(INSTALL_DIR)\$(GTK_ETC_DIR) mkdir $(INSTALL_DIR)\$(GTK_ETC_DIR)
+       xcopy $(GTK_DIR)\$(GTK_ETC_DIR)\*.* $(INSTALL_DIR)\$(GTK_ETC_DIR) /d
+#      if not exist $(INSTALL_DIR)\etc\pango mkdir $(INSTALL_DIR)\etc\pango
+#      xcopy $(GTK_DIR)\etc\pango\pango.* $(INSTALL_DIR)\etc\pango /d
 !IF "$(GTK_INST_VERSION)" == "3.4"
-       if not exist $(INSTALL_DIR)\etc\gtk-3.0 mkdir $(INSTALL_DIR)\etc\gtk-3.0
-       if not exist $(INSTALL_DIR)\etc\pango mkdir $(INSTALL_DIR)\etc\pango
-       if not exist $(INSTALL_DIR)\lib mkdir $(INSTALL_DIR)\lib
        if not exist $(INSTALL_DIR)\lib\gtk-3.0 mkdir $(INSTALL_DIR)\lib\gtk-3.0
        if not exist $(INSTALL_DIR)\lib\gtk-3.0\$(GTK_LIB_DIR) mkdir $(INSTALL_DIR)\lib\gtk-3.0\$(GTK_LIB_DIR)
-       xcopy $(GTK_DIR)\etc\gtk-3.0\*.* $(INSTALL_DIR)\etc\gtk-3.0 /d
-       xcopy ".\ui\win32\settings.ini" $(INSTALL_DIR)\etc\gtk-3.0 /d
-!IFDEF NEED_CAIRO_DLL
-       xcopy $(GTK_DIR)\bin\libcairo-2.dll $(INSTALL_DIR)  /d
-       xcopy $(GTK_DIR)\bin\libcairo-gobject-2.dll $(INSTALL_DIR)  /d
-       xcopy $(GTK_DIR)\bin\libpangocairo-1.0-0.dll $(INSTALL_DIR) /d
-!ENDIF
+       xcopy ".\ui\win32\settings.ini" $(INSTALL_DIR)\$(GTK_ETC_DIR) /d
 !ELSE
-       if not exist $(INSTALL_DIR)\etc\gtk-2.0 mkdir $(INSTALL_DIR)\etc\gtk-2.0
-       if not exist $(INSTALL_DIR)\etc\pango mkdir $(INSTALL_DIR)\etc\pango
-       if not exist $(INSTALL_DIR)\lib mkdir $(INSTALL_DIR)\lib
        if not exist $(INSTALL_DIR)\lib\gtk-2.0 mkdir $(INSTALL_DIR)\lib\gtk-2.0
-       if not exist $(INSTALL_DIR)\lib\gtk-2.0\modules mkdir $(INSTALL_DIR)\lib\gtk-2.0\modules
        if not exist $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR) mkdir $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)
        if not exist $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders mkdir $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders
-       if not exist $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines mkdir $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines
-       xcopy $(GTK_DIR)\etc\gtk-2.0\*.* $(INSTALL_DIR)\etc\gtk-2.0 /d
-       if exist $(GTK_DIR)\etc\pango xcopy $(GTK_DIR)\etc\pango\pango.* $(INSTALL_DIR)\etc\pango /d
        if exist $(GTK_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders xcopy $(GTK_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders\libpixbufloader-*.dll $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders /d
-       xcopy $(GTK_DIR)\lib\gtk-2.0\modules\libgail.dll $(INSTALL_DIR)\lib\gtk-2.0\modules /d
-       xcopy $(GTK_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines\libpixmap.dll $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines /d
+!ENDIF
+!IFDEF GTK_ENGINES_DIR
+       if not exist $(INSTALL_DIR)\$(GTK_ENGINES_DIR) mkdir $(INSTALL_DIR)\$(GTK_ENGINES_DIR)
+       xcopy $(GTK_DIR)\$(GTK_ENGINES_DIR)\libpixmap.dll $(INSTALL_DIR)\$(GTK_ENGINES_DIR) /d
+       xcopy $(GTK_DIR)\$(GTK_ENGINES_DIR)\libwimp.dll $(INSTALL_DIR)\$(GTK_ENGINES_DIR) /d
+!ENDIF
+!IFDEF GTK_THEMES_DIR
+       xcopy "$(GTK_DIR)\$(GTK_THEMES_DIR)\gtkrc" $(INSTALL_DIR)\$(GTK_ETC_DIR) /d
+!ENDIF
+!IFDEF GTK_MODULES_DIR
+       if not exist $(INSTALL_DIR)\$(GTK_MODULES_DIR) mkdir $(INSTALL_DIR)\$(GTK_MODULES_DIR)
+       xcopy $(GTK_DIR)\$(GTK_MODULES_DIR)\libgail.dll $(INSTALL_DIR)\$(GTK_MODULES_DIR) /d
+!ENDIF
+!IFDEF NEED_CAIRO_GOBJECT_DLL
+       xcopy $(GTK_DIR)\bin\libcairo-gobject-2.dll $(INSTALL_DIR)  /d
+!ENDIF
 !IFDEF NEED_CAIRO_DLL
        xcopy $(GTK_DIR)\bin\libcairo-2.dll $(INSTALL_DIR)  /d
        xcopy $(GTK_DIR)\bin\libpangocairo-1.0-0.dll $(INSTALL_DIR) /d
 !ENDIF
-!ENDIF
 !IFDEF NEED_EXPAT_DLL
        xcopy $(GTK_DIR)\bin\$(EXPAT_DLL) $(INSTALL_DIR) /d
 !ENDIF
@@ -1199,15 +1201,10 @@ install-all: install-generated-files
 !IFDEF NEED_XML_DLL
        xcopy $(GTK_DIR)\bin\$(XML_DLL) $(INSTALL_DIR) /d
 !ENDIF
-!IF "$(GTK_INST_VERSION)" == "3.4"
-       if not exist $(INSTALL_DIR)\$(GTK_SCHEMAS_INST_DIR) mkdir $(INSTALL_DIR)\$(GTK_SCHEMAS_INST_DIR)
-       if not exist $(GTK_DIR)\$(GTK_SCHEMAS_INST_DIR)\gschemas.compiled $(GTK_DIR)\bin\glib-compile-schemas $(GTK_DIR)\$(GTK_SCHEMAS_INST_DIR)
-       xcopy $(GTK_DIR)\$(GTK_SCHEMAS_INST_DIR)\gschemas.compiled  $(INSTALL_DIR)\$(GTK_SCHEMAS_INST_DIR) /d
-!ELSE
-       if not exist $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR) mkdir $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR)
-       xcopy "$(GTK_WIMP_DLLSRC_DIR)\libwimp.dll" $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR) /d
-       if not exist $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR) mkdir $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR)
-       xcopy "$(GTK_WIMP_RCSRC_DIR)\gtkrc" $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR) /d
+!IFDEF GTK_SCHEMAS_DIR
+       if not exist $(INSTALL_DIR)\$(GTK_SCHEMAS_DIR) mkdir $(INSTALL_DIR)\$(GTK_SCHEMAS_DIR)
+       if not exist $(GTK_DIR)\$(GTK_SCHEMAS_DIR)\gschemas.compiled $(GTK_DIR)\bin\glib-compile-schemas $(GTK_DIR)\$(GTK_SCHEMAS_DIR)
+       xcopy $(GTK_DIR)\$(GTK_SCHEMAS_DIR)\gschemas.compiled  $(INSTALL_DIR)\$(GTK_SCHEMAS_DIR) /d
 !ENDIF
        xcopy $(GTK_DIR)\bin\libgio-2.0-0.dll $(INSTALL_DIR) /d
        xcopy $(GTK_DIR)\bin\libglib-2.0-0.dll $(INSTALL_DIR) /d
index 1032fa9a6c77e8e7a631e554365c02730891015d..7e5005bfca6743a22ebfd1918db70209c1b15bc4 100644 (file)
@@ -246,6 +246,7 @@ GLIB_VERSION=2.0
 GTK_NAME=gtk2
 GTK_DIR=$(WIRESHARK_LIB_DIR)\$(GTK_NAME)
 
+
 # These macros are used by the nsis installer script and by the install target.
 #EXPAT_DLL=libexpat-1.dll
 FFI_DLL=libffi-5.dll
@@ -653,6 +654,18 @@ SMI_PKG=svn-40773
 GEOIP_PKG=1.4.8-2
 
 !endif
+# win32 / win64
+
+!IF "$(GTK_NAME)" == "gtk2"
+GTK_ETC_DIR=etc\gtk-2.0
+GTK_ENGINES_DIR=lib\gtk-2.0\$(GTK_LIB_DIR)\engines
+GTK_MODULES_DIR=lib\gtk-2.0\modules
+GTK_THEMES_DIR=share\themes\MS-Windows\gtk-2.0
+!ELSE
+GTK_ETC_DIR=etc\gtk-3.0
+GTK_SCHEMAS_DIR=\share\glib-2.0\schemas
+!ENDIF
+
 
 ##### Tools #####
 
@@ -1171,15 +1184,10 @@ NEED_JPEG_DLL=USE
 NEED_TIFF_DLL=USE
 NEED_LZMA_DLL=USE
 
-GTK_WIMP_DLLSRC_DIR=$(GTK_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines
-GTK_WIMP_DLLDST_DIR=lib\gtk-2.0\$(GTK_LIB_DIR)\engines
-GTK_WIMP_RCSRC_DIR=$(GTK_DIR)\share\themes\MS-Windows\gtk-2.0
-GTK_WIMP_RCDST_DIR=etc\gtk-2.0
 #
 # Use of GTK3+ is experimental/not working
 #
 !ELSEIF "$(GTK_INST_VERSION)" == "3.4"
-GTK_SCHEMAS_INST_DIR=\share\glib-2.0\schemas
 
 # GTK+
 GTK_CFLAGS=$(GLIB_CFLAGS) /I$(GTK_DIR)\include\gtk-3.0 \
@@ -1203,6 +1211,7 @@ GTK_LIB_DIR=3.4
 !IFDEF _DLL
 !ENDIF
 
+NEED_CAIRO_GOBJECT_DLL=USE
 NEED_CAIRO_DLL=USE
 
 !IFDEF EXPAT_DLL
index 487da703574c369b638464a2d2117ef7905eb113..4cb6870b36399a71ff955808c5a1e73609df476a 100644 (file)
@@ -114,6 +114,19 @@ NSIS_FLAGS=\
        /DGDK_DLL=$(GDK_DLL) \
        /DGTK_DLL=$(GTK_DLL) \
        /DGTK_NAME=$(GTK_NAME) \
+       /DGTK_ETC_DIR=$(GTK_ETC_DIR) \
+!IFDEF GTK_ENGINES_DIR
+       /DGTK_ENGINES_DIR=$(GTK_ENGINES_DIR) \
+!ENDIF
+!IFDEF GTK_MODULES_DIR
+       /DGTK_MODULES_DIR=$(GTK_MODULES_DIR) \
+!ENDIF
+!IFDEF GTK_SCHEMAS_DIR
+       /DGTK_SCHEMAS_DIR=$(GTK_SCHEMAS_DIR) \
+!ENDIF
+!IFDEF NEED_CAIRO_GOBJECT_DLL
+       /DNEED_CAIRO_GOBJECT_DLL=$(NEED_CAIRO_GOBJECT_DLL) \
+!ENDIF
 !IFDEF NEED_CAIRO_DLL
        /DNEED_CAIRO_DLL=$(NEED_CAIRO_DLL) \
 !ENDIF
@@ -162,10 +175,6 @@ NSIS_FLAGS=\
        /DXML_DLL=$(XML_DLL) \
 !ENDIF
 !ENDIF
-       /DGTK_WIMP_DLLDST_DIR=$(GTK_WIMP_DLLDST_DIR) \
-       /DGTK_WIMP_DLLSRC_DIR=$(GTK_WIMP_DLLSRC_DIR) \
-       /DGTK_WIMP_RCDST_DIR=$(GTK_WIMP_RCDST_DIR) \
-       /DGTK_WIMP_RCSRC_DIR=$(GTK_WIMP_RCSRC_DIR) \
        /DINTL_DLL=$(INTL_DLL) \
        /DVERSION=$(VERSION) \
        /DVERSION_MAJOR=$(VERSION_MAJOR) \
index dfeb26eadd534fba216ced20ba0a016cfa67aee2..8ac87b3ab6f3302d8c7dcb8200872c3aa811068a 100644 (file)
@@ -278,7 +278,9 @@ FunctionEnd
 Var WINPCAP_UNINSTALL ;declare variable for holding the value of a registry key
 ;Var WIRESHARK_UNINSTALL ;declare variable for holding the value of a registry key
 
+!ifdef VCREDIST_EXE
 Var VCREDIST_FLAGS ; silent vs passive, norestart
+!endif
 
 Section "-Required"
 ;-------------------------------------------
@@ -750,12 +752,12 @@ File "${STAGING_DIR}\${GTK_DLL}"
 File "${STAGING_DIR}\libatk-1.0-0.dll"
 File "${STAGING_DIR}\libpango-1.0-0.dll"
 File "${STAGING_DIR}\libpangowin32-1.0-0.dll"
+!ifdef NEED_CAIRO_GOBJECT_DLL
+File "${STAGING_DIR}\libcairo-gobject-2.dll"
+!endif
 !ifdef NEED_CAIRO_DLL
 File "${STAGING_DIR}\libcairo-2.dll"
 File "${STAGING_DIR}\libpangocairo-1.0-0.dll"
-!if ${GTK_NAME} == "gtk3"
-File "${STAGING_DIR}\libcairo-gobject-2.dll"
-!endif
 !endif
 !ifdef NEED_EXPAT_DLL
 File "${STAGING_DIR}\${EXPAT_DLL}"
@@ -792,32 +794,25 @@ File "${STAGING_DIR}\${TIFF_DLL}"
 File "${STAGING_DIR}\${XML_DLL}"
 !endif
 
-!if ${GTK_NAME} == "gtk2"
-SetOutPath $INSTDIR\etc\gtk-2.0
-File "${GTK_DIR}\etc\gtk-2.0\*.*"
-!else
-SetOutPath $INSTDIR\etc\gtk-3.0
-File "${STAGING_DIR}\etc\gtk-3.0\*.*"
-SetOutPath $INSTDIR\share\glib-2.0\schemas
-File "${STAGING_DIR}\share\glib-2.0\schemas\*.*"
+SetOutPath $INSTDIR\${GTK_ETC_DIR}
+File "${GTK_DIR}\${GTK_ETC_DIR}\*.*"
+
+!ifdef GTK_ENGINES_DIR
+SetOutPath $INSTDIR\${GTK_ENGINES_DIR}
+File "${STAGING_DIR}\${GTK_ENGINES_DIR}\libpixmap.dll"
+File "${STAGING_DIR}\${GTK_ENGINES_DIR}\libwimp.dll"
+!endif
+
+!ifdef GTK_MODULES_DIR
+SetOutPath $INSTDIR\${GTK_MODULES_DIR}
+File "${STAGING_DIR}\${GTK_MODULES_DIR}\libgail.dll"
 !endif
-#!if ${WIRESHARK_TARGET_PLATFORM} == "win32"
-#SetOutPath $INSTDIR\etc\pango
-#File "${GTK_DIR}\etc\pango\pango.*"
-#!endif
-
-!if ${GTK_NAME} == "gtk2"
-SetOutPath $INSTDIR\lib\gtk-2.0\${GTK_LIB_DIR}\engines
-File "${STAGING_DIR}\lib\gtk-2.0\${GTK_LIB_DIR}\engines\libpixmap.dll"
-SetOutPath $INSTDIR\lib\gtk-2.0\modules
-File "${STAGING_DIR}\lib\gtk-2.0\modules\libgail.dll"
-
-; GTK MS-Windows Engine (GTK-Wimp)
-SetOutPath $INSTDIR\${GTK_WIMP_DLLDST_DIR}
-File "${STAGING_DIR}\lib\gtk-2.0\${GTK_LIB_DIR}\engines\libwimp.dll"
-SetOutPath $INSTDIR\${GTK_WIMP_RCDST_DIR}
-File "${GTK_WIMP_RCSRC_DIR}\gtkrc"
+
+!ifdef GTK_SCHEMAS_DIR
+SetOutPath $INSTDIR\${GTK_SCHEMAS_DIR}
+File "${STAGING_DIR}\${GTK_SCHEMAS_DIR}\*.*"
 !endif
+
 SectionEnd ; "Wireshark"
 !endif
 
index 56a1273e9aa272c0d3bca52a228592a7880dae70..c3d19868a77b88f41a950b53716e3260a825b44f 100755 (executable)
@@ -4,6 +4,10 @@
 #
 
 print q{
+#
+# DO NOT EDIT - autogenerated from makenmake.pl
+#
+
 include ../../../config.nmake
 include <win32.mak>
 
@@ -31,6 +35,12 @@ while($line = <>) {
        $dir = $1;
        undef $u3loc;
 
+       # Close any previous !IFDEFs
+       if(defined $define) {
+           print "!ENDIF\n";
+       }
+       undef $define;
+
        if($line =~ /u3loc=(\w+)/) {
            $u3loc = "\$(" . uc $1 . ")";
        }
@@ -62,8 +72,7 @@ while($line = <>) {
                $define = $1;
                print "!IF DEFINED($define)\n";
            }
-       } else {
-           
+       } else {            
            if(defined $define) {
                print "!ENDIF\n";
            }
index ed228fd3941b09323e1425124bbcafe4e977b512..0df2584a02349af617f5df8076ca03f83dd00a19 100755 (executable)
@@ -7,19 +7,14 @@
 
 my %u3locs = qw(
        $INSTDIR device
-       $INSTDIR\${GTK_WIMP_DLLDST_DIR} host
-       $INSTDIR\${GTK_WIMP_RCDST_DIR} host
        $INSTDIR\diameter device
        $INSTDIR\dtds device
-       $INSTDIR\etc\gtk-2.0 host
-       $INSTDIR\etc\gtk-3.0 host
-       $INSTDIR\share\glib-2.0\schemas
+       $INSTDIR\${GTK_ETC_DIR} host
+       $INSTDIR\${GTK_SCHEMAS_DIR} host
+       $INSTDIR\${GTK_ENGINES_DIR} host
+       $INSTDIR\${GTK_MODULES_DIR} host
        $INSTDIR\etc\pango host
        $INSTDIR\help device
-       $INSTDIR\lib\gtk-2.0\${GTK_LIB_DIR}\engines host
-       $INSTDIR\lib\gtk-2.0\${GTK_LIB_DIR}\immodules host
-       $INSTDIR\lib\gtk-2.0\${GTK_LIB_DIR}\loaders host
-       $INSTDIR\lib\gtk-2.0\modules host
        $INSTDIR\plugins\${VERSION} device
        $INSTDIR\radius device
        $INSTDIR\snmp\mibs device
@@ -70,6 +65,7 @@ print "#\n# DO NOT EDIT - autogenerated from wireshark.nsi\n#\n";
 foreach $dir(sort @dirs) {
 
     if($prev ne $dir) {
+    print STDERR "looking for $dir\n";
        $loc = $u3locs{$dir};
 
        if(defined $loc) {