-# $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).
##### 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
# 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
# "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
# "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
#
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
#
# 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
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
# 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
# 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.
#
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
# 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.
# 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
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
# 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.
#
#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.
#
# 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.
##### 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
# 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" || \
"$(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" || \
#
# 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 #####
#
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"
!IFDEF FREETYPE_DLL
NEED_FREETYPE_DLL=USE
!ENDIF
+!IFDEF HARFBUZZ_DLL
+NEED_HARFBUZZ_DLL=USE
+!ENDIF
!IFDEF JASPER_DLL
NEED_JASPER_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
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
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