# # 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 STAGING_DIR=..\..\$(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/capinfos.html \ ../../doc/dumpcap.html \ ../../doc/editcap.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/@MAKEDIR@/$(MAKEDIR_ESCAPED:\=\\)/ \ -e s/@STAGING_DIR@/$(STAGING_DIR:\=\\)/ \ -e s/@WIRESHARK_TARGET_PLATFORM@/$(WIRESHARK_TARGET_PLATFORM)/ \ -e s/@TARGET_MACHINE@/$(TARGET_MACHINE)/ \ -e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \ -e s/@MSC_VER_REQUIRED@/$(MSC_VER_REQUIRED)/ \ -e s/@WIRESHARK_LIB_DIR@/$(WIRESHARK_LIB_DIR:\=\\)/ \ -e s/@WINPCAP_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/@VERSION_MICRO@/$(VERSION_MICRO)/ \ -e s/@VERSION_BUILD@/$(VERSION_BUILD)/ \ -e s/@PRODUCT_VERSION@/$(PRODUCT_VERSION)/ \ -e s/@WTAP_VERSION@/$(WTAP_VERSION)/ \ -e "s/@MSVCR_DLL@/$(MSVCR_DLL:\=\\)/" \ -e s/@VCREDIST_EXE@/$(VCREDIST_EXE:\=\\)/ \ -e s/@ENABLE_LIBWIRESHARK@/$(ENABLE_LIBWIRESHARK)/ \ !IFDEF GTK_DIR -e s/@GTK_DIR@/$(GTK_DIR:\=\\)/ \ -e s/@GTK_LIB_DIR@/$(GTK_LIB_DIR:\=\\)/ \ -e s/@PANGO_LIB_DIR@/$(PANGO_LIB_DIR:\=\\)/ \ -e s/@GDK_DLL@/$(GDK_DLL)/ \ -e s/@GTK_DLL@/$(GTK_DLL)/ \ -e s/@GTK_NAME@/$(GTK_NAME)/ \ -e s/@GTK_ETC_DIR@/$(GTK_ETC_DIR:\=\\)/ \ !IFDEF GTK_ENGINES_DIR -e s/@GTK_ENGINES_DIR@/$(GTK_ENGINES_DIR:\=\\)/ \ !ENDIF !IFDEF GTK_MODULES_DIR -e s/@GTK_MODULES_DIR@/$(GTK_MODULES_DIR:\=\\)/ \ !ENDIF !IFDEF GTK_SCHEMAS_DIR -e s/@GTK_SCHEMAS_DIR@/$(GTK_SCHEMAS_DIR:\=\\)/ \ !ENDIF !IFDEF NEED_CAIRO_GOBJECT_DLL -e s/@NEED_CAIRO_GOBJECT_DLL@/$(NEED_CAIRO_GOBJECT_DLL)/ \ !ENDIF !IFDEF NEED_CAIRO_DLL -e s/@NEED_CAIRO_DLL@/$(NEED_CAIRO_DLL)/ \ !ENDIF !IFDEF NEED_EXPAT_DLL -e s/@NEED_EXPAT_DLL@/$(NEED_EXPAT_DLL)/ \ -e s/@EXPAT_DLL@/$(EXPAT_DLL)/ \ !ENDIF !IFDEF NEED_FFI_DLL -e s/@NEED_FFI_DLL@/$(NEED_FFI_DLL)/ \ -e s/@FFI_DLL@/$(FFI_DLL)/ \ !ENDIF !IFDEF NEED_FONTCONFIG_DLL -e s/@NEED_FONTCONFIG_DLL@/$(NEED_FONTCONFIG_DLL)/ \ -e s/@FONTCONFIG_DLL@/$(FONTCONFIG_DLL)/ \ !ENDIF !IFDEF NEED_FREETYPE_DLL -e s/@NEED_FREETYPE_DLL@/$(NEED_FREETYPE_DLL)/ \ -e s/@FREETYPE_DLL@/$(FREETYPE_DLL)/ \ !ENDIF !IFDEF NEED_HARFBUZZ_DLL -e s/@NEED_HARFBUZZ_DLL@/$(NEED_HARFBUZZ_DLL)/ \ -e s/@HARFBUZZ_DLL@/$(HARFBUZZ_DLL)/ \ !ENDIF !IFDEF NEED_JASPER_DLL -e s/@NEED_JASPER_DLL@/$(NEED_JASPER_DLL)/ \ -e s/@JASPER_DLL@/$(JASPER_DLL)/ \ !ENDIF !IFDEF NEED_JPEG_DLL -e s/@NEED_JPEG_DLL@/$(NEED_JPEG_DLL)/ \ -e s/@JPEG_DLL@/$(JPEG_DLL)/ \ !ENDIF !IFDEF NEED_LZMA_DLL -e s/@NEED_LZMA_DLL@/$(NEED_LZMA_DLL)/ \ -e s/@LZMA_DLL@/$(LZMA_DLL)/ \ !ENDIF !IFDEF NEED_PIXMAN_DLL -e s/@NEED_PIXMAN_DLL@/$(NEED_PIXMAN_DLL)/ \ -e s/@PIXMAN_DLL@/$(PIXMAN_DLL)/ \ !ENDIF !IFDEF NEED_PNG_DLL -e s/@NEED_PNG_DLL@/$(NEED_PNG_DLL)/ \ -e s/@PNG_DLL@/$(PNG_DLL)/ \ !ENDIF !IFDEF NEED_SEH_DLL -e s/@NEED_SEH_DLL@/$(NEED_SEH_DLL)/ \ -e s/@SEH_DLL@/$(SEH_DLL)/ \ !ENDIF !IFDEF NEED_SJLJ_DLL -e s/@NEED_SJLJ_DLL@/$(NEED_SJLJ_DLL)/ \ -e s/@SJLJ_DLL@/$(SJLJ_DLL)/ \ !ENDIF !IFDEF NEED_TIFF_DLL -e s/@NEED_TIFF_DLL@/$(NEED_TIFF_DLL)/ \ -e s/@TIFF_DLL@/$(TIFF_DLL)/ \ !ENDIF !IFDEF NEED_XML_DLL -e s/@NEED_XML_DLL@/$(NEED_XML_DLL)/ \ -e s/@XML_DLL@/$(XML_DLL)/ \ !ENDIF !ENDIF !IF "$(C_ARES_DIR)" != "" -e s/@C_ARES_DIR@/$(C_ARES_DIR:\=\\)/ \ !ENDIF !IF "$(ADNS_DIR)" != "" -e s/@ADNS_DIR@/$(ADNS_DIR:\=\\)/ \ !ENDIF !IF "$(KFW_DIR)" != "" -e s/@KFW_DIR@/$(KFW_DIR:\=\\)/ \ -e s/@KFW_PATH@/$(KFW_PATH:\=\\)/ \ -e s/@COMERR_DLL@/$(COMERR_DLL:\=\\)/ \ -e s/@KRB5_DLL@/$(KRB5_DLL:\=\\)/ \ -e s/@K5SPRT_DLL@/$(K5SPRT_DLL:\=\\)/ \ !ENDIF !IF "$(GNUTLS_DIR)" != "" -e s/@GPGERROR_DLL@/$(GPGERROR_DLL)/ \ -e s/@GCC_DLL@/$(GCC_DLL)/ \ -e s/@GNUTLS_DIR@/$(GNUTLS_DIR:\=\\)/ \ !ENDIF !IF "$(ZLIB_DIR)" != "" -e s/@ZLIB_DIR@/$(ZLIB_DIR:\=\\)/ \ !ENDIF !IFDEF LUA_DIR -e s/@LUA_DIR@/$(LUA_DIR:\=\\)/ \ !ENDIF !IFDEF SMI_DIR -e s/@SMI_DIR@/$(SMI_DIR:\=\\)/ \ !ENDIF !IFDEF GEOIP_DIR -e s/@GEOIP_DIR@/$(GEOIP_DIR:\=\\)/ \ !ENDIF !IFDEF WINSPARKLE_DIR -e s/@WINSPARKLE_DIR@/$(WINSPARKLE_DIR:\=\\)/ \ !ENDIF !IFDEF HHC_DIR -e 's/@HHC_DIR@/$(HHC_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: qt-dll-manifest.nsh common.nsh 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 wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe rm -f $(UNINSTALL_INSTALLER) rm -f NEWS.txt rm -f user-guide.chm rm -f qt-dll-manifest.nsh rm -f config.nsh 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