!ENDIF
# -------------
-LDFLAGS = /NOLOGO /INCREMENTAL:no $(LOCAL_LDFLAGS)
+LDFLAGS = /NOLOGO /INCREMENTAL:NO $(LOCAL_LDFLAGS)
# We use GENERATED_CFLAGS to get around flex's non-LLP64-compliant output
GENERATED_CFLAGS=\
tshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
$(GLIB_LIBS) \
+ $(GTHREAD_LIBS) \
wsutil\libwsutil.lib \
$(GNUTLS_LIBS) \
$(PYTHON_LIBS) \
image\rawshark.res image\libwsutil.res
-all: $(LIBS_CHECK) config.h tools image codecs $(C_ARES_DLL) $(ADNS_DLL) $(ZLIB_DLL) wsutil wiretap epan $(EXECUTABLES) $(RESOURCES) doc help install-all
+all: $(LIBS_CHECK) config.h ui\qt\config.pri tools image codecs $(C_ARES_DLL) $(ADNS_DLL) $(ZLIB_DLL) wsutil wiretap epan $(EXECUTABLES) wireshark.bsc $(RESOURCES) doc help install-all
!IFDEF MAKENSIS
packaging: all
rm -f wireshark.zip
zip -r -9 wireshark.zip $(INSTALL_DIR)/
-wireshark.bsc: *.sbr epan\*.sbr epan\dfilter\*.sbr epan\ftypes\*.sbr epan\wslua\*.sbr epan\dissectors\*.sbr gtk\*.sbr win32\*.sbr wiretap\*.sbr
- rm -f $@
+!IFDEF WIRESHARK_GENERATE_BSC_FILE
+# FIXME: Add epan\wspython\*.sbr when we support Python embedding
+# Note: Certain .sbr files which cause bscmake warning "too many references... ignoring ..."
+wireshark.bsc: \
+ *.sbr \
+ codecs\*.sbr \
+ epan\*.sbr \
+ epan\crypt\*.sbr \
+ epan\dfilter\*.sbr \
+ epan\dissectors\*.sbr \
+ epan\ftypes\*.sbr \
+ epan\wslua\*.sbr \
+ ui\*.sbr \
+ ui\gtk\*.sbr \
+ plugins\asn1\*.sbr \
+ plugins\docsis\*.sbr \
+ plugins\ethercat\*.sbr \
+ plugins\giop\*.sbr \
+ plugins\gryphon\*.sbr \
+ plugins\irda\*.sbr \
+ plugins\m2m\*.sbr \
+ plugins\mate\*.sbr \
+ plugins\opcua\*.sbr \
+ plugins\profinet\*.sbr \
+ lugins\stats_tree\*.sbr \
+ plugins\unistim\*.sbr \
+ plugins\wimax\*.sbr \
+ plugins\wimaxasncp\*.sbr \
+ wiretap\*.sbr \
+ wsutil\*.sbr
$(BSCMAKE) @<<
/o $@ $?
<<
- xcopy $@ $(INSTALL_DIR)\ /d
+!ELSE
+wireshark.bsc:
+!ENDIF
pdb_zip: all
cd $(INSTALL_DIR)
wiretap\wiretap-$(WTAP_VERSION).lib: image $(ZLIB_DLL) wiretap
-wireshark.exe : $(LIBS_CHECK) config.h $(wireshark_OBJECTS) codecs epan gtk win32 image\wireshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib codecs\codecs.lib gtk\libui.lib win32\libui_win32.lib plugins
+wireshark.exe : $(LIBS_CHECK) config.h $(wireshark_OBJECTS) codecs epan gtk ui win32 image\wireshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib codecs\codecs.lib ui\libui.lib ui\gtk\libgtkui.lib ui\win32\libgtkui_win32.lib plugins
@echo Linking $@
$(LINK) @<<
- /OUT:wireshark.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:windows $(wireshark_LIBS) $(GTK_LIBS) codecs\codecs.lib gtk\libui.lib win32\libui_win32.lib $(wireshark_OBJECTS) image\wireshark.res
+ /OUT:wireshark.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:windows $(wireshark_LIBS) $(GTK_LIBS) codecs\codecs.lib ui\gtk\libgtkui.lib ui\win32\libgtkui_win32.lib ui\libui.lib $(wireshark_OBJECTS) image\wireshark.res
<<
!IFDEF MANIFEST_INFO_REQUIRED
mt.exe -nologo -manifest "wireshark.exe.manifest" -outputresource:wireshark.exe;1
!ENDIF
-tshark.exe : $(LIBS_CHECK) config.h $(tshark_OBJECTS) epan image\tshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib plugins
+tshark.exe : $(LIBS_CHECK) config.h $(tshark_OBJECTS) epan cli ui image\tshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib plugins
@echo Linking $@
$(LINK) @<<
- /OUT:tshark.exe $(conflags) $(conlibsdll) $(LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:console $(tshark_LIBS) $(tshark_OBJECTS) image\tshark.res
+ /OUT:tshark.exe $(conflags) $(conlibsdll) $(LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:console $(tshark_LIBS) $(tshark_OBJECTS) ui\cli\libcliui.lib ui\libui.lib image\tshark.res
<<
!IFDEF MANIFEST_INFO_REQUIRED
mt.exe -nologo -manifest "tshark.exe.manifest" -outputresource:tshark.exe;1
!ENDIF
-rawshark.exe : $(LIBS_CHECK) config.h $(rawshark_OBJECTS) epan image\rawshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib plugins
+rawshark.exe : $(LIBS_CHECK) config.h $(rawshark_OBJECTS) epan ui image\rawshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib plugins
@echo Linking $@
$(LINK) @<<
- /OUT:rawshark.exe $(conflags) $(conlibsdll) $(LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:console $(rawshark_LIBS) $(rawshark_OBJECTS) image\rawshark.res
+ /OUT:rawshark.exe $(conflags) $(conlibsdll) $(LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:console $(rawshark_LIBS) $(rawshark_OBJECTS) ui\libui.lib image\rawshark.res
<<
!IFDEF MANIFEST_INFO_REQUIRED
mt.exe -nologo -manifest "rawshark.exe.manifest" -outputresource:rawshark.exe;1
mt.exe -nologo -manifest "text2pcap.exe.manifest" -outputresource:text2pcap.exe;1
!ENDIF
-dftest.exe : $(dftest_OBJECTS) epan
+dftest.exe : $(dftest_OBJECTS) epan ui
@echo Linking $@
$(LINK) @<<
- /OUT:dftest.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(dftest_LIBS) $(dftest_OBJECTS)
+ /OUT:dftest.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(dftest_LIBS) ui\libui.lib $(dftest_OBJECTS)
<<
!IFDEF MANIFEST_INFO_REQUIRED
mt.exe -nologo -manifest "dftest.exe.manifest" -outputresource:dftest.exe;1
-e "s/@PORTAUDIO_API_1@/$(PORTAUDIO_API_CONFIG)/" \
-e "s/@HAVE_SMI@/$(SMI_CONFIG)/" \
-e "s/@HAVE_GEOIP@/$(GEOIP_CONFIG)/" \
+ -e "s/@HAVE_GEOIP_V6@/$(GEOIP_V6_CONFIG)/" \
-e "s/@INET6@/$(INET6_CONFIG)/" \
-e "s/@HAVE_NTDDNDIS_H@/$(NTDDNDIS_CONFIG)/" \
-e "s/@PCAP_NG_DEFAULT@/$(PCAP_NG_DEFAULT)/" \
-e "s/@WANT_PACKET_EDITOR@/$(WANT_PACKET_EDITOR)/" \
< config.h.win32 > $@
+ui\qt\config.pri: config.nmake Makefile.nmake
+ @echo Creating <<ui\qt\config.pri
+# Automatically generated from Makefile.nmake. Edit there, not here.
+VERSION = $(VERSION)
+!IFDEF MANIFEST_INFO_REQUIRED
+CONFIG += wireshark_manifest_info_required
+!ENDIF
+WIRESHARK_LIB_DIR = $(WIRESHARK_LIB_DIR:\=/)
+GLIB_DIR = $(GTK_DIR:\=/)
+C_ARES_DIR = $(C_ARES_DIR:\=/)
+ZLIB_DIR = $(ZLIB_DIR:\=/)
+GNUTLS_DIR = $(GNUTLS_DIR:\=/)
+SMI_DIR = $(SMI_DIR:\=/)
+KFW_DIR = $(KFW_DIR:\=/)
+LUA_DIR = $(LUA_DIR:\=/)
+PORTAUDIO_DIR = $(PORTAUDIO_DIR:\=/)
+
+MSVC_VARIANT = $(MSVC_VARIANT)
+
+QMAKE_CFLAGS *= $(STANDARD_CFLAGS) $(PORTAUDIO_CFLAGS:\=/)
+QMAKE_CXXFLAGS *= $(STANDARD_CFLAGS) $(PORTAUDIO_CFLAGS:\=/)
+QMAKE_LFLAGS *= /LARGEADDRESSAWARE $(LDFLAGS)
+
+DEFINES += _NEED_VAR_IMPORT_
+
+<<KEEP
ps.c: tools\rdps.py print.ps
$(PYTHON) tools\rdps.py print.ps ps.c
#
# Build the version string
#
-!IF EXIST(".svn/entries")
+!IF EXIST(".svn/wc.db")
+SVNENTRIES = .svn/wc.db
+!ELSE IF EXIST(".svn/entries")
SVNENTRIES = .svn/entries
!ELSE
SVNENTRIES =
$(PERL) make-version.pl
-#
-# Build "tshark-tap-register.c", which contains a function
-# "register_all_tap_listeners()"
-# that calls the register routines for all TShark tap listeners.
-#
-# We do this by grepping through sources.
-#
-# Formatting conventions: The name of the tap_listener_register_*
-# routines must start in column zero, or must be preceded only by
-# "void " starting in column zero, and must not be inside #if.
-#
-# The first argument is the name of the file to write.
-# The second argument is the directory in which the source files live.
-# All subsequent arguments are the files to scan.
-#
-tshark-tap-register.c: $(TSHARK_TAP_SRC) tools\make-tapreg-dotc
- @echo Making tshark-tap-register.c
- @$(SH) tools/make-tapreg-dotc tshark-tap-register.c . $(TSHARK_TAP_SRC)
-
text2pcap-scanner.c : text2pcap-scanner.l
$(LEX) -otext2pcap-scanner.c text2pcap-scanner.l
clean-local:
rm -f $(wireshark_OBJECTS) $(tshark_OBJECTS) $(dumpcap_OBJECTS) $(rawshark_OBJECTS) \
- $(EXECUTABLES) *.pdb *.exe.manifest \
+ $(EXECUTABLES) *.pdb *.sbr *.exe.manifest \
capinfos.obj editcap.obj mergecap.obj text2pcap.obj \
nio-ie5.obj update.obj \
text2pcap-scanner.obj text2pcap-scanner.c rdps.obj \
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
- cd ../gtk
+ cd ../ui
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
+ cd gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
- cd ../epan
+ cd ../cli
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
+ cd ../../epan
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
# It does not remove generated files that are part of the distribution.
distclean-local: clean-local
!IFDEF ADNS_DIR
-!IF "$(MSVC_VARIANT)" != "MSVC6"
rm -f $(ADNS_DLL) $(ADNS_LIBS)
!ENDIF
-!ENDIF
!IFDEF ZLIB_DIR
rm -f $(ZLIB_DLL) $(ZLIB_DIR)\zlib1.dll.manifest \
$(ZLIB_DIR)\include\zlib.h $(ZLIB_DIR)\include\zconf.h \
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
- cd ../gtk
+ cd ../ui
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
+ cd gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
- cd ../epan
+ cd ../cli
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
+ cd ../../epan
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
- cd ../gtk
+ cd ../ui
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
- cd ../epan
+ cd ../cli
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+ cd ../../epan
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ..
!IFDEF ADNS_DIR
-# Non-MSVC6 variants have to avoid indirectly using msvcrt.dll,
+# MSVC variants supported by Wireshark have to avoid indirectly using msvcrt.dll,
# therefore compile the adns dll from source ADNS_DIR package.
# To avoid path problems, copy the adns sources to a temp dir,
# compile and copy the resulting files back to (source) ADNS_DIR
#
# Unfortunately:
# - we need to "patch" adns_dll.rep and adns_dll.rc (at least for MSVC2005EE)
-# - on MSVC6 we can't easily rebuild, because iphlpapi.h is needed
#
$(ADNS_DLL):
-!IF "$(MSVC_VARIANT)" == "MSVC6"
- if not exist $(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns mkdir $(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns
- copy $(ADNS_DIR)\adns_win32\lib\adns_dll.dll $(ADNS_DLL)
- copy $(ADNS_DIR)\adns_win32\lib\adns_dll.lib $(ADNS_LIBS)
-!ELSE
xcopy $(ADNS_DIR) adns.tmp /D /I /E /Y
copy adns_dll.dep adns.tmp\adns_win32\adns_dll
copy adns_dll.rc adns.tmp\adns_win32\adns_dll
!IFDEF MANIFEST_INFO_REQUIRED
mt.exe -nologo -manifest "adns_dll.dll.manifest" -outputresource:adns_dll.dll;2
!ENDIF
- if not exist $(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns mkdir $(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns
+ if not exist "$(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns" mkdir "$(WIRESHARK_LIB_DIR)\$(MSVC_VARIANT)\adns"
copy adns_dll.dll $(ADNS_DLL)
copy adns_dll.lib $(ADNS_LIBS)
cd ..\..\..
rm -r -f adns.tmp
!ENDIF
-!ENDIF
!IFDEF ZLIB_DIR
-# Non-MSVC6 variants have to avoid indirectly using msvcrt.dll,
+# MSVC variants supported by Wireshark have to avoid indirectly using msvcrt.dll,
# therefore compile the zlib dll from source ZLIB_DIR package.
# To avoid path problems, copy the zlib sources to a temp dir,
# compile and copy the resulting files back to (source) ZLIB_DIR
cd ..
codecs::
- cd codecs
- $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
- cd ..
+ cd codecs
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
+ cd ..
-gtk:: help config.h svnversion.h doxygen
- cd gtk
+ui:: help config.h svnversion.h doxygen
+ cd ui
$(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libui.lib
cd ..
+gtk:: help config.h svnversion.h doxygen
+ cd ui/gtk
+ $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libgtkui.lib
+ cd ../..
+
win32::
- cd win32
- $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libui_win32.lib
- cd ..
+ cd ui/win32
+ $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libgtkui_win32.lib
+ cd ../..
+
+cli:: help config.h svnversion.h doxygen
+ cd ui/cli
+ $(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libcliui.lib
+ cd ../..
epan:: $(RESOURCES) $(ZLIB_DLL) wiretap\wiretap-$(WTAP_VERSION).lib $(BUILT_SOURCES) doxygen
cd epan
env \
grep \
--cygwinonly /usr/bin/find \
+ peflags \
$(PERL) \
$(PYTHON) \
sed \
verify_tools:
# As win-setup.sh assumes the dir exists create it if it doesn't
- @if not exist $(WIRESHARK_LIB_DIR) md $(WIRESHARK_LIB_DIR)
+ @if not exist "$(WIRESHARK_LIB_DIR)" md "$(WIRESHARK_LIB_DIR)"
@$(SH) $(WIN_SETUP) --appverify $(REQUIRED_TOOLS)
# Targets and etc used to verify or download libraries
# The process_libs target when invoked causes either a --libverify or a --download for all the required libraries.
# (The choice is determined by the value of the macro WIN_SETUP_OPT).
process_libs:
- @if not exist $(WIRESHARK_LIB_DIR) md $(WIRESHARK_LIB_DIR)
+ @if not exist "$(WIRESHARK_LIB_DIR)" md "$(WIRESHARK_LIB_DIR)"
!IFDEF GTK_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIB_DIR)" \
gtk2 gtk+-bundle_$(GTK_PKG)_$(WIRESHARK_TARGET_PLATFORM).zip
# WHEN UPDATING LIBRARY VERSIONS, KEEP ALSO ONE FORMER VERSION SO
# UPDATING REMOVES THE FORMER USER DIRS
clean_setup:
- cd $(WIRESHARK_LIB_DIR)
+ cd "$(WIRESHARK_LIB_DIR)"
rm -r -f adns-1.0-win32-05ws
rm -r -f c-ares-1.5.3ws
rm -r -f c-ares-1.6.0ws
if exist ".\wsutil\libwsutil.pdb" xcopy ".\wsutil\libwsutil.pdb" $(INSTALL_DIR) /d
if exist wireshark.exe copy wireshark.exe $(INSTALL_DIR)\wireshark.exe
if exist wireshark.pdb copy wireshark.pdb $(INSTALL_DIR)\wireshark.pdb
+ if exist wireshark.bsc copy wireshark.bsc $(INSTALL_DIR)\wireshark.bsc
if exist ".\docbook\user-guide.chm" xcopy ".\docbook\user-guide.chm" $(INSTALL_DIR) /d
if exist capinfos.exe xcopy capinfos.exe $(INSTALL_DIR) /d
if exist capinfos.pdb xcopy capinfos.pdb $(INSTALL_DIR) /d
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake install-plugins
cd ..
if not exist $(INSTALL_DIR)\ui mkdir $(INSTALL_DIR)\ui
- xcopy "gtk\ui\*.xml" $(INSTALL_DIR)\ui /d
+ xcopy "ui\gtk\ui\*.xml" $(INSTALL_DIR)\ui /d
# "install-all" will copy all files needed to run Wireshark/Tshark
# to the INSTALL_DIR, so you can run/debug Wireshark/Tshark from there.
xcopy "$(SMI_DIR)\share\pibs\*" $(INSTALL_DIR)\snmp\mibs /d
xcopy "$(SMI_DIR)\share\yang\*.yang" $(INSTALL_DIR)\snmp\mibs /d
!ENDIF
+ cd $(INSTALL_DIR)
+ peflags --dynamicbase=true --nxcompat=true *.dll
+ peflags --dynamicbase=true --nxcompat=true lib/gtk-2.0/*/engines/*.dll
+ peflags --dynamicbase=true --nxcompat=true lib/gtk-2.0/modules/*.dll
+ cd ..
checkapi_local:
$(PERL) tools/checkAPIs.pl \
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
- cd ../gtk
+ cd ../ui
+ $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
+ cd gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
- cd ../epan
+ cd ../../epan
## $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../epan/crypt
## $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi