wireshark/epan/Makefile.nmake
Jaap Keuter 098d297303 Running glib 2.16 on 32 bit platform requires this lempar.c change in addition to revision 24710.
Makefiles updated to make new lempar.c effective in build rules.

svn path=/trunk/; revision=24718
2008-03-23 08:58:52 +00:00

307 lines
8.5 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.nmake.inc
include Makefile.common
LINK= link
CFLAGS=-WX -DHAVE_CONFIG_H /I. /I.. /I../wiretap $(GLIB_CFLAGS) \
$(ZLIB_CFLAGS) $(ADNS_CFLAGS) $(PCRE_CFLAGS) $(GNUTLS_CFLAGS) /I$(PCAP_DIR)\include \
$(SMI_CFLAGS) -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) \
$(LUA_LIBS) \
$(SMI_LIBS) \
..\wiretap\wiretap-$(WTAP_VERSION).lib \
!IFDEF ICONV_DIR
$(ICONV_DIR)\lib\iconv.lib \
!ENDIF
crypt\airpdcap.lib \
ftypes\ftypes.lib \
dfilter\dfilter.lib \
$(WSLUA_LIB) \
dissectors\dissectors.lib
.c.obj::
$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
LIBWIRESHARK_OBJECTS = $(LIBWIRESHARK_ALL_SRC:.c=.obj)
EXTRA_OBJECTS = \
# strerror.obj \
inet_aton.obj \
inet_pton.obj \
inet_ntop.obj \
mkstemp.obj \
strptime.obj \
!IFDEF NASM
asm_utils_win32_x86.obj
!ELSE
asm_utils.obj
!ENDIF
!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)
!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
mt.exe -nologo -manifest "libwireshark.dll.manifest" -outputresource:libwireshark.dll;2
!ENDIF
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-local:
rm -f $(LIBWIRESHARK_OBJECTS) $(EXTRA_OBJECTS) \
libwireshark.lib libwireshark.dll libwireshark.dll.manifest libwireshark.exp libwireshark.pdb \
vc60.pdb vc80.pdb doxygen.cfg html/*.* \
exntest.obj exntest.exe reassemble_test.obj reassemble_test.exe tvbtest.obj tvbtest.exe
if exist html rmdir html
clean: clean-local
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-local: clean-local
rm -f config.h register.c mkstemp.c strptime.c \
inet_ntop.c inet_pton.c \
$(LIBWIRESHARK_DISTCLEAN_GENERATED_SRC) \
$(LIBWIRESHARK_DISTCLEAN_GENERATED_INCLUDES) \
$(LIBWIRESHARK_NODISTCLEAN_GENERATED_SRC) \
$(LIBWIRESHARK_NODISTCLEAN_GENERATED_INCLUDES) \
dtd_grammar.out sminmpec.c
distclean: distclean-local
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-local: distclean-local
maintainer-clean: maintainer-clean-local
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
# Rules for making unit tests
exntest: exntest.exe
reassemble_test: reassemble_test.exe
tvbtest: tvbtest.exe
exntest.exe: exntest.obj except.obj
@echo Linking $@
$(LINK) /OUT:$@ $(conflags) $(conlibsdll) $(LOCAL_LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:console \
$(GLIB_LIBS) exntest.obj except.obj
!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
mt.exe -nologo -manifest "$@.manifest" -outputresource:$@;1
!ENDIF
tvbtest.exe: tvbtest.obj tvbuff.obj except.obj strutil.obj emem.obj
@echo Linking $@
$(LINK) /OUT:$@ $(conflags) $(conlibsdll) $(LOCAL_LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:console \
$(GLIB_LIBS) $(ZLIB_LIBS) tvbtest.obj tvbuff.obj except.obj strutil.obj emem.obj
!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
mt.exe -nologo -manifest "$@.manifest" -outputresource:$@;1
!ENDIF
reassemble_test.exe: reassemble_test.obj tvbuff.obj except.obj strutil.obj emem.obj \
reassemble.obj
@echo Linking $@
$(LINK) /OUT:$@ $(conflags) $(conlibsdll) $(LOCAL_LDFLAGS) /LARGEADDRESSAWARE /SUBSYSTEM:console \
$(GLIB_LIBS) $(ZLIB_LIBS) reassemble_test.obj tvbuff.obj \
except.obj strutil.obj emem.obj reassemble.obj
!IF "$(MSVC_VARIANT)" == "MSVC2005" || "$(MSVC_VARIANT)" == "MSVC2005EE" || "$(MSVC_VARIANT)" == "DOTNET20"
mt.exe -nologo -manifest "$@.manifest" -outputresource:$@;1
!ENDIF
exntest_install:
set copycmd=/y
if exist exntest.exe xcopy exntest.exe $(INSTALL_DIR) /d
tvbtest_install:
set copycmd=/y
if exist tvbtest.exe xcopy tvbtest.exe $(INSTALL_DIR) /d
reassemble_test_install:
set copycmd=/y
if exist reassemble_test.exe xcopy reassemble_test.exe $(INSTALL_DIR) /d
#
# Compile some time critical code from assembler if NASM available
#
!IFDEF NASM
asm_utils_win32_x86.obj: asm_utils_win32_x86.asm
$(NASM) -f win32 -o $@ $?
!ENDIF
# (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
inet_ntop.c: ..\inet_ntop.c
xcopy ..\inet_ntop.c . /d
inet_pton.c: ..\inet_pton.c
xcopy ..\inet_pton.c . /d
sminmpec.c: enterprise-numbers make-sminmpec.pl
$(PERL) make-sminmpec.pl enterprise-numbers sminmpec.c
RUNLEX=..\tools\runlex.sh
diam_dict_lex.h: diam_dict.c
diam_dict.obj : diam_dict.c
dtd_parse_lex.h: dtd_parse.c
dtd_parse.obj : dtd_parse.c
dtd_preparse.obj : dtd_preparse.c
dtd_preparse_lex.h: dtd_preparse.c
radius_dict_lex.h: radius_dict.c
radius_dict.obj : radius_dict.c
uat_load_lex.h: uat_load.c
uat_load.obj : uat_load.c
LEMON=..\tools\lemon
dtd_grammar.h: dtd_grammar.c
dtd_grammar.c: $(LEMON)\lemon.exe $(LEMON)\lempar.c dtd_grammar.lemon
$(LEMON)\lemon t=$(LEMON)\lempar.c dtd_grammar.lemon