wireshark/Makefile.nmake

1113 lines
38 KiB
Makefile
Raw Normal View History

## Makefile for building wireshark.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
# $Id$
# We "Deploy using XCopy," which is described at
# http://msdn.microsoft.com/en-us/library/ms235291.aspx
include config.nmake
include <win32.mak>
############### no need to modify below this line #########
CC = cl
LINK= link
BSCMAKE= bscmake
WIN_SETUP=tools/$(WIRESHARK_TARGET_PLATFORM)-setup.sh
# -------------
# Checking that the Wireshark Libraries are up-to-date:
# 1. win??-setup.sh --checktag is invoked during nmake "preprocessing".
# If an error status is returned (ie: the libraries are not up-to-date)
# then CHECK_TAG is defined as a non-null string.
# 2. The $(LIBS_CHECK) target is invoked during the nmake:
# If $(CHECK_TAG) is non-null, then a "libraries not up to date" exit will occur.
# If $(CHECK_TAG) is null, but either config.nmake or Makefile.nmake
# are newer than the $(LIBS_CHECK) target, then a detailed verification
# as to the required library package files will be made.
#
LIBS_CHECK=_libs_check_
!IF [$(SH) $(WIN_SETUP) --checktag "$(WIRESHARK_LIBS)"] != 0
CHECK_TAG=_check_tag_
!ELSE
CHECK_TAG=
!ENDIF
# -------------
LDFLAGS = /NOLOGO /INCREMENTAL:no $(LOCAL_LDFLAGS)
# We use GENERATED_CFLAGS to get around flex's non-LLP64-compliant output
GENERATED_CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) $(GLIB_CFLAGS) /I. /Iwiretap \
$(ZLIB_CFLAGS) /I$(PCAP_DIR)\include \
$(AIRPCAP_CFLAGS) \
$(C_ARES_CFLAGS) $(ADNS_CFLAGS) $(PCRE_CFLAGS) $(GNUTLS_CFLAGS) \
$(LUA_CFLAGS) $(SMI_CFLAGS) $(GEOIP_CFLAGS) \
-D_U_="" -D_NEED_VAR_IMPORT_
CFLAGS=-WX $(GENERATED_CFLAGS)
CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
.c.obj::
$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
PLATFORM_SRC = capture-wpcap.c capture_wpcap_packet.c
WTAP_PLUGIN_SOURCES = \
epan/plugins.c \
epan/report_err.c \
epan/filesystem.c
include Makefile.common
wireshark_OBJECTS = $(wireshark_SOURCES:.c=.obj)
tshark_OBJECTS = $(tshark_SOURCES:.c=.obj)
rawshark_OBJECTS = $(rawshark_SOURCES:.c=.obj)
###text2pcap_OBJECTS = $(text2pcap_SOURCES:.c=.obj)
###mergecap_OBJECTS = $(mergecap_SOURCES:.c=.obj)
editcap_OBJECTS = $(editcap_SOURCES:.c=.obj)
capinfos_OBJECTS = $(capinfos_SOURCES:.c=.obj)
dftest_OBJECTS = $(dftest_SOURCES:.c=.obj)
dumpcap_OBJECTS = $(dumpcap_SOURCES:.c=.obj)
randpkt_OBJECTS = $(randpkt_SOURCES:.c=.obj)
EXTRA_OBJECTS = \
wsgetopt.obj \
inet_ntop.obj \
inet_pton.obj \
strptime.obj
wireshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib shell32.lib comctl32.lib \
$(HHC_LIBS) \
wsutil\libwsutil.lib \
$(GNUTLS_LIBS) \
!IFDEF ENABLE_LIBWIRESHARK
epan\libwireshark.lib \
!ELSE
epan\dissectors\dissectors.lib \
epan\wireshark.lib \
epan\crypt\airpdcap.lib \
epan\dfilter\dfilter.lib \
epan\ftypes\ftypes.lib \
$(C_ARES_LIBS) \
$(ADNS_LIBS) \
$(PCRE_LIBS) \
$(ZLIB_LIBS)
!ENDIF
tshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
$(GLIB_LIBS) \
wsutil\libwsutil.lib \
$(GNUTLS_LIBS) \
!IFDEF ENABLE_LIBWIRESHARK
epan\libwireshark.lib \
!ELSE
epan\dissectors\dissectors.lib \
epan\wireshark.lib \
epan\crypt\airpdcap.lib \
epan\dfilter\dfilter.lib \
epan\ftypes\ftypes.lib \
$(C_ARES_LIBS) \
$(ADNS_LIBS) \
$(PCRE_LIBS) \
$(ZLIB_LIBS)
!ENDIF
rawshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
$(GLIB_LIBS) \
wsutil\libwsutil.lib \
$(GNUTLS_LIBS) \
!IFDEF ENABLE_LIBWIRESHARK
epan\libwireshark.lib \
!ELSE
epan\dissectors\dissectors.lib \
epan\wireshark.lib \
epan\crypt\airpdcap.lib \
epan\dfilter\dfilter.lib \
epan\ftypes\ftypes.lib \
$(C_ARES_LIBS) \
$(ADNS_LIBS) \
$(PCRE_LIBS) \
$(ZLIB_LIBS)
!ENDIF
capinfos_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib shell32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS) \
$(GCRYPT_LIBS)
editcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib shell32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
mergecap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
text2pcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
dumpcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS) \
$(GTHREAD_LIBS) \
$(GNUTLS_LIBS)
dftest_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
$(GLIB_LIBS) \
wsutil\libwsutil.lib \
$(GNUTLS_LIBS) \
!IFDEF ENABLE_LIBWIRESHARK
epan\libwireshark.lib \
!ELSE
epan\dissectors\dissectors.lib \
epan\wireshark.lib \
epan\dfilter\dfilter.lib epan\ftypes\ftypes.lib \
$(C_ARES_LIBS) \
$(ADNS_LIBS) \
$(PCRE_LIBS) \
$(ZLIB_LIBS) \
$(SMI_LIBS)
!ENDIF
randpkt_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
user32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
EXECUTABLES=wireshark.exe tshark.exe rawshark.exe \
capinfos.exe editcap.exe mergecap.exe text2pcap.exe randpkt.exe dumpcap.exe
RESOURCES=image\wireshark.res image\libwireshark.res image\tshark.res \
image\capinfos.res image\editcap.res image\mergecap.res \
image\text2pcap.res image\wiretap.res image\dumpcap.res \
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
!IFDEF MAKENSIS
packaging: all
cd packaging
cd nsis
$(MAKE) /$(MAKEFLAGS) -f makefile.nmake
cd ..
cd ..
!ELSE
packaging: _FORCE_
@echo ? NSIS not available (MAKENSIS not defined in config.nmake)
@echo.
@exit 1
!ENDIF
packaging_u3: all
cd packaging
cd u3
cd win32
$(MAKE) /$(MAKEFLAGS) -f makefile.nmake
cd ..
cd ..
cd ..
packaging_papps: all
cd packaging
cd portableapps
cd win32
$(MAKE) /$(MAKEFLAGS) -f makefile.nmake
cd ..
cd ..
cd ..
# use (info-)zip from cygwin to pack things
packaging_zip: all
!IFDEF MSVCR_DLL
xcopy "$(MSVCR_DLL)" $(INSTALL_DIR)
!ENDIF
!IFDEF VCREDIST_EXE
@echo Including vcredist_$(TARGET_MACHINE).exe -- your recipient may need to run it!
xcopy "$(VCREDIST_EXE)" $(INSTALL_DIR)
!ENDIF
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 wiretap\*.sbr
rm -f $@
$(BSCMAKE) @<<
/o $@ $?
<<
xcopy $@ $(INSTALL_DIR)\ /d
$(RESOURCES): image
wiretap\wiretap-$(WTAP_VERSION).lib: image $(ZLIB_DLL) wiretap
wireshark.exe : $(LIBS_CHECK) config.h $(wireshark_OBJECTS) wsgetopt.obj inet_ntop.obj inet_pton.obj codecs epan gtk image\wireshark.res wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib codecs\codecs.lib gtk\libui.lib plugins
@echo Linking $@
$(LINK) @<<
/OUT:wireshark.exe $(guiflags) $(guilibsdll) $(LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:windows $(wireshark_LIBS) wsgetopt.obj inet_ntop.obj inet_pton.obj $(GTK_LIBS) codecs\codecs.lib gtk\libui.lib $(wireshark_OBJECTS) image\wireshark.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "wireshark.exe.manifest" -outputresource:wireshark.exe;1
!ENDIF
tshark.exe : $(LIBS_CHECK) config.h $(tshark_OBJECTS) wsgetopt.obj inet_ntop.obj inet_pton.obj epan 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) wsgetopt.obj inet_ntop.obj inet_pton.obj image\tshark.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "tshark.exe.manifest" -outputresource:tshark.exe;1
!ENDIF
rawshark.exe : $(LIBS_CHECK) config.h $(rawshark_OBJECTS) wsgetopt.obj inet_ntop.obj epan 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) wsgetopt.obj inet_ntop.obj image\rawshark.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "rawshark.exe.manifest" -outputresource:rawshark.exe;1
!ENDIF
# XXX: This makefile does not properly handle doing a 'nmake ... capinfos.exe' directly since some of the .objs
# (e.g. epan\plugins.obj) must be built first using epan\Makefile.nmake (which happens for 'nmake ... all').
# Linking with setargv.obj enables "wildcard expansion" of command-line arguments
capinfos.exe : $(LIBS_CHECK) config.h $(capinfos_OBJECTS) wsgetopt.obj wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib image\capinfos.res
@echo Linking $@
$(LINK) @<<
/OUT:capinfos.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(capinfos_OBJECTS) wsgetopt.obj $(capinfos_LIBS) setargv.obj image\capinfos.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "capinfos.exe.manifest" -outputresource:capinfos.exe;1
!ENDIF
# XXX: This makefile does not properly handle doing a 'nmake ... editcap.exe' directly since some of the .objs
# (e.g. epan\plugins.obj) must be built first using epan\Makefile.nmake (which happens for 'nmake ... all').
editcap.exe : $(LIBS_CHECK) config.h $(editcap_OBJECTS) wsgetopt.obj strptime.obj wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib image\editcap.res
@echo Linking $@
$(LINK) @<<
/OUT:editcap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(editcap_OBJECTS) wsgetopt.obj strptime.obj $(editcap_LIBS) image\editcap.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "editcap.exe.manifest" -outputresource:editcap.exe;1
!ENDIF
# Linking with setargv.obj enables "wildcard expansion" of command-line arguments
mergecap.exe : $(LIBS_CHECK) config.h mergecap.obj merge.obj wsgetopt.obj wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib image\mergecap.res
@echo Linking $@
$(LINK) @<<
/OUT:mergecap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console mergecap.obj merge.obj wsgetopt.obj $(mergecap_LIBS) setargv.obj image\mergecap.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "mergecap.exe.manifest" -outputresource:mergecap.exe;1
!ENDIF
text2pcap.exe : $(LIBS_CHECK) config.h text2pcap.obj text2pcap-scanner.obj wsgetopt.obj wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib strptime.obj image\text2pcap.res
@echo Linking $@
$(LINK) @<<
/OUT:text2pcap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console text2pcap.obj text2pcap-scanner.obj wsgetopt.obj $(text2pcap_LIBS) strptime.obj image\text2pcap.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "text2pcap.exe.manifest" -outputresource:text2pcap.exe;1
!ENDIF
dftest.exe : $(dftest_OBJECTS) epan
@echo Linking $@
$(LINK) @<<
/OUT:dftest.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(dftest_LIBS) $(dftest_OBJECTS)
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "dftest.exe.manifest" -outputresource:dftest.exe;1
!ENDIF
randpkt.exe : $(randpkt_OBJECTS) wsgetopt.obj
@echo Linking $@
$(LINK) @<<
/OUT:randpkt.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(randpkt_LIBS) $(randpkt_OBJECTS) wsgetopt.obj
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "randpkt.exe.manifest" -outputresource:randpkt.exe;1
!ENDIF
dumpcap.exe : $(LIBS_CHECK) config.h $(dumpcap_OBJECTS) wsgetopt.obj inet_ntop.obj wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib image\dumpcap.res
@echo Linking $@
$(LINK) @<<
/OUT:dumpcap.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:console $(dumpcap_LIBS) $(dumpcap_OBJECTS) wsgetopt.obj inet_ntop.obj image\dumpcap.res
<<
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "dumpcap.exe.manifest" -outputresource:dumpcap.exe;1
!ENDIF
config.h : config.h.win32 config.nmake
sed -e s/@VERSION@/$(VERSION)/ \
-e "s/@HAVE_C_ARES@/$(C_ARES_CONFIG)/" \
-e "s/@HAVE_GNU_ADNS@/$(ADNS_CONFIG)/" \
-e "s/@HAVE_PCRE@/$(PCRE_CONFIG)/" \
-e "s/@HAVE_KFW@/$(KFW_CONFIG)/" \
-e "s/@HAVE_NETTLE@/$(NETTLE_CONFIG)/" \
-e "s/@HAVE_LIBZ@/$(ZLIB_CONFIG)/" \
-e "s/@HAVE_LIBPCAP@/$(WINPCAP_CONFIG)/" \
-e "s/@HAVE_PCAP_FINDALLDEVS@/$(PCAP_FINDALLDEVS_CONFIG)/" \
-e "s/@HAVE_PCAP_DATALINK_NAME_TO_VAL@/$(PCAP_DATALINK_NAME_TO_VAL_CONFIG)/" \
-e "s/@HAVE_PCAP_DATALINK_VAL_TO_NAME@/$(PCAP_DATALINK_VAL_TO_NAME_CONFIG)/" \
-e "s/@HAVE_PCAP_DATALINK_VAL_TO_DESCRIPTION@/$(PCAP_DATALINK_VAL_TO_DESCRIPTION_CONFIG)/" \
-e "s/@HAVE_PCAP_BREAKLOOP@/$(PCAP_BREAKLOOP_CONFIG)/" \
-e "s/@HAVE_REMOTE@/$(PCAP_HAVE_REMOTE_CONFIG)/" \
-e "s/@HAVE_PCAP_REMOTE@/$(PCAP_REMOTE_CONFIG)/" \
-e "s/@HAVE_PCAP_OPEN@/$(PCAP_OPEN_CONFIG)/" \
-e "s/@HAVE_PCAP_LIST_DATALINKS@/$(PCAP_LIST_DATALINKS_CONFIG)/" \
-e "s/@HAVE_PCAP_FREE_DATALINKS@/$(PCAP_FREE_DATALINKS_CONFIG)/" \
-e "s/@HAVE_PCAP_SET_DATALINK@/$(PCAP_SET_DATALINK_CONFIG)/" \
-e "s/@HAVE_PCAP_SETSAMPLING@/$(PCAP_SETSAMPLING_CONFIG)/" \
-e "s/@HAVE_LIBWIRESHARKDLL@/$(LIBWIRESHARK_CONFIG)/" \
-e "s/@HAVE_LIBGNUTLS@/$(GNUTLS_CONFIG)/" \
-e "s/@HAVE_LIBGCRYPT@/$(LIBGCRYPT_CONFIG)/" \
-e "s/@HAVE_LUA@/$(LUA_CONFIG)/" \
-e "s/@HAVE_LUA_5_1@/$(LUA_VERSION)/" \
-e "s/@HAVE_AIRPCAP@/$(AIRPCAP_CONFIG)/" \
-e "s/@HAVE_AIRPDCAP@/$(AIRPDCAP_CONFIG)/" \
-e "s/@HAVE_LIBPORTAUDIO@/$(PORTAUDIO_CONFIG)/" \
-e "s/@PORTAUDIO_API_1@/$(PORTAUDIO_API_CONFIG)/" \
-e "s/@HAVE_SMI@/$(SMI_CONFIG)/" \
-e "s/@HAVE_GEOIP@/$(GEOIP_CONFIG)/" \
-e "s/@HAVE_NEW_PACKET_LIST@/$(NEW_PACKET_LIST_CONFIG)/" \
-e "s/@INET6@/$(INET6_CONFIG)/" \
-e "s/@HAVE_NTDDNDIS_H@/$(NTDDNDIS_CONFIG)/" \
< config.h.win32 > $@
ps.c: tools\rdps.py print.ps
$(PYTHON) tools\rdps.py print.ps ps.c
#
# Build the version string
#
!IF EXIST(".svn/entries")
SVNENTRIES = .svn/entries
!ELSE
SVNENTRIES =
!ENDIF
svnversion.h: $(SVNENTRIES)
rm -f svnversion.h
$(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
text2pcap-scanner.obj : text2pcap-scanner.c
$(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $?
#
# The following targets will rebuild their respective objs
# if and when svnversion.h should change.
#
text2pcap.obj : $*.c svnversion.h
$(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $*.c
mergecap.obj : $*.c svnversion.h
$(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $*.c
capinfos.obj : $*.c svnversion.h
$(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $*.c
editcap.obj : $*.c svnversion.h
$(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $*.c
version_info.obj : $*.c svnversion.h
$(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $*.c
clean-local: clean-deps
rm -f $(wireshark_OBJECTS) $(tshark_OBJECTS) $(dumpcap_OBJECTS) $(rawshark_OBJECTS) \
$(EXTRA_OBJECTS) $(EXECUTABLES) *.pdb *.exe.manifest \
capinfos.obj editcap.obj mergecap.obj text2pcap.obj \
nio-ie5.obj update.obj \
text2pcap-scanner.obj text2pcap-scanner.c rdps.obj \
rdps.pdb rdps.exe rdps.ilk config.h ps.c $(LIBS_CHECK) \
dftest.obj dftest.exe randpkt.obj randpkt.ext \
doxygen.cfg \
$(RESOURCES) libwireshark.dll wiretap-$(WTAP_VERSION).dll \
libwsutil.dll \
wireshark.bsc
clean: clean-local
cd asn1
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../wsutil
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../epan
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../tools
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../image
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../doc
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../help
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../packaging/nsis
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../u3/win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../../portableapps/win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../../..
# "distclean" removes all files not part of the distribution.
# 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 \
$(ZLIB_DIR)\lib\zdll.lib
!ENDIF
rm -f config.h $(BUILT_SOURCES)
distclean: distclean-local
cd wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../wsutil
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../epan
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../tools
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../image
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../doc
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../help
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../packaging/nsis
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../u3/win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../../portableapps/win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../../..
# Make "maintainer-clean" only if you would like to remove ALL generated
# files.
# Be sure to have python and perl installed to regenerate them.
maintainer-clean-local: distclean-local
rm -f $(GENERATED_FILES)
maintainer-clean: maintainer-clean-local
cd wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../wsutil
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../gtk
$(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 ../tools
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../image
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../doc
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../help
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../packaging/nsis
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../u3/win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../../portableapps/win32
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../../..
tools::
cd tools
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
image::
cd image
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
!IFDEF ADNS_DIR
# Non-MSVC6 variants 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_LIBS)\$(MSVC_VARIANT)\adns mkdir $(WIRESHARK_LIBS)\$(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
cd adns.tmp\adns_win32\adns_dll
set CFG=adns_dll - Win32 Release
$(MAKE) /$(MAKEFLAGS) -f adns_dll.mak LOC="$(LOCAL_CFLAGS)"
cd ..\lib
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "adns_dll.dll.manifest" -outputresource:adns_dll.dll;2
!ENDIF
if not exist $(WIRESHARK_LIBS)\$(MSVC_VARIANT)\adns mkdir $(WIRESHARK_LIBS)\$(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,
# 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
$(ZLIB_DLL):
xcopy $(ZLIB_DIR) zlib.tmp /D /I /E /Y
cd zlib.tmp
$(MAKE) /$(MAKEFLAGS) -f win32/Makefile.msc zlib1.dll LOC="$(LOCAL_CFLAGS)"
if not exist $(ZLIB_DIR) mkdir $(ZLIB_DIR)
if not exist $(ZLIB_DIR)\lib mkdir $(ZLIB_DIR)\lib
if not exist $(ZLIB_DIR)\include mkdir $(ZLIB_DIR)\include
!IF $(MSC_VER_REQUIRED) >= 1400
mt.exe -nologo -manifest "zlib1.dll.manifest" -outputresource:zlib1.dll;2
!ENDIF
copy zlib1.dll $(ZLIB_DIR)
copy zdll.lib $(ZLIB_DIR)\lib
copy zconf.h $(ZLIB_DIR)\include
copy zlib.h $(ZLIB_DIR)\include
cd ..
rm -r -f zlib.tmp
!ENDIF
wsutil::
cd wsutil
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
wiretap::
cd wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
codecs::
cd codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
gtk:: help config.h svnversion.h doxygen
cd gtk
$(MAKE) /$(MAKEFLAGS) /f Makefile.nmake libui.lib
cd ..
epan:: $(RESOURCES) $(ZLIB_DLL) wiretap\wiretap-$(WTAP_VERSION).lib $(BUILT_SOURCES) doxygen
cd epan
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
plugins::
cd plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
doc::
cd doc
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
help::
cd help
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
doxygen.cfg: config.nmake doxygen.cfg.in
sed -e s/@VERSION@/$(VERSION)/ \
< doxygen.cfg.in > $@
doxygen-run:
!IFDEF DOXYGEN
$(DOXYGEN) doxygen.cfg
!ENDIF
doxygen: doxygen.cfg doxygen-run
################################################################################
# Prepare build environment by downloading and installing required libraries
################################################################################
# The required tools to build Wireshark.
#
# The 'find' tool is available both in \WINNT\System32 and in cygwin's /usr/bin.
# We only need the cygwin version (for some shell scripts).
# In the PATH, System32 is before cygwin's dir, so explicitly check for /usr/bin/find.
REQUIRED_TOOLS=\
$(CC) \
$(LINK) \
nmake \
!IF $(MSC_VER_REQUIRED) >= 1400
mt \
!ENDIF
$(SH_PROG) \
$(YACC) \
$(LEX) \
env \
grep \
/usr/bin/find \
$(PERL) \
$(PYTHON) \
sed \
unzip \
wget
verify_tools:
@$(SH) $(WIN_SETUP) --appverify $(REQUIRED_TOOLS)
# Targets and etc used to verify or download libraries
!IFNDEF WIN_SETUP_OPT
WIN_SETUP_OPT=--download
!ENDIF
# Verify that the required library 'package' (zip) files have been downloaded.
# (It seems reasonable to assume that if the files have been downloaded
# then they have been installed).
check_libs:
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake WIN_SETUP_OPT=--libverify process_libs
# Verify library packages:
# If $(CHECK_TAG) is non-null then checktag failed; Exit with an error message. (See beginning of this Makefile).
# Otherwise do detailed library package files verification only if Makefile.nmake or config.make have been updated
# (or dummy file doesn't exist because of 'make clean' or whatever).
# Note that the creation/modification time of a file after an svn update of that file
# is the time of the update (not the time of the file in the repository).
# touch is only called if libverify succeeds.
$(LIBS_CHECK): $(CHECK_TAG) config.nmake Makefile.nmake
@echo Verifying library package files ...
@$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake WIN_SETUP_OPT=--libverify process_libs
@touch $@
# Target for "checktag failed" (libraries not up to date).
# Defined only if "checktag" failed (see beginning of this Makefile).
!IF "$(CHECK_TAG)" != ""
$(CHECK_TAG): _FORCE_
@echo \? Wireshark Libraries not up-to-date \?
@echo \? Do you need to run "nmake -f Makefile.nmake setup" \?
@echo.
@exit 1
!ENDIF
# Download (if needed) and install all the required libraries into WIRESHARK_LIBS.
# A clean_setup is done first to ensure that the target dirs don't
# contain old files remaining from a previous setup run.
setup: verify_tools clean_setup process_libs
# 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_LIBS) md $(WIRESHARK_LIBS)
!IFDEF GTK_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
gtk2 gtk+-bundle_$(GTK_PKG)_$(WIRESHARK_TARGET_PLATFORM).zip
!ENDIF
!IFDEF KFW_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. kfw-3-2-2-i386-ws-vc6.zip
# @$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
# . kfw-3-2-2.zip
!ENDIF
!IFDEF PCAP_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. WpdPack_$(PCAP_VERSION).zip
!ENDIF
!IFDEF AIRPCAP_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
AirPcap_Devpack_4_1_0_1622 AirPcap_Devpack_4_1_0_1622.zip
!ENDIF
!IFDEF C_ARES_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. c-ares-$(C_ARES_PKG)-$(WIRESHARK_TARGET_PLATFORM)ws.zip
!ENDIF
!IFDEF ADNS_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. adns-1.0-win32-05ws.zip
!ENDIF
!IFDEF PCRE_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
pcre-7.0 pcre-7.0-bin.zip
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
pcre-7.0 pcre-7.0-lib.zip
!ENDIF
!IFDEF ZLIB_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
zlib123 zlib123ws.zip
!ENDIF
!IFDEF LUA_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
lua5.1.4 lua$(LUA_DIST)_lib.zip
!ENDIF
!IFDEF GNUTLS_PKG
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. gnutls-$(GNUTLS_PKG)-$(WIRESHARK_TARGET_PLATFORM)ws.zip
!ENDIF
!IFDEF PORTAUDIO_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. portaudio_v19_2.zip
!ENDIF
!IFDEF SMI_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. libsmi-0.4.8.zip
!ENDIF
!IFDEF GEOIP_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. GeoIP-1.4.6-$(WIRESHARK_TARGET_PLATFORM)ws.zip
!ENDIF
!IFDEF HHC_DIR
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
user-guide user-guide-28526.zip
!ENDIF
!IFDEF UPX
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. upx303w.zip
!ENDIF
!IFDEF NASM
@$(SH) $(WIN_SETUP) "$(WIN_SETUP_OPT)" "$(WIRESHARK_LIBS)" \
. nasm-2.02-win32.zip
!ENDIF
!IF "$(WIN_SETUP_OPT)" == "--download"
@$(SH) $(WIN_SETUP) --settag "$(WIRESHARK_LIBS)"
!ENDIF
@echo.
@echo Wireshark is ready to build.
# Cleanup files installed by the setup target. It will not remove the
# downloaded zip files.
# WHEN UPDATING LIBRARY VERSIONS, KEEP ALSO ONE FORMER VERSION SO
# UPDATING REMOVES THE FORMER USER DIRS
clean_setup:
rm -r -f $(WIRESHARK_LIBS)/adns-1.0-win32-05ws
rm -r -f $(WIRESHARK_LIBS)/c-ares-1.5.3ws
rm -r -f $(WIRESHARK_LIBS)/c-ares-1.6.0ws
rm -r -f $(WIRESHARK_LIBS)/c-ares-1.7.0-win??ws
rm -r -f $(WIRESHARK_LIBS)/c-ares-1.7.1-win??ws
rm -r -f $(WIRESHARK_LIBS)/gettext-0.14.5
rm -r -f $(WIRESHARK_LIBS)/gettext-runtime-0.17
rm -r -f $(WIRESHARK_LIBS)/gettext-runtime-0.17-1
rm -r -f $(WIRESHARK_LIBS)/gettext-0.17-1 # win64
rm -r -f $(WIRESHARK_LIBS)/glib
rm -r -f $(WIRESHARK_LIBS)/gnutls-2.8.1-1
rm -r -f $(WIRESHARK_LIBS)/gnutls-2.8.5-*-win??ws
rm -r -f $(WIRESHARK_LIBS)/gtk2
rm -r -f $(WIRESHARK_LIBS)/gtk+
rm -r -f $(WIRESHARK_LIBS)/gtk-wimp
rm -r -f $(WIRESHARK_LIBS)/kfw-2.5
rm -r -f $(WIRESHARK_LIBS)/kfw-3.2.2-ws1
rm -r -f $(WIRESHARK_LIBS)/kfw-3.2.2-i386-ws-vc6
rm -r -f $(WIRESHARK_LIBS)/libiconv-1.9.1.bin.woe32
rm -r -f $(WIRESHARK_LIBS)/lua5.1
rm -r -f $(WIRESHARK_LIBS)/lua5.1.4
rm -r -f $(WIRESHARK_LIBS)/libsmi-0.4.5
rm -r -f $(WIRESHARK_LIBS)/libsmi-0.4.8
rm -r -f $(WIRESHARK_LIBS)/nasm-2.00
rm -r -f $(WIRESHARK_LIBS)/nasm-2.02
rm -r -f $(WIRESHARK_LIBS)/pcre-6.4
rm -r -f $(WIRESHARK_LIBS)/pcre-7.0
rm -r -f $(WIRESHARK_LIBS)/portaudio_v19
rm -r -f $(WIRESHARK_LIBS)/portaudio_v19_2
rm -r -f $(WIRESHARK_LIBS)/user-guide
rm -r -f $(WIRESHARK_LIBS)/WpdPack
rm -r -f $(WIRESHARK_LIBS)/AirPcap_Devpack_1_0_0_594
rm -r -f $(WIRESHARK_LIBS)/AirPcap_Devpack_4_0_0_1480
rm -r -f $(WIRESHARK_LIBS)/AirPcap_Devpack_4_1_0_1622
rm -r -f $(WIRESHARK_LIBS)/zlib123
rm -r -f $(WIRESHARK_LIBS)/zlib123-dll
rm -r -f $(WIRESHARK_LIBS)/upx301w
rm -r -f $(WIRESHARK_LIBS)/upx303w
rm -r -f $(WIRESHARK_LIBS)/GeoIP-1.4.5ws
rm -r -f $(WIRESHARK_LIBS)/GeoIP-1.4.6-win??ws
################################################################################
# Prepare the debug trees for running Wireshark/Tshark from there.
################################################################################
# prepare debugging of Wireshark in INSTALL_DIR
debug-wireshark: wireshark.exe install-generated-files
# prepare debugging of tshark in INSTALL_DIR
debug-tshark: tshark.exe install-generated-files
# prepare debugging of rawshark in INSTALL_DIR
debug-rawshark: rawshark.exe install-generated-files
# prepare debugging of dumpcap in INSTALL_DIR
debug-dumpcap: dumpcap.exe install-generated-files
# install generated files (exe, "our" libs, ...)
install-generated-files:
set copycmd=/y
if not exist $(INSTALL_DIR) mkdir $(INSTALL_DIR)
!IF DEFINED (MSVCR_DLL) && "$(MSVC_VARIANT)" == "MSVC2008"
xcopy "$(MSVCR_DLL)" $(INSTALL_DIR)\*.* /d
!ENDIF
!IFDEF ENABLE_LIBWIRESHARK
xcopy epan\libwireshark.dll $(INSTALL_DIR) /d
if exist epan\libwireshark.pdb xcopy .\epan\libwireshark.pdb $(INSTALL_DIR) /d
!ENDIF
xcopy ".\wiretap\wiretap-$(WTAP_VERSION).dll" $(INSTALL_DIR) /d
if exist ".\wiretap\wiretap-$(WTAP_VERSION).pdb" xcopy ".\wiretap\wiretap-$(WTAP_VERSION).pdb" $(INSTALL_DIR) /d
xcopy ".\wsutil\libwsutil.dll" $(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 ".\docbook\user-guide.chm" xcopy ".\docbook\user-guide.chm" $(INSTALL_DIR) /d
if exist tshark.exe xcopy tshark.exe $(INSTALL_DIR) /d
if exist tshark.pdb xcopy tshark.pdb $(INSTALL_DIR) /d
if exist rawshark.exe xcopy rawshark.exe $(INSTALL_DIR) /d
if exist rawshark.pdb xcopy rawshark.pdb $(INSTALL_DIR) /d
if exist dumpcap.exe xcopy dumpcap.exe $(INSTALL_DIR) /d
if exist dumpcap.pdb xcopy dumpcap.pdb $(INSTALL_DIR) /d
if exist mergecap.exe xcopy mergecap.exe $(INSTALL_DIR) /d
if exist mergecap.pdb xcopy mergecap.pdb $(INSTALL_DIR) /d
if exist text2pcap.exe xcopy text2pcap.exe $(INSTALL_DIR) /d
if exist text2pcap.pdb xcopy text2pcap.pdb $(INSTALL_DIR) /d
if exist capinfos.exe xcopy capinfos.exe $(INSTALL_DIR) /d
if exist capinfos.pdb xcopy capinfos.pdb $(INSTALL_DIR) /d
if exist editcap.exe xcopy editcap.exe $(INSTALL_DIR) /d
if exist editcap.pdb xcopy editcap.pdb $(INSTALL_DIR) /d
xcopy "doc\AUTHORS-SHORT" $(INSTALL_DIR) /d
xcopy ".\manuf" $(INSTALL_DIR) /d
xcopy ".\services" $(INSTALL_DIR) /d
xcopy ".\README" $(INSTALL_DIR) /d
xcopy ".\README.win32" $(INSTALL_DIR) /d
xcopy "doc\AUTHORS-SHORT-FORMAT" $(INSTALL_DIR) /d
xcopy ".\COPYING" $(INSTALL_DIR) /d
copy ".\NEWS" $(INSTALL_DIR)\NEWS.txt
xcopy ".\cfilters" $(INSTALL_DIR) /d
xcopy ".\colorfilters" $(INSTALL_DIR) /d
xcopy ".\dfilters" $(INSTALL_DIR) /d
xcopy ".\smi_modules" $(INSTALL_DIR) /d
!IFDEF LUA_DIR
xcopy ".\epan\wslua\init.lua" $(INSTALL_DIR) /d
xcopy ".\epan\wslua\console.lua" $(INSTALL_DIR) /d
!ENDIF
xcopy ipmap.html $(INSTALL_DIR) /d
xcopy doc\*.html $(INSTALL_DIR) /d
if not exist $(INSTALL_DIR)\help mkdir $(INSTALL_DIR)\help
xcopy ".\help\*.*" $(INSTALL_DIR)\help /d
# you can't reliably use xcopy to rename files "on the fly" (so copy first, then rename)
xcopy ".\help\faq.txt" $(INSTALL_DIR) /d
if exist $(INSTALL_DIR)\FAQ del $(INSTALL_DIR)\FAQ
ren $(INSTALL_DIR)\faq.txt FAQ
if not exist $(INSTALL_DIR)\dtds mkdir $(INSTALL_DIR)\dtds
xcopy ".\dtds\*.*" $(INSTALL_DIR)\dtds /d
if not exist $(INSTALL_DIR)\asn1 mkdir $(INSTALL_DIR)\asn1
echo create empty asn1 default.tt file to prevent problems 2> $(INSTALL_DIR)\asn1\default.tt
if not exist $(INSTALL_DIR)\radius mkdir $(INSTALL_DIR)\radius
xcopy ".\radius\*.*" $(INSTALL_DIR)\radius /d
if not exist $(INSTALL_DIR)\diameter mkdir $(INSTALL_DIR)\diameter
xcopy ".\diameter\*.dtd" $(INSTALL_DIR)\diameter /d
xcopy ".\diameter\*.xml" $(INSTALL_DIR)\diameter /d
if not exist $(INSTALL_DIR)\tpncp mkdir $(INSTALL_DIR)\tpncp
xcopy ".\tpncp\*.dat" $(INSTALL_DIR)\tpncp /d
if not exist $(INSTALL_DIR)\wimaxasncp mkdir $(INSTALL_DIR)\wimaxasncp
xcopy ".\wimaxasncp\*.*" $(INSTALL_DIR)\wimaxasncp /d
if not exist $(INSTALL_DIR)\plugins mkdir $(INSTALL_DIR)\plugins
if not exist $(INSTALL_DIR)\plugins\$(VERSION) mkdir $(INSTALL_DIR)\plugins\$(VERSION)
cd plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake install-plugins
cd ..
# "install-all" will copy all files needed to run Wireshark/Tshark
# to the INSTALL_DIR, so you can run/debug Wireshark/Tshark from there.
install-all: install-generated-files
set copycmd=/y
if not exist $(INSTALL_DIR) mkdir $(INSTALL_DIR)
xcopy $(GTK_DIR)\bin\libgdk-win32-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgdk_pixbuf-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgtk-win32-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libatk-1.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libpango-1.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libpangowin32-1.0-0.dll $(INSTALL_DIR) /d
if not exist $(INSTALL_DIR)\etc mkdir $(INSTALL_DIR)\etc
if not exist $(INSTALL_DIR)\etc\gtk-2.0 mkdir $(INSTALL_DIR)\etc\gtk-2.0
if not exist $(INSTALL_DIR)\etc\pango mkdir $(INSTALL_DIR)\etc\pango
if not exist $(INSTALL_DIR)\lib mkdir $(INSTALL_DIR)\lib
if not exist $(INSTALL_DIR)\lib\gtk-2.0 mkdir $(INSTALL_DIR)\lib\gtk-2.0
if not exist $(INSTALL_DIR)\lib\gtk-2.0\modules mkdir $(INSTALL_DIR)\lib\gtk-2.0\modules
if not exist $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR) mkdir $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)
Use GTK 2.14.5 and glib 2.18.2 Overview of Changes from GLib 2.18.2 to GLib 2.18.3 =================================================== * Build with libtool 2.x * Bugs fixed: 557087 mem leak in g_content_types_get_registered 558185 'parent' variable in g_local_file_get_child_for_display_name() hits g_object_unref(NULL) assertion 557210 g_compute_checksum_for_* asserts with less than 2 bytes 528320 Incorrect icons displayed for files with custom mimetype icons 557592 Missing include in gwinhttpfile.c 556415 Crash on Windows 2000 in g_winhttp_vfs_init() 556910 Memory leak: sub 561352 Leak of icon description 561375 Leaks mountpoint description 560569 gkeyfile doesn't use the set list_separator in some cases 560568 gkeyfile docs buglet 559413 g_option_group_set_error_hook docs buglet Overview of Changes from GTK+ 2.14.4 to 2.14.5 ============================================== * Bugs fixed: 556578 GIMP windows stay on top of other windows 557059 crash when compositing emblems with icon 557266 Window Management Problem 528320 Incorrect icons displayed for files with custom mimetype icons 557894 Wrong return value for gdk_pointer_grab_info_libgtk_only 557316 GtkLinkButton should consider user-defined tooltip 558323 glitches when popping up combos in treeviews 558278 Crash when calling a callback set by gdk_add_client_message_filter 557212 Problem with which window gains focus and is visible 541391 Unfocussable Treeview swallows focus 552956 Should check composite extension version 554567 warning fixes (missing format specifiers and NULL vs 0) svn path=/trunk/; revision=26960
2008-12-10 20:30:34 +00:00
if not exist $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders mkdir $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders
if not exist $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines mkdir $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines
xcopy $(GTK_DIR)\etc\gtk-2.0\*.* $(INSTALL_DIR)\etc\gtk-2.0 /d
if exist $(GTK_DIR)\etc\pango xcopy $(GTK_DIR)\etc\pango\pango.* $(INSTALL_DIR)\etc\pango /d
if exist $(GTK_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders xcopy $(GTK_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders\libpixbufloader-*.dll $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\loaders /d
xcopy $(GTK_DIR)\lib\gtk-2.0\modules\libgail.dll $(INSTALL_DIR)\lib\gtk-2.0\modules /d
xcopy $(GTK_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines\libpixmap.dll $(INSTALL_DIR)\lib\gtk-2.0\$(GTK_LIB_DIR)\engines /d
!IFDEF NEED_LIBPNG_DLL
xcopy $(GTK_DIR)\bin\$(PNG_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF NEED_LIBTIFF_DLL
xcopy $(GTK_DIR)\bin\$(TIFF_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF NEED_LIBJPEG_DLL
xcopy $(GTK_DIR)\bin\$(JPEG_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF NEED_CAIRO_DLL
xcopy $(GTK_DIR)\bin\libcairo-2.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libpangocairo-1.0-0.dll $(INSTALL_DIR) /d
!ENDIF
!IFDEF NEED_FREETYPE_DLL
xcopy $(GTK_DIR)\bin\libpangoft2-1.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\$(FREETYPE_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF NEED_FONTCONFIG_DLL
xcopy $(GTK_DIR)\bin\$(FONTCONFIG_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF NEED_EXPAT_DLL
xcopy $(GTK_DIR)\bin\$(EXPAT_DLL) $(INSTALL_DIR) /d
!ENDIF
if not exist $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR) mkdir $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR)
xcopy "$(GTK_WIMP_DLLSRC_DIR)\libwimp.dll" $(INSTALL_DIR)\$(GTK_WIMP_DLLDST_DIR) /d
if not exist $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR) mkdir $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR)
xcopy "$(GTK_WIMP_RCSRC_DIR)\gtkrc" $(INSTALL_DIR)\$(GTK_WIMP_RCDST_DIR) /d
xcopy $(GTK_DIR)\bin\libgio-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libglib-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgmodule-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgobject-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\libgthread-2.0-0.dll $(INSTALL_DIR) /d
xcopy $(GTK_DIR)\bin\$(INTL_DLL) $(INSTALL_DIR) /d
!IFDEF ZLIB_DIR
xcopy $(ZLIB_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF C_ARES_DIR
xcopy $(C_ARES_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF ADNS_DIR
xcopy $(ADNS_DLL) $(INSTALL_DIR) /d
!ENDIF
!IFDEF PCRE_DIR
xcopy $(PCRE_DIR)\bin\pcre3.dll $(INSTALL_DIR) /d
xcopy $(PCRE_DIR)\man\cat3\pcrepattern.3.txt $(INSTALL_DIR) /d
!ENDIF
!IFDEF KFW_DIR
xcopy $(KFW_PATH)\comerr32.dll $(INSTALL_DIR) /d
xcopy $(KFW_PATH)\krb5_32.dll $(INSTALL_DIR) /d
xcopy $(KFW_PATH)\k5sprt32.dll $(INSTALL_DIR) /d
!ENDIF
!IFDEF GNUTLS_DIR
xcopy $(GNUTLS_DIR)\bin\libgcrypt-11.dll $(INSTALL_DIR) /d
xcopy $(GNUTLS_DIR)\bin\libgnutls-26.dll $(INSTALL_DIR) /d
xcopy $(GNUTLS_DIR)\bin\libgpg-error-0.dll $(INSTALL_DIR) /d
xcopy $(GNUTLS_DIR)\bin\libtasn1-3.dll $(INSTALL_DIR) /d
!ENDIF
!IFDEF LUA_DIR
xcopy "$(LUA_DIR)\lua5.1.dll" $(INSTALL_DIR) /d
!ENDIF
!IFDEF SMI_DIR
if not exist $(INSTALL_DIR)\snmp mkdir $(INSTALL_DIR)\snmp
if not exist $(INSTALL_DIR)\snmp\mibs mkdir $(INSTALL_DIR)\snmp\mibs
xcopy "$(SMI_DIR)\lib\smi.dll" $(INSTALL_DIR) /d
xcopy "$(SMI_DIR)\mibs\*" $(INSTALL_DIR)\snmp\mibs /d
!ENDIF
clean-deps:
rm -rf $(INSTALL_DIR)
cd plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean-deps
cd ..
checkapi_local:
$(PERL) tools/checkAPIs.pl \
$(wireshark_SOURCES) \
$(TSHARK_TAP_SRC) \
# $(EXTRA_wireshark_SOURCES)
checkapi: checkapi_local
cd wiretap
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../codecs
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../gtk
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../epan
## $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../epan/crypt
## $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../dfilter
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../ftypes
## $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../wslua
## $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../dissectors
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ..
cd ../plugins
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
cd ../wsutil
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake checkapi
####
_FORCE_: ## Assumption: no file named _FORCE_ exists in the current directory