From Matt Poduska via bug 1957 (with minor changes):
[obnox/wireshark/wip.git] / packaging / nsis / Makefile.nmake
index b211b2e67d622d5dd9829e9d248c4760442e3f0c..95b522a2313f7c919ce857bf0520fc6132fbf228 100644 (file)
@@ -8,70 +8,64 @@
 # http://www.nullsoft.com/free/nsis/
 
 include ../../config.nmake
-
-UNIX2DOS=$(PERL) ../../tools/unix2dos.pl
+# Contains a list of custom plugins(default empty)
+include Custom.nmake
 
 
 EXE=../../tshark.exe ../../editcap.exe \
 !IFDEF GTK_DIR
        ../../wireshark.exe \
 !ENDIF
-       ../../text2pcap.exe ../../mergecap.exe ../../capinfos.exe WinPcap_4_0_2.exe
-DLL=../../wiretap/wiretap-$(WTAP_VERSION).dll
-DOC=../../doc/ws.css                   \
-       ../../doc/capinfos.html         \
-       ../../doc/dumpcap.html          \
-       ../../doc/editcap.html          \
-       ../../doc/idl2wrs.html          \
-       ../../doc/mergecap.html         \
-       ../../doc/rawshark.html         \
-       ../../doc/text2pcap.html        \
-       ../../doc/rawshark.html         \
-       ../../doc/tshark.html           \
-       ../../doc/wireshark-filter.html \
-       ../../doc/wireshark.html        \
-       ../../FAQ                       \
-       ../../README                    \
-       ../../README.win32
-DOC_dos=NEWS.txt
+       ../../text2pcap.exe ../../mergecap.exe ../../capinfos.exe WinPcap_4_1_1.exe
+DLL=../../wiretap/wiretap-$(WTAP_VERSION).dll ../../wsutil/libwsutil.dll
+DOC=../../doc/ws.css                           \
+       ../../doc/capinfos.html                 \
+       ../../doc/dumpcap.html                  \
+       ../../doc/editcap.html                  \
+       ../../doc/idl2wrs.html                  \
+       ../../doc/mergecap.html                 \
+       ../../doc/rawshark.html                 \
+       ../../doc/text2pcap.html                \
+       ../../doc/rawshark.html                 \
+       ../../doc/tshark.html                   \
+       ../../doc/wireshark-filter.html         \
+       ../../doc/wireshark.html                \
+       ../../$(INSTALL_DIR)/COPYING.txt        \
+       ../../$(INSTALL_DIR)/NEWS.txt           \
+       ../../$(INSTALL_DIR)/README.txt         \
+       ../../$(INSTALL_DIR)/README.windows.txt
+
 GPL=../../COPYING
-HELP=../../help/capture_filters.txt \
-       ../../help/capturing.txt \
-       ../../help/display_filters.txt \
-       ../../help/faq.txt \
-       ../../help/getting_started.txt \
-       ../../help/overview.txt \
-       ../../help/toc
+HELP=../../$(INSTALL_DIR)/help/capture_filters.txt \
+       ../../$(INSTALL_DIR)/help/capturing.txt \
+       ../../$(INSTALL_DIR)/help/display_filters.txt \
+       ../../$(INSTALL_DIR)/help/faq.txt \
+       ../../$(INSTALL_DIR)/help/getting_started.txt \
+       ../../$(INSTALL_DIR)/help/overview.txt \
+       ../../$(INSTALL_DIR)/help/toc
 
 PLUGINS= \
-       ../../plugins/agentx/agentx.dll \
-       ../../plugins/artnet/artnet.dll \
        ../../plugins/asn1/asn1.dll \
-       ../../plugins/ciscosm/ciscosm.dll \
        ../../plugins/docsis/docsis.dll \
-       ../../plugins/enttec/enttec.dll \
        ../../plugins/ethercat/ethercat.dll \
        ../../plugins/giop/coseventcomm.dll \
        ../../plugins/giop/cosnaming.dll \
        ../../plugins/giop/parlay.dll \
        ../../plugins/giop/tango.dll \
        ../../plugins/gryphon/gryphon.dll \
-       ../../plugins/infiniband/infiniband.dll \
+       ../../plugins/interlink/interlink.dll \
        ../../plugins/irda/irda.dll \
-       ../../plugins/lwres/lwres.dll \
+       ../../plugins/llrp/llrp.dll \
        ../../plugins/m2m/m2m.dll \
        ../../plugins/mate/mate.dll \
-       ../../plugins/opsi/opsi.dll \
-       ../../plugins/pcli/pcli.dll \
-       ../../plugins/rlm/rlm.dll \
-       ../../plugins/rtnet/rtnet.dll \
-       ../../plugins/rudp/rudp.dll \
-       ../../plugins/sbus/sbus.dll \
+       ../../plugins/opcua/opcua.dll \
+       ../../plugins/profinet/profinet.dll \
+       ../../plugins/sercosiii/sercosiii.dll \
        ../../plugins/stats_tree/stats_tree.dll \
        ../../plugins/unistim/unistim.dll \
-       ../../plugins/v5ua/v5ua.dll \
        ../../plugins/wimax/wimax.dll \
-       ../../plugins/wimaxasncp/wimaxasncp.dll
+       ../../plugins/wimaxasncp/wimaxasncp.dll \
+       $(CUSTOM_PLUGINS)
 
 NSI=wireshark.nsi \
        GetWindowsVersion.nsh \
@@ -81,19 +75,25 @@ NSI=wireshark.nsi \
 
 DELIVERABLES=$(EXE) $(DLL) $(DOC) $(DOC_dos) $(GPL) $(HELP) $(PLUGINS)
 
-all: NEWS.txt wireshark-setup-$(VERSION).exe
-
-NEWS.txt: ../../NEWS
-       $(UNIX2DOS) < ../../NEWS > NEWS.txt
+!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_LIBS)\user-guide\user-guide.chm xcopy $(WIRESHARK_LIBS)\user-guide\user-guide.chm . /Y /D
 
-wireshark-setup-$(VERSION).exe : user-guide.chm $(NSI) $(DELIVERABLES) Makefile.nmake
+wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe : user-guide.chm $(NSI) $(DELIVERABLES) Makefile.nmake
        $(MAKENSIS) \
+       /DWIRESHARK_TARGET_PLATFORM=$(WIRESHARK_TARGET_PLATFORM) \
        /DMSVC_VARIANT=$(MSVC_VARIANT) \
+       /DWIRESHARK_LIBS=$(WIRESHARK_LIBS) \
 !IFDEF MSVCR_DLL
        /DMSVCR_DLL="$(MSVCR_DLL)" \
 !ENDIF
@@ -109,36 +109,48 @@ wireshark-setup-$(VERSION).exe : user-guide.chm $(NSI) $(DELIVERABLES) Makefile.
        /DPANGO_LIB_DIR=$(PANGO_LIB_DIR) \
 !IFDEF NEED_LIBPNG_DLL
        /DNEED_LIBPNG_DLL=$(NEED_LIBPNG_DLL) \
+       /DPNG_DLL=$(PNG_DLL) \
 !ENDIF
 !IFDEF NEED_LIBJPEG_DLL
        /DNEED_LIBJPEG_DLL=$(NEED_LIBJPEG_DLL) \
+       /DJPEG_DLL=$(JPEG_DLL) \
 !ENDIF
 !IFDEF NEED_LIBTIFF_DLL
        /DNEED_LIBTIFF_DLL=$(NEED_LIBTIFF_DLL) \
+       /DTIFF_DLL=$(TIFF_DLL) \
+!ENDIF
+!IFDEF NEED_FREETYPE_DLL
+       /DNEED_FREETYPE_DLL=$(NEED_FREETYPE_DLL) \
+       /DFREETYPE_DLL=$(FREETYPE_DLL) \
+!ENDIF
+!IFDEF NEED_FONTCONFIG_DLL
+       /DNEED_FONTCONFIG_DLL=$(NEED_FONTCONFIG_DLL) \
+       /DFONTCONFIG_DLL=$(FONTCONFIG_DLL) \
+!ENDIF
+!IFDEF NEED_EXPAT_DLL
+       /DNEED_EXPAT_DLL=$(NEED_EXPAT_DLL) \
+       /DEXPAT_DLL=$(EXPAT_DLL) \
 !ENDIF
 !IFDEF NEED_CAIRO_DLL
        /DNEED_CAIRO_DLL=$(NEED_CAIRO_DLL) \
 !ENDIF
 !ENDIF
-!IFDEF GTK_WIMP_DIR
-       /DGTK_WIMP_DIR=$(GTK_WIMP_DIR) \
        /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) \
-!ENDIF
-       /DGLIB_DIR=$(GLIB_DIR) \
-!IFDEF ICONV_DIR
-       /DICONV_DIR=$(ICONV_DIR) \
-!ENDIF
-       /DGETTEXT_DIR=$(GETTEXT_DIR) \
+       /DINTL_DLL=$(INTL_DLL) \
        /DVERSION=$(VERSION) \
        /DWTAP_VERSION=$(WTAP_VERSION) \
+!IF "$(C_ARES_DIR)" != ""
+       /DC_ARES_DIR=$(C_ARES_DIR) \
+!ENDIF
 !IF "$(ADNS_DIR)" != ""
        /DADNS_DIR=$(ADNS_DIR) \
 !ENDIF
 !IF "$(KFW_DIR)" != ""
        /DKFW_DIR=$(KFW_DIR) \
+       /DKFW_PATH=$(KFW_PATH) \
 !ENDIF
 !IF "$(GNUTLS_DIR)" != ""
        /DGNUTLS_DIR=$(GNUTLS_DIR) \
@@ -161,14 +173,12 @@ wireshark-setup-$(VERSION).exe : user-guide.chm $(NSI) $(DELIVERABLES) Makefile.
        wireshark.nsi
 
 clean:
-       rm -f wireshark-setup-$(VERSION).exe
-       rm -f wireshark-gtk2-setup-$(VERSION).exe
+       rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe
        rm -f NEWS.txt
        rm -f user-guide.chm
 
 distclean: clean
-       rm -f wireshark-setup-*.exe
-       rm -f wireshark-gtk2-setup-*.exe
+       rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-*.exe
 
 maintainer-clean: distclean
 
@@ -181,3 +191,7 @@ $(EXE) $(DLL):
        cd ../..
        $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
        cd packaging/nsis
+
+####
+_FORCE_:  ## Assumption: no file named _FORCE_ exists in the current directory
+