wireshark/packaging/nsis/Makefile.nmake

281 lines
8.0 KiB
Makefile

#
# 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:\=\\\\)/' \
-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:\=\\\\)/' \
!IFDEF VCREDIST_EXE
-e 's/@VCREDIST_EXE@/$(VCREDIST_EXE:\=\\\\)/' \
!ENDIF
-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