Serious source code cleanup.
[obnox/wireshark/wip.git] / config.nmake
index 73bb3094f58c2be234b5021e113257634a1de004..32be1d1e3037196d50eec36301ad5ba6014b6eb2 100644 (file)
@@ -11,7 +11,7 @@
 # It's highly recommended to leave MAJOR/MINOR/MICRO unchanged
 VERSION_MAJOR=0
 VERSION_MINOR=99
-VERSION_MICRO=4
+VERSION_MICRO=5
 # It's recommended to change VERSION_EXTRA for your own custom builds
 # e.g. "-SVN-12345"
 VERSION_EXTRA=
@@ -19,17 +19,57 @@ VERSION_EXTRA=
 # The version of the wiretap library (recommended: leave unchanged)
 WTAP_VERSION_MAJOR=0
 WTAP_VERSION_MINOR=3
+WTAP_VERSION_MICRO=1
 
 
 
-##### Libraries #####
+##### Microsoft Visual C / Studio Variant #####
+# for the different Studios, see: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio
+# only one of the following MSVC_VARIANT settings should be used
+
+# "Microsoft Visual Studio 6.0" - THE ONLY RECOMMENDED
+# Visual C++ 6.0, _MSC_VER 1200, msvcrt.dll (version 6)
+MSVC_VARIANT=MSVC6
+
+# "Microsoft Visual Studio .NET (2002)" - NOT YET WORKING
+# Visual C++ 7.0, _MSC_VER 1300, msvcr70.dll
+#MSVC_VARIANT=MSVC2002
+
+# "Microsoft Visual Studio .NET 2003" - NOT YET WORKING
+# Visual C++ 7.1, _MSC_VER 1310, msvcr71.dll
+#MSVC_VARIANT=MSVC2003
+
+# "Microsoft Visual C++ Toolkit 2003" - NOT YET WORKING
+# needs additional Platform SDK installation
+# Visual C++ 7.1, _MSC_VER 1310, msvcr71.dll
+#MSVC_VARIANT=VC2003TOOLKIT
+
+# "Microsoft Visual Studio 2005" - NOT YET WORKING
+# "Microsoft Visual C++ 2005 Express Edition" - EXPERIMENTAL
+# The "Express Edition" needs additional Platform SDK installation
+# Visual C++ 8.0, _MSC_VER 1400, msvcr80.dll
+#MSVC_VARIANT=MSVC2005
+
+
+
+##### Directories #####
 
 # 
-# Base directory, where your libraries reside, which needs to be 
-# compiling the sources. This setting is used only inside this file.
+# Base directory, where your libraries reside, which are needed to 
+# compile the sources. This setting is used only inside this file.
 #
 WIRESHARK_LIBS=C:\wireshark-win32-libs
 
+# 
+# Base directory, where your programs reside. 
+# This setting is used only inside this file.
+#
+PROGRAM_FILES=C:/Program Files
+
+
+
+##### Libraries #####
+
 #
 # Mandatory: GLib settings
 #
@@ -60,16 +100,15 @@ GTK2_DIR=$(WIRESHARK_LIBS)\gtk2
 # (MAJOR + MINOR Version number but without MICRO version number) 
 # These macros are used by the nsis installer script and by the setup target.
 #
-#GTK2_INST_VERSION=2.2
-#PANGO_INST_VERSION=1.2
-#GTK2_INST_VERSION=2.4
-#PANGO_INST_VERSION=1.4
 # GTK 2.6 is the mainline since Ethereal 0.10.14
-GTK2_INST_VERSION=2.6
-PANGO_INST_VERSION=1.8
-# Support for GTK 2.8 is currently experimental ...
+#GTK2_INST_VERSION=2.6
+#PANGO_INST_VERSION=1.8
+# Support for GTK 2.8 
 #GTK2_INST_VERSION=2.8
-#PANGO_INST_VERSION=1.12
+#PANGO_INST_VERSION=1.14
+# Support for GTK 2.10 is currently experimental ...
+GTK2_INST_VERSION=2.10
+PANGO_INST_VERSION=1.14
 
 #
 # If you have GTK-Wimp, set this to the pathname of the directory in
@@ -82,7 +121,6 @@ PANGO_INST_VERSION=1.8
 # (in this case these GTK-Wimp related settings will have no effect)
 #
 GTK_WIMP_DIR=$(WIRESHARK_LIBS)\gtk-wimp\gtk-wimp-0.7.0-bin
-GTK_THEME_DIR=$(GTK_WIMP_DIR)\Theme\gtk-2.0
 
 #
 # Optional: WinPcap developer's pack to capture network traffic.
@@ -114,7 +152,11 @@ PCAP_DIR=$(WIRESHARK_LIBS)\WPdpack
 # If you don't have Zlib, comment this line out, so that ZLIB_DIR isn't
 # defined.
 #
+# XXX - ZLIB must be recompiled on MSVC 2005 because of C runtime lib (msvcr)
+# problems, simply disable it for now on MSVC 2005 (and other none 6 versions)
+!IF "$(MSVC_VARIANT)" == "MSVC6"
 ZLIB_DIR=$(WIRESHARK_LIBS)\zlib123-dll
+!ENDIF
 
 #
 # Optional: The Net-SNMP library enables SNMP OID to name resolvings
@@ -161,7 +203,10 @@ PCRE_DIR=$(WIRESHARK_LIBS)\pcre-6.4
 # If you don't have GNUTLS, comment this line out, so that GNUTLS_DIR
 # isn't defined.
 #
-GNUTLS_DIR=$(WIRESHARK_LIBS)\gnutls-1.5.1-1
+# XXX - GNUTLS headers doesn't compile on MSVC 2005
+!IF "$(MSVC_VARIANT)" == "MSVC6"
+GNUTLS_DIR=$(WIRESHARK_LIBS)\gnutls-1.6.0-1
+!ENDIF
 
 #
 # Optional: the KFW library enables kerberos/sasl/dcerpc decryption.
@@ -205,14 +250,14 @@ LUA_DIR=$(WIRESHARK_LIBS)\lua5.1
 # If you don't have PORTAUDIO, comment this line out, so that 
 # PORTAUDIO_DIR isn't defined.
 #
-PORTAUDIO_DIR=$(WIRESHARK_LIBS)\portaudio_v18_1
-#PORTAUDIO_DIR=$(WIRESHARK_LIBS)\portaudio_v19
+#PORTAUDIO_DIR=$(WIRESHARK_LIBS)\portaudio_v18_1
+PORTAUDIO_DIR=$(WIRESHARK_LIBS)\portaudio_v19
 
 #
 # Version number of PortAudio
 # 
-PORTAUDIO_VERSION=18
-#PORTAUDIO_VERSION=19
+#PORTAUDIO_VERSION=18
+PORTAUDIO_VERSION=19
 
 #
 # Mandatory for GTK >= 2: Iconv
@@ -241,7 +286,7 @@ GETTEXT_DIR=$(WIRESHARK_LIBS)\gettext-0.14.5
 # If you don't have the AirPcap developer's pack, comment this line out, 
 # so that AIRPCAP_DIR isn't defined.
 #
-AIRPCAP_DIR=$(WIRESHARK_LIBS)\AirPcap
+#AIRPCAP_DIR=$(WIRESHARK_LIBS)\AirPcap
 
 
 
@@ -250,8 +295,23 @@ AIRPCAP_DIR=$(WIRESHARK_LIBS)\AirPcap
 # Set the following mandatory commands to find the tools.
 # The easiest way is to use the corresponding packages from cygwin.
 
+# Set up the path to the cygwin binaries
+CYGWIN_PATH=c:\cygwin\bin
+
 # command for a shell (cygwin's bash package recommended)
-SH=bash
+SH_PROG=bash
+
+# bash versions after 3.1.6 need the 'igncr' shell option to be able to
+#  process scripts in windows 'native format' (dos crlf format). 
+# The following !IF results in the option being used only if it is available
+#  since using it on bash version 3.1.6 (or earlier) is not required and
+#  will cause an error message.
+!if "$(SH_PROG)"=="bash" && [$(CYGWIN_PATH)\bash -c "set -o igncr" 2>nul: ] == 0
+SH_FLAGS=-o igncr
+!endif
+
+SH=$(SH_PROG) $(SH_FLAGS)
+
 
 # command for perl (cygwin's perl package recommended)
 PERL=perl
@@ -261,13 +321,13 @@ PERL=perl
 POD2MAN=$(SH) pod2man
 POD2HTML=$(SH) pod2html
 
-# command for python (cygwin's python package recommended)
-PYTHON=env python
-
-# command for native windows python (not recommended)
-#PYTHON="C:/python24/python.exe"
+# command for native windows python (recommended)
+PYTHON="C:/python24/python.exe"
 # add native python to the path (not needed if cygwin's python is used)
-#PATH=c:\python24;$(PATH)
+PATH=c:\python24;$(PATH)
+
+# command for python (cygwin's python package, not recommended)
+#PYTHON=env python
 
 # command for lex/flexx (cygwin's flex recommended)
 LEX=flex
@@ -283,7 +343,7 @@ YACC=bison
 # If you don't have NSIS, comment this line out, so that MAKENSIS
 # isn't defined.
 #
-MAKENSIS="C:/program files/nsis/makensis.exe"
+MAKENSIS="$(PROGRAM_FILES)\nsis\makensis.exe"
 
 #
 # Optional: To build the developers documentation with doxygen and dot.
@@ -298,7 +358,7 @@ MAKENSIS="C:/program files/nsis/makensis.exe"
 # If you don't want the developers documentation (or don't have the tools),
 # comment this line out, so that DOXYGEN isn't defined.
 #
-#DOXYGEN="C:/program files/doxygen/bin/doxygen.exe"
+#DOXYGEN="$(PROGRAM_FILES)/doxygen/bin/doxygen.exe"
 
 #
 # Optional: To build compressed html help format .chm and use it as online help format.
@@ -312,27 +372,43 @@ MAKENSIS="C:/program files/nsis/makensis.exe"
 # If you don't want the online help (or don't have the tools),
 # comment this line out, so that HHC_DIR isn't defined.
 #
-#HHC_DIR="C:/Program Files/HTML Help Workshop/"
+#HHC_DIR="$(PROGRAM_FILES)/HTML Help Workshop/"
 
 
 
 ##### Flags, PATHs and Miscellaneous #####
 
-# Compiler flags
+# Compiler flags:
 # /W3  warning level 3 (0 less - 4 most, 1 default)
 # /Zi  create .pdb file for debugging
+# /D_CRT_SECURE_NO_DEPRECATE don't warn for "insecure" calls, see MSDN "Security Enhancements in the CRT"
+# /D_CRT_NONSTDC_NO_DEPRECATE don't warn for "Deprecated CRT Functions" as MSDN calls this
+#
+!IF "$(MSVC_VARIANT)" == "MSVC6"
 LOCAL_CFLAGS=/Zi /W3
+!ELSEIF "$(MSVC_VARIANT)" == "MSVC2005"
+LOCAL_CFLAGS=/Zi /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
+!ELSE
+!ERROR MSVC_VARIANT unknown
+!ENDIF
 
-# Linker flags
+# Linker flags:
 # /DEBUG  generate debug info
 # /PROFILE generate map file(s) for profiling
-LOCAL_LDFLAGS=/DEBUG
+# /DEFAULTLIB:xxx use xxx as the standard C library
+# /NODEFAULTLIB:xxx don't use xxx as the standard C library
+# 
+!IF "$(MSVC_VARIANT)" == "MSVC6"
+LOCAL_LDFLAGS=/DEBUG 
+!ELSEIF "$(MSVC_VARIANT)" == "MSVC2005"
+#LOCAL_LDFLAGS=/DEBUG /DEFAULTLIB:msvcrt /NODEFAULTLIB:libc /NODEFAULTLIB:libcmt
+LOCAL_LDFLAGS=/DEBUG /DEFAULTLIB:msvcrt /NODEFAULTLIB:libc /NODEFAULTLIB:libcmt
+!ELSE
+!ERROR MSVC_VARIANT unknown
+!ENDIF
 
-# Set PDB_FILE according to your VC++ version 
-PDB_FILE=vc*.pdb
+WS_PLUGIN_LDFLAGS=/DEBUG /NOLOGO /INCREMENTAL:no /MACHINE:I386 
 
-# Set up the path to the cygwin binaries
-CYGWIN_PATH=c:\cygwin\bin
 
 # 
 # Optional: Use the User's Guide as the online help system
@@ -399,8 +475,8 @@ LINK_PLUGINS_WITH_LIBWIRESHARK=USE
 VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_MICRO)$(VERSION_EXTRA)
 RC_VERSION=$(VERSION_MAJOR),$(VERSION_MINOR),$(VERSION_MICRO)
 
-WTAP_VERSION=$(WTAP_VERSION_MAJOR).$(WTAP_VERSION_MINOR)
-RC_WTAP_VERSION=$(WTAP_VERSION_MAJOR),$(WTAP_VERSION_MINOR)
+WTAP_VERSION=$(WTAP_VERSION_MAJOR).$(WTAP_VERSION_MINOR).$(WTAP_VERSION_MICRO)
+RC_WTAP_VERSION=$(WTAP_VERSION_MAJOR),$(WTAP_VERSION_MINOR),$(WTAP_VERSION_MICRO)
 
 
 GLIB_CFLAGS=/I$(GLIB_DIR)\include\glib-$(GLIB_VERSION) \
@@ -430,23 +506,36 @@ GTK2_LIBS=$(GTK2_DIR)\lib\gtk-win32-2.0.lib \
        $(GTK2_DIR)\lib\pango-1.0.lib \
        $(GLIB_LIBS)
 
+!IF "$(GTK2_INST_VERSION)" == "2.10"
+GTK2_LIB_DIR=2.10.0
+NEED_LIBPNG_DLL=USE
+NEED_CAIRO_DLL=USE
+GTK_WIMP_DIR=DUMMY_TO_USE_WIMP
+GTK_WIMP_DLLSRC_DIR=$(GTK2_DIR)\lib\gtk-2.0\2.10.0\engines
+GTK_WIMP_DLLDST_DIR=lib\gtk-2.0\2.10.0\engines
+GTK_WIMP_RCSRC_DIR=$(GTK2_DIR)\share\themes\MS-Windows\gtk-2.0
+GTK_WIMP_RCDST_DIR=etc\gtk-2.0
+!ELSEIF "$(GTK2_INST_VERSION)" == "2.8"
 # the lib dir of GTK2.6 didn't changed since 2.4.0
-!IF "$(GTK2_INST_VERSION)" == "2.8"
 GTK2_LIB_DIR=2.4.0
 NEED_LIBPNG_DLL=USE
 NEED_CAIRO_DLL=USE
-GTK_WIMP_DIR=$(GTK2_DIR)\lib\gtk-2.0\$(GTK2_LIB_DIR)\engines
-GTK_THEME_DIR=$(GTK2_DIR)\share\themes\MS-Windows\gtk-2.0
+GTK_WIMP_DIR=DUMMY_TO_USE_WIMP
+GTK_WIMP_DLLSRC_DIR=$(GTK2_DIR)\lib\gtk-2.0\2.4.0\engines
+GTK_WIMP_DLLDST_DIR=lib\gtk-2.0\2.4.0\engines
+GTK_WIMP_RCSRC_DIR=$(GTK2_DIR)\share\themes\MS-Windows\gtk-2.0
+GTK_WIMP_RCDST_DIR=etc\gtk-2.0
 !ELSEIF "$(GTK2_INST_VERSION)" == "2.6"
 GTK2_LIB_DIR=2.4.0
-!ELSEIF "$(GTK2_INST_VERSION)" == "2.4"
-GTK2_LIB_DIR=2.4.0
-!ELSEIF "$(GTK2_INST_VERSION)" == "2.2"
-GTK2_LIB_DIR=2.2.0
+GTK_WIMP_DLLSRC_DIR=$(GTK_WIMP_DIR)
+GTK_WIMP_DLLDST_DIR=lib\gtk-2.0\2.4.0\engines
+GTK_WIMP_RCSRC_DIR=$(GTK_WIMP_DIR)\Theme\gtk-2.0
+GTK_WIMP_RCDST_DIR=share\themes\Default\gtk-2.0
+GTK_THEME_DIR=$(GTK_WIMP_DIR)\Theme\gtk-2.0
 !ENDIF
 
 # the lib dir of PANGO changed in 1.12
-!IF "$(PANGO_INST_VERSION)" == "1.12"
+!IF "$(PANGO_INST_VERSION)" == "1.14"
 PANGO_LIB_DIR=1.5.0
 !ELSEIF "$(PANGO_INST_VERSION)" == "1.10"
 PANGO_LIB_DIR=1.4.0
@@ -460,8 +549,10 @@ PANGO_LIB_DIR=1.2.0
 
 !IFDEF AIRPCAP_DIR
 AIRPCAP_CONFIG=^#define HAVE_AIRPCAP 1
+AIRPDCAP_CONFIG=^#define HAVE_AIRPDCAP 1
 !ELSE
 AIRPCAP_CONFIG=
+AIRPDCAP_CONFIG=
 !ENDIF
 
 !IFDEF PCAP_DIR
@@ -511,12 +602,10 @@ NET_SNMP_CFLAGS=/I$(NET_SNMP_DIR)\include /I$(NET_SNMP_DIR)\win32
 NET_SNMP_LIBS=$(NET_SNMP_DIR)\win32\lib\release\netsnmp.lib
 # Nmake uses carets to escape special characters
 NET_SNMP_CONFIG=^#define HAVE_NET_SNMP 1
-SOME_SNMP_CONFIG=^#define HAVE_SOME_SNMP 1
 !else
 NET_SNMP_CFLAGS=
 NET_SNMP_LIBS=
 NET_SNMP_CONFIG=
-SOME_SNMP_CONFIG=
 !ENDIF
 
 !IFDEF ADNS_DIR
@@ -573,7 +662,7 @@ GNUTLS_LIBS=\
        $(GNUTLS_DIR)\bin\libtasn1-3.lib        \
        $(GNUTLS_DIR)\bin\libgpg-error-0.lib    \
        $(GNUTLS_DIR)\bin\libgcrypt-11.lib      \
-       $(GNUTLS_DIR)\bin\libgnutls-14.lib
+       $(GNUTLS_DIR)\bin\libgnutls-13.lib
 # Nmake uses carets to escape special characters
 GNUTLS_CONFIG=^#define HAVE_LIBGNUTLS 1
 LIBGCRYPT_CONFIG=^#define HAVE_LIBGCRYPT 1