Reflect the move of filters.c to libui.
[metze/wireshark/wip.git] / config.nmake
index d0f55296c9ec71b3c0a9343c4e22fb2781b5b172..6c9641bc0d457c35819da54a93c90af55d071e3f 100644 (file)
@@ -1,5 +1,3 @@
-# $Id$
-
 # Some more information about the settings in this file can be found in
 # the file README.windows and the Developer's Guide (available online).
 
@@ -15,7 +13,8 @@ PROGRAM_NAME=Wireshark
 
 ##### Target platform #####
 
-# Pick up the value from the environment, VS2012 onwards sets this via vcvarsall.bat
+# Pick up the value from the environment, VS2012 onwards sets PLATFORM via
+#  vcvarsall.bat (it appears for X64 only).
 # For VS2010 and earlier you'll have to set the value yourself
 !IF "$(PLATFORM)" == "X64"
 WIRESHARK_TARGET_PLATFORM=win64
@@ -35,8 +34,8 @@ GIT_REVISION=0
 # The current Wireshark version. Recommended: Leave unchanged.
 # Updated by make-version.pl
 VERSION_MAJOR=1
-VERSION_MINOR=11
-VERSION_MICRO=3
+VERSION_MINOR=99
+VERSION_MICRO=0
 VERSION_BUILD=$(GIT_REVISION)
 
 # Local build information. Recommended: Unique string for your
@@ -139,20 +138,19 @@ MSVC_VARIANT=MSVC2013
 # "Microsoft Visual C++ 2012 Express Edition"
 # Visual C++ 11.0, _MSC_VER 1700, msvcr110.dll
 ## Notes:
-##    1. Sep 20,2012: *Beta*: Build with VC11 (2012) succeeds; Seems OK: Minimally tested;
-##        win32.mak is apparently not part of the MS 2012EE install;
-##        To build Windows Wireshark, win32.mak must be obtained*
+##    1.  win32.mak is apparently not part of the MS 2012EE install;
+##        To build Windows Wireshark, win32.mak must be obtained [*]
 ##        and copied to a dir specified in the Windows Environment
 ##        variable 'include' (or to a dir added to the list in 'include').
-##        *One possibility: download the Windows 7 Platform SDK and copy
+##        Note that the 'include' environment variable is initialized
+##         when vcvarsall.bat is called to set up the build environment.
+##        [*]One possibility: download the Windows 7 Platform SDK and copy
 ##         win32.mak from ...\Microsoft SDKs\Windows\v7.[something]\include
 ##         See: http://ask.wireshark.org/questions/14343/setting-development-project-under-visual-studio-2012
 ##    2. Dec 28,2012: "VS2012 Update 1" is required to use VS 2012 to build an .exe which
 ##        will run on Windows XP (as well as on later versions of Windows).
 ##        ToDo: It appears that some special setup is required to to do this.
 ##          https://blogs.msdn.com/b/vcblog/archive/2012/10/08/10357555.aspx
-##    3. Feb 07,2013: [WMeier] I've noted no problems to date with Wireshark built with VS2012
-##        based upon a fair amount of use while doing Wireshark testing and debugging.
 ##
 #MSVC_VARIANT=MSVC2012EE
 
@@ -166,6 +164,16 @@ MSVC_VARIANT=MSVC2013
 
 # "Microsoft Visual Studio 2013 Express Edition"
 # Visual C++ 12.0, _MSC_VER 1800, msvcr120.dll
+##    Notes:
+##    1.  win32.mak is apparently not part of the MS 2013EE install;
+##        To build Windows Wireshark, win32.mak must be obtained [*]
+##        and copied to a dir specified in the Windows Environment
+##        variable 'include' (or to a dir added to the list in 'include').
+##        Note that the 'include' environment variable is initialized
+##         when vcvarsall.bat is called to set up the build environment.
+##        [*]One possibility: download the Windows 7 Platform SDK and copy
+##         win32.mak from ...\Microsoft SDKs\Windows\v7.[something]\include
+##         See: http://ask.wireshark.org/questions/14343/setting-development-project-under-visual-studio-2012
 #MSVC_VARIANT=MSVC2013EE
 
 # The default if we haven't set a system environment variable or
@@ -186,30 +194,6 @@ MSVC_VARIANT=MSVC2010EE
 #
 NASM=$(WIRESHARK_LIB_DIR)\nasm-2.09.08\nasm.exe
 
-#
-# Optional: the Python library enables scripting support.
-#
-# If you don't have the Python library, comment this line out, so that
-# PYTHON_EMBED isn't defined.
-#
-# NOTE: The Python library must have been compiled with the same
-# compiler (MSVC_VARIANT) as Wireshark. Known python.org Python
-# CRT versions:
-#
-# Python version    CRT (32-bit)    CRT (64-bit)
-# 2.4.4             7.1             ?
-# 2.6.1             9.0             ?
-# 2.6.2             ?               9.0
-# 2.7.1             9.0             9.0
-# 3.2.2             9.0             9.0
-#
-# If you versions of Python and Visual C++ use different CRTs
-# comment this out.
-#
-# XXX The DLL path in epan/wspython/wspy_libws.py likely needs to
-# be fixed before this is enabled by default.
-#PYTHON_EMBED=1
-
 #
 # Optional: the Python interpreter is used as part of the buildsystem
 #
@@ -274,22 +258,24 @@ GLIB_VERSION=2.0
 # If you want building with GTK+, set GTK_DIR to the pathname of the
 # directory in which the "include" and "lib" directories reside.
 #
-# Set the name to gtk2 if you want to use gtk2
-GTK_NAME=gtk3
+# Set the name to gtk3 if you want to use gtk3
+GTK_NAME=gtk2
 GTK_DIR=$(WIRESHARK_LIB_DIR)\$(GTK_NAME)
 
 
 # These macros are used by the nsis installer script and by the install target.
 #EXPAT_DLL=libexpat-1.dll
-FFI_DLL=libffi-5.dll
+FFI_DLL=libffi-6.dll
 FONTCONFIG_DLL=libfontconfig-1.dll
 FREETYPE_DLL=libfreetype-6.dll
 INTL_DLL=libintl-8.dll
+HARFBUZZ_DLL=libharfbuzz-0.dll
 JASPER_DLL=libjasper-1.dll
 JPEG_DLL=libjpeg-8.dll
 LZMA_DLL=liblzma-5.dll
 PIXMAN_DLL=libpixman-1-0.dll
 PNG_DLL=libpng15-15.dll
+SJLJ_DLL=libgcc_s_sjlj-1.dll
 TIFF_DLL=libtiff-5.dll
 XML_DLL=libxml2-2.dll
 
@@ -298,7 +284,7 @@ XML_DLL=libxml2-2.dll
 GDK_DLL=libgdk-win32-2.0-0.dll
 GTK_DLL=libgtk-win32-2.0-0.dll
 #GTK_PKG=2.24.10-2.7
-GTK_PKG=2.24.14-1.1
+GTK_PKG=2.24.23-1.1
 PKG_SUFIX=ws
 !ELSE
 GDK_DLL=libgdk-3-0.dll
@@ -339,6 +325,13 @@ QT5_BASE_DIR=C:\Qt\Qt-5.1.1-MSVC2010-$(WIRESHARK_TARGET_PLATFORM)-ws
 # Digia official
 !ELSE IF EXIST(C:\Qt\Qt5.1.1\5.1.1\msvc2010)
 QT5_BASE_DIR=C:\Qt\Qt5.1.1\5.1.1\msvc2010
+# Qt 5.2.1 web installer default paths
+!ELSE IF EXIST(C:\Qt\5.2.1\msvc2010)
+QT5_BASE_DIR=C:\Qt\5.2.1\msvc2010
+!ELSE IF EXIST(C:\Qt\5.2.1\msvc2012)
+QT5_BASE_DIR=C:\Qt\5.2.1\msvc2012
+!ELSE IF EXIST(C:\Qt\5.2.1\msvc2012_64)
+QT5_BASE_DIR=C:\Qt\5.2.1\msvc2012_64
 # Digia official, installed in $(WIRESHARK_LIB_DIR)
 !ELSE IF EXIST($(WIRESHARK_LIB_DIR)\Qt5.1.1\5.1.1\msvc2010)
 QT5_BASE_DIR=$(WIRESHARK_LIB_DIR)\Qt5.1.1\5.1.1\msvc2010
@@ -416,7 +409,9 @@ C_ARES_PKG=1.9.1-1
 # isn't defined.
 #
 # Platform SDK conflicts with openssl.h header
-GNUTLS_PKG=2.12.18-1.2
+GNUTLS_PKG=3.1.22-2.3
+GPGERROR_DLL=libgpg-error-0.dll
+GCC_DLL=libgcc_s_sjlj-1.dll
 
 #
 # Optional: the KFW library enables kerberos/sasl/dcerpc decryption.
@@ -429,18 +424,6 @@ GNUTLS_PKG=2.12.18-1.2
 #
 KFW_DIR=$(WIRESHARK_LIB_DIR)\kfw-3-2-2-i386-ws-vc6
 
-#
-# Optional: the Nettle library enables ??? decryption.
-#
-# If you have the Nettle encryption library, set this to the
-# directory in which the nettle package is stored.
-#
-# If you don't have Nettle, comment this line out, so that NETTLE_DIR
-# isn't defined.
-#
-# NETTLE_DIR=$(WIRESHARK_LIB_DIR)\nettle-1.10
-
-#
 # Optional: the LUA library enables scripting support.
 #
 # If you have the LUA library, set this to the directory in which
@@ -449,8 +432,12 @@ KFW_DIR=$(WIRESHARK_LIB_DIR)\kfw-3-2-2-i386-ws-vc6
 # If you don't have LUA, comment this line out, so that LUA_DIR
 # isn't defined.
 #
-LUA_DIST=-5.2.1_Win32_dll10
-LUA_DIR=$(WIRESHARK_LIB_DIR)\lua5.2.1
+!IF "$(MSVC_VARIANT)" == "MSVC2012" ||  "$(MSVC_VARIANT)" == "MSVC2012EE"
+LUA_DIST=-5.2.3_Win32_dll11
+!ELSE
+LUA_DIST=-5.2.3_Win32_dll10
+!ENDIF
+LUA_DIR=$(WIRESHARK_LIB_DIR)\lua5.2.3
 
 #
 # Optional: the PORTAUDIO library enables audio output for RTP streams.
@@ -527,15 +514,17 @@ GTK_DIR=$(WIRESHARK_LIB_DIR)\$(GTK_NAME)
 
 # These macros are used by the nsis installer script and by the install target.
 #EXPAT_DLL=libexpat-1.dll
-FFI_DLL=libffi-5.dll
+FFI_DLL=libffi-6.dll
 FONTCONFIG_DLL=libfontconfig-1.dll
 FREETYPE_DLL=libfreetype-6.dll
 INTL_DLL=libintl-8.dll
+HARFBUZZ_DLL=libharfbuzz-0.dll
 JASPER_DLL=libjasper-1.dll
 JPEG_DLL=libjpeg-8.dll
 LZMA_DLL=liblzma-5.dll
 PIXMAN_DLL=libpixman-1-0.dll
 PNG_DLL=libpng15-15.dll
+SEH_DLL=libgcc_s_seh-1.dll
 TIFF_DLL=libtiff-5.dll
 XML_DLL=libxml2-2.dll
 
@@ -544,7 +533,7 @@ XML_DLL=libxml2-2.dll
 GDK_DLL=libgdk-win32-2.0-0.dll
 GTK_DLL=libgtk-win32-2.0-0.dll
 #GTK_PKG=2.24.10-2.7
-GTK_PKG=2.24.14-1.1
+GTK_PKG=2.24.23-1.1
 PKG_SUFIX=ws
 !ELSE
 GDK_DLL=libgdk-3-0.dll
@@ -663,7 +652,9 @@ C_ARES_PKG=1.9.1-1
 # isn't defined.
 #
 # Platform SDK conflicts with openssl.h header
-GNUTLS_PKG=2.12.18-1.2-1
+GNUTLS_PKG=3.1.22-2.3
+GPGERROR_DLL=libgpg-error6-0.dll
+GCC_DLL=libgcc_s_seh-1.dll
 
 #
 # Optional: the KFW library enables kerberos/sasl/dcerpc decryption.
@@ -676,17 +667,6 @@ GNUTLS_PKG=2.12.18-1.2-1
 #
 #KFW_DIR=$(WIRESHARK_LIB_DIR)\kfw-3.2.2-ws1
 
-#
-# Optional: the Nettle library enables ??? decryption.
-#
-# If you have the Nettle encryption library, set this to the
-# directory in which the nettle package is stored.
-#
-# If you don't have Nettle, comment this line out, so that NETTLE_DIR
-# isn't defined.
-#
-# NETTLE_DIR=$(WIRESHARK_LIB_DIR)\nettle-1.10
-
 #
 # Optional: the LUA library enables scripting support.
 #
@@ -696,8 +676,12 @@ GNUTLS_PKG=2.12.18-1.2-1
 # If you don't have LUA, comment this line out, so that LUA_DIR
 # isn't defined.
 #
-LUA_DIST=-5.2.1_Win64_dll10
-LUA_DIR=$(WIRESHARK_LIB_DIR)\lua5.2.1
+!IF "$(MSVC_VARIANT)" == "MSVC2012" ||  "$(MSVC_VARIANT)" == "MSVC2012EE"
+LUA_DIST=-5.2.3_Win64_dll11
+!ELSE
+LUA_DIST=-5.2.3_Win64_dll10
+!ENDIF
+LUA_DIR=$(WIRESHARK_LIB_DIR)\lua5.2.3
 
 #
 # Optional: the PORTAUDIO library enables audio output for RTP streams.
@@ -895,11 +879,6 @@ UPX=$(WIRESHARK_LIB_DIR)\upx303w\upx.exe
 
 ##### Flags, PATHs and Miscellaneous #####
 
-# Santity check: Python embedding requires a valid PYTHON_DIR
-!IF DEFINED(PYTHON_EMBED) && !DEFINED(PYTHON_DIR)
-!ERROR PYTHON_EMBED requires that PYTHON_DIR is defined
-!ENDIF
-
 # "convert" the MSVC variant into the required MSC compiler version
 !IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
 MSC_VER_REQUIRED=1400
@@ -967,6 +946,17 @@ APPVER=5.02
 #                                   This definition prevents the complaint about the redefinition of inline by WinPCap
 #                                   in pcap-stdinc.h when compiling CPP files, e.g. the QT UI
 #
+# -O2                               http://msdn.microsoft.com/en-us/library/8f8h5cxt.aspx
+#                                   Specifying the /O2 compiler option is the same as using the following options:
+#                                   /Ob (Inline Function Expansion), where the option parameter is 2 (/Ob2)
+#                                   /Og (Global Optimizations)
+#                                   /Oi (Generate Intrinsic Functions)
+#                                   /Ot (Favor Fast Code)
+#                                   /Oy (Frame-Pointer Omission)
+#                                   /Gs (Buffer Security Check)
+#                                   /GF (Eliminate Duplicate Strings)
+#                                   /Gy (Enable Function-Level Linking)
+
 ##Note: LOCAL_CFLAGS are flags used for *all* compilations
 ##      STANDARD_CFLAGS (see below) are flags used just for *Wireshark* compilations
 !IF "$(MSVC_VARIANT)" == "MSVC2005"   || \
@@ -980,7 +970,7 @@ APPVER=5.02
         "$(MSVC_VARIANT)" == "MSVC2012EE" || \
         "$(MSVC_VARIANT)" == "MSVC2013"   || \
         "$(MSVC_VARIANT)" == "MSVC2013EE"
-LOCAL_CFLAGS=/Zi /W3 /MD /DWIN32_LEAN_AND_MEAN /DMSC_VER_REQUIRED=$(MSC_VER_REQUIRED) \
+LOCAL_CFLAGS=/Zi /W3 /MD /O2 /DWIN32_LEAN_AND_MEAN /DMSC_VER_REQUIRED=$(MSC_VER_REQUIRED) \
             /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE -DPSAPI_VERSION=1
 
 !IF "$(MSVC_VARIANT)" == "MSVC2012"   || \
@@ -1099,8 +1089,11 @@ ENABLE_LIBWIRESHARK=USE
 #
 # install (debug) directory for Wireshark (relative to your source dir)
 INSTALL_DIR=wireshark-gtk2
+INSTALL_DIR_QT=wireshark-qt-release 
 
-
+#
+# Lacking a better way, define the Qt version used here
+QT_VERSION=5.2
 
 ##### C-Runtime Redistributable #####
 #
@@ -1361,27 +1354,35 @@ GTK_LIBS=$(GTK_DIR)\lib\gtk-win32-2.0.lib \
 
 GTK_LIB_DIR=2.10.0
 
-!IFDEF PNG_DLL
-NEED_PNG_DLL=USE
+!IFDEF HARFBUZZ_DLL
+NEED_HARFBUZZ_DLL=USE
 !ENDIF
 !IFDEF JPEG_DLL
 NEED_JPEG_DLL=USE
 !ENDIF
+!IFDEF PNG_DLL
+NEED_PNG_DLL=USE
+!ENDIF
+!IFDEF SEH_DLL
+NEED_SEH_DLL=USE
+!ENDIF
+!IFDEF SJLJ_DLL
+NEED_SJLJ_DLL=USE
+!ENDIF
 !IFDEF TIFF_DLL
 NEED_TIFF_DLL=USE
 !ENDIF
 NEED_CAIRO_DLL=USE
 # Pango >=1.24.5 Needs these:
-NEED_FREETYPE_DLL=USE
-NEED_FONTCONFIG_DLL=USE
 #NEED_EXPAT_DLL=USE
-NEED_XML_DLL=USE
-NEED_PIXMAN_DLL=USE
 NEED_FFI_DLL=USE
+NEED_FONTCONFIG_DLL=USE
+NEED_FREETYPE_DLL=USE
 NEED_JASPER_DLL=USE
 NEED_JPEG_DLL=USE
-NEED_TIFF_DLL=USE
 NEED_LZMA_DLL=USE
+NEED_PIXMAN_DLL=USE
+NEED_XML_DLL=USE
 
 !ELSEIF "$(GTK_INST_VERSION)" == "3.4" || "$(GTK_INST_VERSION)" == "3.6"
 
@@ -1431,6 +1432,9 @@ NEED_FONTCONFIG_DLL=USE
 !IFDEF FREETYPE_DLL
 NEED_FREETYPE_DLL=USE
 !ENDIF
+!IFDEF HARFBUZZ_DLL
+NEED_HARFBUZZ_DLL=USE
+!ENDIF
 !IFDEF JASPER_DLL
 NEED_JASPER_DLL=USE
 !ENDIF
@@ -1446,6 +1450,12 @@ NEED_PIXMAN_DLL=USE
 !IFDEF PNG_DLL
 NEED_PNG_DLL=USE
 !ENDIF
+!IFDEF SEH_DLL
+NEED_SEH_DLL=USE
+!ENDIF
+!IFDEF SJLJ_DLL
+NEED_SJLJ_DLL=USE
+!ENDIF
 !IFDEF TIFF_DLL
 NEED_TIFF_DLL=USE
 !ENDIF
@@ -1564,28 +1574,21 @@ KFW_LIBS=
 KFW_CONFIG=
 !ENDIF
 
-!IFDEF NETTLE_DIR
-NETTLE_CFLAGS=/I$(NETTLE_DIR)
-NETTLE_LIBS=$(NETTLE_DIR)\libnettle.lib
-# Nmake uses carets to escape special characters
-NETTLE_CONFIG=^#define HAVE_LIBNETTLE 1
-!else
-NETTLE_CFLAGS=
-NETTLE_LIBS=
-NETTLE_CONFIG=
-!ENDIF
-
 !IFDEF GNUTLS_PKG
 GNUTLS_DIR=$(WIRESHARK_LIB_DIR)\gnutls-$(GNUTLS_PKG)-$(WIRESHARK_TARGET_PLATFORM)ws
 GNUTLS_PATH=$(GNUTLS_DIR)
 # /DNOCRYPT avoids inclusion of Wincrypt.h, avoiding a X509_NAME define clash
 GNUTLS_CFLAGS=/I$(GNUTLS_DIR)\include /DNOCRYPT /DIMPORT_LIGNUTLSDLL
-GCRYPT_LIBS = $(GNUTLS_DIR)\bin\libgcrypt-11.lib
+GCRYPT_LIBS = $(GNUTLS_DIR)\bin\libgcrypt-20.lib
 GNUTLS_LIBS=\
-       $(GNUTLS_DIR)\bin\libtasn1-3.lib        \
+       $(GNUTLS_DIR)\bin\libtasn1-6.lib        \
+!IF "$(WIRESHARK_TARGET_PLATFORM)" == "win32"
        $(GNUTLS_DIR)\bin\libgpg-error-0.lib    \
+!ELSE
+       $(GNUTLS_DIR)\bin\libgpg-error6-0.lib   \
+!ENDIF
        $(GCRYPT_LIBS) \
-       $(GNUTLS_DIR)\bin\libgnutls-26.lib
+       $(GNUTLS_DIR)\bin\libgnutls-28.lib
 # Nmake uses carets to escape special characters
 GNUTLS_CONFIG=^#define HAVE_LIBGNUTLS 1
 LIBGCRYPT_CONFIG=^#define HAVE_LIBGCRYPT 1
@@ -1608,17 +1611,6 @@ LUA_LIBS=
 LUA_CONFIG=
 !ENDIF
 
-!IF DEFINED(PYTHON_EMBED)
-PYTHON_CFLAGS=/I$(PYTHON_DIR)\include
-PYTHON_LIBS=$(PYTHON_DIR)\libs\python$(PYTHON_VER).lib
-# Nmake uses carets to escape special characters
-PYTHON_CONFIG=^#define HAVE_PYTHON 1
-!else
-PYTHON_CFLAGS=
-PYTHON_LIBS=
-PYTHON_CONFIG=
-!ENDIF
-
 !IFDEF PORTAUDIO_DIR
 # Nmake uses carets to escape special characters
 PORTAUDIO_CONFIG=^#define HAVE_LIBPORTAUDIO 1