# # NSIS is a free packager/installer/uninstaller program for Win32. # It was originally written for the Winamp package, but various # freeware and non-freeware packages are using it, too. # # http://www.nullsoft.com/free/nsis/ include ../../config.nmake # Contains a list of custom plugins(default empty) include Custom.nmake TOP_SRC_DIR=$(MAKEDIR)\..\.. # Must be absolue for uninstall.nsi STAGING_DIR=$(MAKEDIR)\..\..\$(INSTALL_DIR) EXE=../../tshark.exe ../../editcap.exe \ !IFDEF GTK_DIR ../../wireshark-gtk.exe \ !ENDIF ../../text2pcap.exe ../../mergecap.exe ../../capinfos.exe $(WIRESHARK_LIB_DIR)\WinPcap_$(WINPCAP_VERSION).exe DLL=../../wiretap/wiretap-$(WTAP_VERSION).dll ../../wsutil/libwsutil.dll DOC=../../doc/ws.css \ ../../doc/androiddump.html \ ../../doc/capinfos.html \ ../../doc/dumpcap.html \ ../../doc/editcap.html \ ../../doc/extcap.html \ ../../doc/mergecap.html \ ../../doc/rawshark.html \ ../../doc/text2pcap.html \ ../../doc/tshark.html \ ../../doc/wireshark-filter.html \ ../../doc/wireshark.html \ $(STAGING_DIR)/COPYING.txt \ $(STAGING_DIR)/NEWS.txt \ $(STAGING_DIR)/README.txt \ $(STAGING_DIR)/README.windows.txt GPL=../../COPYING HELP=$(STAGING_DIR)/help/capture_filters.txt \ $(STAGING_DIR)/help/capturing.txt \ $(STAGING_DIR)/help/display_filters.txt \ $(STAGING_DIR)/help/faq.txt \ $(STAGING_DIR)/help/getting_started.txt \ $(STAGING_DIR)/help/overview.txt \ $(STAGING_DIR)/help/toc PLUGINS= \ ../../plugins/docsis/docsis.dll \ ../../plugins/ethercat/ethercat.dll \ ../../plugins/gryphon/gryphon.dll \ ../../plugins/irda/irda.dll \ ../../plugins/m2m/m2m.dll \ ../../plugins/mate/mate.dll \ ../../plugins/opcua/opcua.dll \ ../../plugins/profinet/profinet.dll \ ../../plugins/stats_tree/stats_tree.dll \ ../../plugins/unistim/unistim.dll \ ../../plugins/wimax/wimax.dll \ ../../plugins/wimaxasncp/wimaxasncp.dll \ ../../plugins/wimaxmacphy/wimaxmacphy.dll \ $(CUSTOM_PLUGINS) NSI=\ wireshark.nsi \ uninstall.nsi \ common.nsh \ GetWindowsVersion.nsh \ servicelib.nsh \ AdditionalTasksPage.ini \ WinPcapPage.ini UNINSTALL_INSTALLER = $(STAGING_DIR)\uninstall_installer.exe DELIVERABLES=$(EXE) $(DLL) $(DOC) $(DOC_dos) $(GPL) $(HELP) $(PLUGINS) !IFDEF MAKENSIS all: wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe !ELSE all: _FORCE_ @echo ? NSIS not available (MAKENSIS not defined in config.nmake) @echo. @exit 1 !ENDIF # fetch the latest available user-guide.chm version user-guide.chm:: if exist ..\..\docbook\user-guide.chm xcopy ..\..\docbook\user-guide.chm . /Y /D if exist $(WIRESHARK_LIB_DIR)\user-guide\user-guide.chm xcopy $(WIRESHARK_LIB_DIR)\user-guide\user-guide.chm . /Y /D common.nsh: config.nsh config.nsh: config.nsh.in ..\..\config.nmake sed \ -e s/@PROGRAM_NAME@/$(PROGRAM_NAME)/ \ -e 's/@TOP_SRC_DIR@/$(TOP_SRC_DIR:\=\\\\)/' \ -e 's/@STAGING_DIR@/$(STAGING_DIR:\=\\\\)/' \ -e s/@USER_GUIDE_DIR@/./ \ -e s/@WIRESHARK_TARGET_PLATFORM@/$(WIRESHARK_TARGET_PLATFORM)/ \ -e s/@TARGET_MACHINE@/$(TARGET_MACHINE)/ \ -e s/@MSC_VER_REQUIRED@/$(MSC_VER_REQUIRED)/ \ -e 's/@WIRESHARK_LIB_DIR@/$(WIRESHARK_LIB_DIR:\=\\\\)/' \ -e s/@WINPCAP_PACKAGE_VERSION@/$(WINPCAP_VERSION)/ \ -e s/@PCAP_DISPLAY_VERSION@/$(WINPCAP_VERSION:_=.)/ \ -e s/@INTL_DLL@/$(INTL_DLL)/ \ -e s/@VERSION@/$(VERSION)/ \ -e s/@VERSION_MAJOR@/$(VERSION_MAJOR)/ \ -e s/@VERSION_MINOR@/$(VERSION_MINOR)/ \ -e s/@PRODUCT_VERSION@/$(PRODUCT_VERSION)/ \ -e s/@WTAP_VERSION@/$(WTAP_VERSION)/ \ -e 's/@MSVCR_DLL@/$(MSVCR_DLL:\=\\\\)/' \ !IFDEF VCREDIST_EXE -e 's/@VCREDIST_EXE@/$(VCREDIST_EXE:\=\\\\)/' \ !ENDIF -e s/@ENABLE_LIBWIRESHARK@/$(ENABLE_LIBWIRESHARK)/ \ -e 's/@SMI_DIR@/$(SMI_DIR:\=\\\\)/' \ !IFDEF GTK_DIR -e 's/@GTK_DIR@/$(GTK_DIR:\=\\\\)/' \ !ENDIF !IF EXIST("..\..\wireshark-qt-release\wireshark.exe") -e s/@QT_DIR@/..\\..\\wireshark-qt-release/ \ !ENDIF -e 's/\(^^!define .*\) \"*@.*@\"*/; \1/' \ < config.nsh.in > $@ wireshark.nsi: all-manifest.nsh qt-dll-manifest.nsh gtk-dll-manifest.nsh common.nsh all-manifest.nsh: Makefile.nmake ..\..\config.nmake @echo # Files required for all sections. Generated from Makefile.nmake > $@ @echo # GLib >> $@ @echo File "$(STAGING_DIR)\libgio-2.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\libglib-2.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\libgobject-2.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\libgmodule-2.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\$(INTL_DLL)" >> $@ @echo File "$(STAGING_DIR)\gspawn-$(WIRESHARK_TARGET_PLATFORM)-helper.exe" >> $@ @echo File "$(STAGING_DIR)\gspawn-$(WIRESHARK_TARGET_PLATFORM)-helper-console.exe" >> $@ !IF "$(C_ARES_DIR)" != "" @echo # C-Ares >> $@ @echo File "$(STAGING_DIR)\libcares-2.dll" >> $@ !ENDIF !IF "$(GNUTLS_DIR)" != "" @echo # GnuTLS >> $@ @echo File "$(STAGING_DIR)\libffi-6.dll" >> $@ @echo File "$(STAGING_DIR)\$(GCC_DLL)" >> $@ @echo File "$(STAGING_DIR)\libgcrypt-20.dll" >> $@ @echo File "$(STAGING_DIR)\libgmp-10.dll" >> $@ @echo File "$(STAGING_DIR)\libgnutls-28.dll" >> $@ @echo File "$(STAGING_DIR)\$(GPGERROR_DLL)" >> $@ @echo File "$(STAGING_DIR)\libhogweed-2-4.dll" >> $@ @echo File "$(STAGING_DIR)\libnettle-4-6.dll" >> $@ @echo File "$(STAGING_DIR)\libp11-kit-0.dll" >> $@ @echo File "$(STAGING_DIR)\libtasn1-6.dll" >> $@ !ENDIF !IF "$(KFW_DIR)" != "" @echo # Kerberos >> $@ @echo File "$(STAGING_DIR)\$(COMERR_DLL)" >> $@ @echo File "$(STAGING_DIR)\$(KRB5_DLL)" >> $@ @echo File "$(STAGING_DIR)\$(K5SPRT_DLL)" >> $@ !ENDIF !IFDEF LUA_DIR @echo # Lua >> $@ @echo File "$(STAGING_DIR)\lua52.dll" >> $@ @echo File "..\..\epan\wslua\init.lua" >> $@ @echo File "..\..\epan\wslua\console.lua" >> $@ @echo File "..\..\epan\wslua\dtd_gen.lua" >> $@ !ENDIF !IFDEF GEOIP_DIR @echo File "$(STAGING_DIR)\libGeoIP-1.dll" >> $@ !ENDIF !IFDEF SMI_DIR @echo # SMI >> $@ @echo File "$(STAGING_DIR)\libsmi-2.dll" >> $@ !ENDIF !IFDEF WINSPARKLE_DIR @echo # WinSparkle >> $@ @echo File "$(STAGING_DIR)\WinSparkle.dll" >> $@ !ENDIF !IF "$(ZLIB_DIR)" != "" @echo # Zlib >> $@ @echo File "$(STAGING_DIR)\zlib1.dll" >> $@ !ENDIF gtk-dll-manifest.nsh: Makefile.nmake ..\..\config.nmake @echo # Files required for the GTK+ section. Generated from Makefile.nmake > $@ @echo # Mandatory >> $@ @echo File "$(STAGING_DIR)\$(GDK_DLL)" >> $@ @echo File "$(STAGING_DIR)\libgdk_pixbuf-2.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\$(GTK_DLL)" >> $@ @echo File "$(STAGING_DIR)\libatk-1.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\libpango-1.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\libpangowin32-1.0-0.dll" >> $@ @echo # Optional >> $@ !IFDEF NEED_CAIRO_DLL @echo File "$(STAGING_DIR)\libcairo-2.dll" >> $@ @echo File "$(STAGING_DIR)\libpangocairo-1.0-0.dll" >> $@ !ENDIF !IFDEF NEED_CAIRO_GOBJECT_DLL @echo File "$(STAGING_DIR)\libcairo-gobject-2.dll" >> $@ !ENDIF !IFDEF NEED_EXPAT_DLL @echo File "$(STAGING_DIR)\${EXPAT_DLL)" >> $@ !ENDIF !IFDEF NEED_FFI_DLL @echo File "$(STAGING_DIR)\$(FFI_DLL)" >> $@ !ENDIF !IFDEF NEED_FONTCONFIG_DLL @echo File "$(STAGING_DIR)\$(FONTCONFIG_DLL)" >> $@ !ENDIF !IFDEF NEED_FREETYPE_DLL @echo File "$(STAGING_DIR)\libpangoft2-1.0-0.dll" >> $@ @echo File "$(STAGING_DIR)\$(FREETYPE_DLL)" >> $@ !ENDIF !IFDEF NEED_HARFBUZZ_DLL @echo File "$(STAGING_DIR)\$(HARFBUZZ_DLL)" >> $@ !ENDIF !IFDEF NEED_JASPER_DLL @echo File "$(STAGING_DIR)\$(JASPER_DLL)" >> $@ !ENDIF !IFDEF NEED_JPEG_DLL @echo File "$(STAGING_DIR)\$(JPEG_DLL)" >> $@ !ENDIF !IFDEF NEED_LZMA_DLL @echo File "$(STAGING_DIR)\$(LZMA_DLL)" >> $@ !ENDIF !IFDEF NEED_PIXMAN_DLL @echo File "$(STAGING_DIR)\$(PIXMAN_DLL)" >> $@ !ENDIF !IFDEF NEED_PNG_DLL @echo File "$(STAGING_DIR)\$(PNG_DLL)" >> $@ !ENDIF !IFDEF NEED_SEH_DLL @echo File "$(STAGING_DIR)\$(SEH_DLL)" >> $@ !ENDIF !IFDEF NEED_SJLJ_DLL @echo File "$(STAGING_DIR)\$(SJLJ_DLL)" >> $@ !ENDIF !IFDEF NEED_TIFF_DLL @echo File "$(STAGING_DIR)\$(TIFF_DLL)" >> $@ !ENDIF !IFDEF NEED_XML_DLL @echo File "$(STAGING_DIR)\$(XML_DLL)" >> $@ !ENDIF @echo # Subdirectories >> $@ @echo SetOutPath ^$INSTDIR\$(GTK_ETC_DIR) >> $@ @echo File "$(GTK_DIR)\$(GTK_ETC_DIR)\*.*" >> $@ !IFDEF GTK_ENGINES_DIR @echo SetOutPath ^$INSTDIR\$(GTK_ENGINES_DIR) >> $@ @echo File "$(STAGING_DIR)\$(GTK_ENGINES_DIR)\libpixmap.dll" >> $@ @echo File "$(STAGING_DIR)\$(GTK_ENGINES_DIR)\libwimp.dll" >> $@ !ENDIF !IFDEF GTK_MODULES_DIR @echo SetOutPath ^$INSTDIR\$(GTK_MODULES_DIR) >> $@ @echo File "$(STAGING_DIR)\$(GTK_MODULES_DIR)\libgail.dll" >> $@ !ENDIF !IFDEF GTK_SCHEMAS_DIR @echo SetOutPath ^$INSTDIR\$(GTK_SCHEMAS_DIR) >> $@ @echo File "$(STAGING_DIR)\$(GTK_SCHEMAS_DIR)\*.*" >> $@ !ENDIF qt-dll-manifest.nsh: windeployqt-to-nsis.ps1 Makefile.nmake !IF EXIST("$(QT5_BASE_DIR)\bin\qmake.exe") set PATH=%PATH%;$(QT5_BASE_DIR)\bin !ENDIF $(POWERSHELL) windeployqt-to-nsis.ps1 \ -Executable ..\..\wireshark-qt-release\wireshark.exe \ -FilePath $@ $(STAGING_DIR)\uninstall.exe : $(NSI) rm -f $(UNINSTALL_INSTALLER) $(MAKENSIS) uninstall.nsi $(UNINSTALL_INSTALLER) rm -f $(UNINSTALL_INSTALLER) uninstall-exe : $(STAGING_DIR)\uninstall.exe wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe : user-guide.chm $(NSI) $(DELIVERABLES) Makefile.nmake $(STAGING_DIR)\uninstall.exe $(MAKENSIS) wireshark.nsi clean: rm -f all-manifest.nsh rm -f config.nsh rm -f gtk-dll-manifest.nsh rm -f NEWS.txt rm -f qt-dll-manifest.nsh rm -f user-guide.chm rm -f $(UNINSTALL_INSTALLER) rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe distclean: clean rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-*.exe maintainer-clean: distclean $(DOC): cd ../../doc $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake cd ../packaging/nsis $(EXE) $(DLL): cd ../.. $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake cd packaging/nsis #### _FORCE_: ## Assumption: no file named _FORCE_ exists in the current directory