4 # NSIS is a free packager/installer/uninstaller program for Win32.
5 # It was originally written for the Winamp package, but various
6 # freeware and non-freeware packages are using it, too.
8 # http://www.nullsoft.com/free/nsis/
10 include ../../config.nmake
11 # Contains a list of custom plugins(default empty)
15 STAGING_DIR=..\..\$(INSTALL_DIR)
17 EXE=../../tshark.exe ../../editcap.exe \
21 ../../text2pcap.exe ../../mergecap.exe ../../capinfos.exe $(WIRESHARK_LIB_DIR)\WinPcap_$(PCAP_VERSION).exe
22 DLL=../../wiretap/wiretap-$(WTAP_VERSION).dll ../../wsutil/libwsutil.dll
23 DOC=../../doc/ws.css \
24 ../../doc/capinfos.html \
25 ../../doc/dumpcap.html \
26 ../../doc/editcap.html \
27 ../../doc/mergecap.html \
28 ../../doc/rawshark.html \
29 ../../doc/text2pcap.html \
30 ../../doc/tshark.html \
31 ../../doc/wireshark-filter.html \
32 ../../doc/wireshark.html \
33 $(STAGING_DIR)/COPYING.txt \
34 $(STAGING_DIR)/NEWS.txt \
35 $(STAGING_DIR)/README.txt \
36 $(STAGING_DIR)/README.windows.txt
39 HELP=$(STAGING_DIR)/help/capture_filters.txt \
40 $(STAGING_DIR)/help/capturing.txt \
41 $(STAGING_DIR)/help/display_filters.txt \
42 $(STAGING_DIR)/help/faq.txt \
43 $(STAGING_DIR)/help/getting_started.txt \
44 $(STAGING_DIR)/help/overview.txt \
45 $(STAGING_DIR)/help/toc
48 ../../plugins/asn1/asn1.dll \
49 ../../plugins/docsis/docsis.dll \
50 ../../plugins/ethercat/ethercat.dll \
51 ../../plugins/gryphon/gryphon.dll \
52 ../../plugins/irda/irda.dll \
53 ../../plugins/m2m/m2m.dll \
54 ../../plugins/mate/mate.dll \
55 ../../plugins/opcua/opcua.dll \
56 ../../plugins/profinet/profinet.dll \
57 ../../plugins/stats_tree/stats_tree.dll \
58 ../../plugins/unistim/unistim.dll \
59 ../../plugins/wimax/wimax.dll \
60 ../../plugins/wimaxasncp/wimaxasncp.dll \
61 ../../plugins/wimaxmacphy/wimaxmacphy.dll \
68 GetWindowsVersion.nsh \
70 AdditionalTasksPage.ini \
73 UNINSTALL_INSTALLER = $(STAGING_DIR)\uninstall_installer.exe
75 DELIVERABLES=$(EXE) $(DLL) $(DOC) $(DOC_dos) $(GPL) $(HELP) $(PLUGINS)
78 all: wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe
81 @echo ? NSIS not available (MAKENSIS not defined in config.nmake)
86 # fetch the latest available user-guide.chm version
88 if exist ..\..\docbook\user-guide.chm xcopy ..\..\docbook\user-guide.chm . /Y /D
89 if exist $(WIRESHARK_LIB_DIR)\user-guide\user-guide.chm xcopy $(WIRESHARK_LIB_DIR)\user-guide\user-guide.chm . /Y /D
92 /DPROGRAM_NAME=$(PROGRAM_NAME) \
93 /DMAKEDIR=$(MAKEDIR) \
94 /DSTAGING_DIR=$(STAGING_DIR) \
95 /DWIRESHARK_TARGET_PLATFORM=$(WIRESHARK_TARGET_PLATFORM) \
96 /DTARGET_MACHINE=$(TARGET_MACHINE) \
97 /DMSVC_VARIANT=$(MSVC_VARIANT) \
98 /DMSC_VER_REQUIRED=$(MSC_VER_REQUIRED) \
99 /DWIRESHARK_LIB_DIR=$(WIRESHARK_LIB_DIR) \
100 /DPCAP_VERSION=$(PCAP_VERSION) \
101 /DPCAP_DISPLAY_VERSION=$(PCAP_VERSION:_=.) \
103 /DMSVCR_DLL="$(MSVCR_DLL)" \
106 /DVCREDIST_EXE="$(VCREDIST_EXE)" \
108 !IF "$(ENABLE_LIBWIRESHARK)" != ""
109 /DENABLE_LIBWIRESHARK=$(ENABLE_LIBWIRESHARK) \
112 /DGTK_DIR=$(GTK_DIR) \
113 /DGTK_LIB_DIR=$(GTK_LIB_DIR) \
114 /DPANGO_LIB_DIR=$(PANGO_LIB_DIR) \
115 /DGDK_DLL=$(GDK_DLL) \
116 /DGTK_DLL=$(GTK_DLL) \
117 /DGTK_NAME=$(GTK_NAME) \
118 /DGTK_ETC_DIR=$(GTK_ETC_DIR) \
119 !IFDEF GTK_ENGINES_DIR
120 /DGTK_ENGINES_DIR=$(GTK_ENGINES_DIR) \
122 !IFDEF GTK_MODULES_DIR
123 /DGTK_MODULES_DIR=$(GTK_MODULES_DIR) \
125 !IFDEF GTK_SCHEMAS_DIR
126 /DGTK_SCHEMAS_DIR=$(GTK_SCHEMAS_DIR) \
128 !IFDEF NEED_CAIRO_GOBJECT_DLL
129 /DNEED_CAIRO_GOBJECT_DLL=$(NEED_CAIRO_GOBJECT_DLL) \
131 !IFDEF NEED_CAIRO_DLL
132 /DNEED_CAIRO_DLL=$(NEED_CAIRO_DLL) \
134 !IFDEF NEED_EXPAT_DLL
135 /DNEED_EXPAT_DLL=$(NEED_EXPAT_DLL) \
136 /DEXPAT_DLL=$(EXPAT_DLL) \
139 /DNEED_FFI_DLL=$(NEED_FFI_DLL) \
140 /DFFI_DLL=$(FFI_DLL) \
142 !IFDEF NEED_FONTCONFIG_DLL
143 /DNEED_FONTCONFIG_DLL=$(NEED_FONTCONFIG_DLL) \
144 /DFONTCONFIG_DLL=$(FONTCONFIG_DLL) \
146 !IFDEF NEED_FREETYPE_DLL
147 /DNEED_FREETYPE_DLL=$(NEED_FREETYPE_DLL) \
148 /DFREETYPE_DLL=$(FREETYPE_DLL) \
150 !IFDEF NEED_JASPER_DLL
151 /DNEED_JASPER_DLL=$(NEED_JASPER_DLL) \
152 /DJASPER_DLL=$(JASPER_DLL) \
155 /DNEED_JPEG_DLL=$(NEED_JPEG_DLL) \
156 /DJPEG_DLL=$(JPEG_DLL) \
159 /DNEED_LZMA_DLL=$(NEED_LZMA_DLL) \
160 /DLZMA_DLL=$(LZMA_DLL) \
162 !IFDEF NEED_PIXMAN_DLL
163 /DNEED_PIXMAN_DLL=$(NEED_PIXMAN_DLL) \
164 /DPIXMAN_DLL=$(PIXMAN_DLL) \
167 /DNEED_PNG_DLL=$(NEED_PNG_DLL) \
168 /DPNG_DLL=$(PNG_DLL) \
171 /DNEED_TIFF_DLL=$(NEED_TIFF_DLL) \
172 /DTIFF_DLL=$(TIFF_DLL) \
175 /DNEED_XML_DLL=$(NEED_XML_DLL) \
176 /DXML_DLL=$(XML_DLL) \
179 /DINTL_DLL=$(INTL_DLL) \
180 /DVERSION=$(VERSION) \
181 /DVERSION_MAJOR=$(VERSION_MAJOR) \
182 /DVERSION_MINOR=$(VERSION_MINOR) \
183 /DVERSION_MICRO=$(VERSION_MICRO) \
184 /DVERSION_BUILD=$(VERSION_BUILD) \
185 /DPRODUCT_VERSION=$(PRODUCT_VERSION) \
186 /DWTAP_VERSION=$(WTAP_VERSION) \
187 !IF "$(C_ARES_DIR)" != ""
188 /DC_ARES_DIR=$(C_ARES_DIR) \
190 !IF "$(ADNS_DIR)" != ""
191 /DADNS_DIR=$(ADNS_DIR) \
193 !IF "$(KFW_DIR)" != ""
194 /DKFW_DIR=$(KFW_DIR) \
195 /DKFW_PATH=$(KFW_PATH) \
197 !IF "$(GNUTLS_DIR)" != ""
198 /DGNUTLS_DIR=$(GNUTLS_DIR) \
200 !IF "$(ZLIB_DIR)" != ""
201 /DZLIB_DIR=$(ZLIB_DIR) \
204 /DLUA_DIR=$(LUA_DIR) \
207 /DSMI_DIR=$(SMI_DIR) \
210 /DGEOIP_DIR=$(GEOIP_DIR) \
212 !IFDEF WINSPARKLE_DIR
213 /DWINSPARKLE_DIR=$(WINSPARKLE_DIR) \
216 /DHHC_DIR="$(HHC_DIR)" \
218 !IF EXIST("..\..\wireshark-qt-release\qtshark.exe")
219 /DQT_DIR="..\..\wireshark-qt-release" \
221 !IF EXIST("..\..\wireshark-qt-release\Qt5Core.dll")
224 !IF EXIST("..\..\wireshark-qt-release\QtCore4.dll")
228 $(STAGING_DIR)\uninstall.exe : $(NSI)
229 rm -f $(UNINSTALL_INSTALLER)
230 $(MAKENSIS) $(NSIS_FLAGS) uninstall.nsi
231 $(UNINSTALL_INSTALLER)
232 rm -f $(UNINSTALL_INSTALLER)
234 uninstall-exe : $(STAGING_DIR)\uninstall.exe
236 wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe : user-guide.chm $(NSI) $(DELIVERABLES) Makefile.nmake $(STAGING_DIR)\uninstall.exe
237 $(MAKENSIS) $(NSIS_FLAGS) wireshark.nsi
240 rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe
241 rm -f $(UNINSTALL_INSTALLER)
246 rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-*.exe
248 maintainer-clean: distclean
252 $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
257 $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
261 _FORCE_: ## Assumption: no file named _FORCE_ exists in the current directory