wireshark/epan/Makefile.nmake

223 lines
5.8 KiB
Makefile

## Makefile for building wireshark.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
# $Id$
include ..\config.nmake
include <win32.mak>
include Makefile.common
############### no need to modify below this line #########
CFLAGS=-DHAVE_CONFIG_H /I. /I.. /I../wiretap $(GLIB_CFLAGS) \
$(ZLIB_CFLAGS) $(ADNS_CFLAGS) $(PCRE_CFLAGS) $(GNUTLS_CFLAGS) /I$(PCAP_DIR)\include \
-D_U_="" $(LOCAL_CFLAGS)
CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
!IFDEF LUA_DIR
WSLUA_LIB=wslua\wslua.lib
WSLUA_DIR=wslua
!ELSE
WSLUA_LIB=
WSLUA_DIR=
!ENDIf
# For use when making libwireshark.dll
libwireshark_LIBS = \
$(GLIB_LIBS) \
$(ADNS_LIBS) \
$(PCRE_LIBS) \
$(KFW_LIBS) \
$(NETTLE_LIBS) \
$(ZLIB_LIBS) \
$(GNUTLS_LIBS) \
$(NET_SNMP_LIBS) \
$(LUA_LIBS) \
..\wiretap\wiretap-$(WTAP_VERSION).lib \
$(ICONV_DIR)\lib\iconv.lib \
crypt\airpdcap.lib \
ftypes\ftypes.lib \
dfilter\dfilter.lib \
$(WSLUA_LIB) \
dissectors\dissectors.lib
.c.obj::
$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
LIBWIRESHARK_OBJECTS = $(LIBWIRESHARK_SRC:.c=.obj)
EXTRA_OBJECTS = \
# strerror.obj \
inet_aton.obj \
inet_pton.obj \
inet_ntop.obj \
mkstemp.obj \
strptime.obj
!IFDEF DOXYGEN
DOXYGEN_DEP=doxygen
!ENDIF
!IFDEF ENABLE_LIBWIRESHARK
all: crypt ftypes dfilter $(WSLUA_DIR) dissectors libwireshark.dll
!ELSE
all: crypt ftypes dfilter $(WSLUA_DIR) dissectors libwireshark.lib
!ENDIF
# For use when making libwireshark.dll
libwireshark.lib: libwireshark.dll
libwireshark.exp: libwireshark.dll
libwireshark.dll: ..\config.h $(LIBWIRESHARK_OBJECTS) libwireshark.def crypt ftypes dfilter $(WSLUA_DIR) dissectors $(DOXYGEN_DEP) $(EXTRA_OBJECTS) \
crypt\airpdcap.lib ftypes\ftypes.lib dfilter\dfilter.lib dissectors\dissectors.lib $(WSLUA_LIB) ..\image\libwireshark.res
@echo Linking libwireshark.dll
$(link) $(dlllflags) $(conlibsdll) shell32.lib \
$(LOCAL_LDFLAGS) \
/DEF:libwireshark.def /OUT:libwireshark.dll \
/IMPLIB:libwireshark.lib $(LIBWIRESHARK_OBJECTS) \
$(libwireshark_LIBS) ..\image\libwireshark.res \
dissectors\register.obj \
$(EXTRA_OBJECTS)
libwireshark.lib : ..\config.h $(LIBWIRESHARK_OBJECTS) crypt ftypes dfilter $(WSLUA_DIR) dissectors $(DOXYGEN_DEP) $(EXTRA_OBJECTS) \
crypt\airpdcap.lib ftypes\ftypes.lib dfilter\dfilter.lib $(WSLUA_LIB) dissectors\dissectors.lib
link /lib /out:libwireshark.lib $(LIBWIRESHARK_OBJECTS) \
$(EXTRA_OBJECTS)
..\config.h : ..\config.h.win32 ..\config.nmake
cd ..
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake config.h
cd epan
clean:
rm -f $(LIBWIRESHARK_OBJECTS) $(EXTRA_OBJECTS) \
libwireshark.lib libwireshark.dll libwireshark.dll.manifest libwireshark.exp libwireshark.pdb \
doxygen.cfg html/*.*
if exist html rmdir html
cd crypt
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../ftypes
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../dfilter
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../dissectors
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ../wslua
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
cd ..
#
# We remove the Flex-generated files with "distclean" because they need
# different #includes for UN*X and Windows (UN*X versions of Flex make it
# include <unistd.h>, but that's a UN*X-only header), so if you're going
# to build from source, you need to build those scanners from the
# corresponding ".l" files with Flex.
# This might not be necessary for "dtd_grammar.{c,h}", but we handle them
# the same for now.
#
distclean: clean
rm -f config.h register.c mkstemp.c strptime.c radius_dict.c \
dtd_grammar.out dtd_grammar.c dtd_grammar.h dtd_parse.c \
dtd_preparse.c load_snmp_users_file.c sminmpec.c
cd crypt
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../ftypes
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../dfilter
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../dissectors
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ../wslua
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
cd ..
maintainer-clean: distclean
cd crypt
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../ftypes
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../dfilter
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../dissectors
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ../wslua
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
cd ..
crypt:: ..\config.h
cd crypt
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
ftypes:: ..\config.h
cd ftypes
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
dfilter:: ..\config.h
cd dfilter
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
dissectors:: ..\config.h
cd dissectors
$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
cd ..
wslua:: ..\config.h
cd wslua
$(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
# (Windows only) Copy some sources from /trunk to /trunk/epan.
# It is a cleaner to compile these sources seperately with this makefile than
# using the object code compiled by the makefile in /trunk for both dynamically
# and statically linking
mkstemp.c: ..\mkstemp.c
xcopy ..\mkstemp.c . /d
strptime.c: ..\strptime.c
xcopy ..\strptime.c . /d
radius_dict.c : radius_dict.l
$(LEX) radius_dict.l
sminmpec.c: enterprise-numbers make-sminmpec.pl
$(PERL) make-sminmpec.pl enterprise-numbers sminmpec.c
dtd_parse.c : dtd_parse.l
$(LEX) -odtd_parse.c dtd_parse.l
dtd_preparse.c : dtd_preparse.l
$(LEX) -odtd_preparse.c dtd_preparse.l
load_snmp_users_file.c : load_snmp_users_file.l
$(LEX) -oload_snmp_users_file.c load_snmp_users_file.l
uat_load.c : uat_load.l
$(LEX) -ouat_load.c uat_load.l
dtd_grammar.h: dtd_grammar.c
LEMON=..\tools\lemon
dtd_grammar.c: dtd_grammar.lemon $(LEMON)\lemon.exe
$(LEMON)\lemon t=$(LEMON)\lempar.c dtd_grammar.lemon