!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\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 plugins\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 win32 image\wireshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib codecs\codecs.lib ui\gtk\libui.lib ui\win32\libui_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\libui.lib ui\win32\libui_win32.lib $(wireshark_OBJECTS) image\wireshark.res
<<
!IFDEF MANIFEST_INFO_REQUIRED
mt.exe -nologo -manifest "wireshark.exe.manifest" -outputresource:wireshark.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 =
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/gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
- cd ../epan
+ 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/gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
- cd ../epan
+ 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/gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
- cd ../epan
+ 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
+ cd ui/gtk
$(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libui.lib
- cd ..
+ cd ../..
win32::
- cd win32
+ cd ui/win32
$(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libui_win32.lib
- cd ..
+ 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/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