From Kovarththanan Rajaratnam via bug 3500:
[obnox/wireshark/wip.git] / epan / Makefile.nmake
index 7951a54179fcf195031453460994d9559b87a594..77f5fa026e2630a2fdbbbc1b67dc022ac5e55531 100644 (file)
@@ -11,9 +11,12 @@ 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)
+# We use GENERATED_CFLAGS to get around flex's non-LLP64-compliant output
+GENERATED_CFLAGS=-DHAVE_CONFIG_H /I. /I.. /I../wiretap $(GLIB_CFLAGS) \
+       $(ZLIB_CFLAGS) $(C_ARES_CFLAGS) $(ADNS_CFLAGS) $(PCRE_CFLAGS) \
+       $(GNUTLS_CFLAGS) /I$(PCAP_DIR)\include \
+       $(SMI_CFLAGS) $(GEOIP_CFLAGS) -D_U_="" $(LOCAL_CFLAGS)
+CFLAGS=-WX $(GENERATED_CFLAGS)
 
 CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
 
@@ -25,9 +28,18 @@ WSLUA_LIB=
 WSLUA_DIR=
 !ENDIf
 
+!IFDEF PYTHON_DIR
+WSPYTHON_LIB=wspython\wspython.lib
+WSPYTHON_DIR=wspython
+!ELSE
+WSPYTHON_LIB=
+WSPYTHON_DIR=
+!ENDIf
+
 # For use when making libwireshark.dll
 libwireshark_LIBS = \
        $(GLIB_LIBS)    \
+       $(C_ARES_LIBS) \
        $(ADNS_LIBS) \
        $(PCRE_LIBS) \
        $(KFW_LIBS) \
@@ -35,13 +47,17 @@ libwireshark_LIBS = \
        $(ZLIB_LIBS) \
        $(GNUTLS_LIBS) \
        $(LUA_LIBS) \
+       $(PYTHON_LIBS) \
        $(SMI_LIBS) \
+       $(GEOIP_LIBS) \
+       ..\wsutil\libwsutil.lib \
        ..\wiretap\wiretap-$(WTAP_VERSION).lib \
-       $(ICONV_DIR)\lib\iconv.lib \
+       crc\crc.lib \
        crypt\airpdcap.lib \
        ftypes\ftypes.lib \
        dfilter\dfilter.lib \
        $(WSLUA_LIB) \
+       $(WSPYTHON_LIB) \
        dissectors\dissectors.lib
 
 .c.obj::
@@ -50,51 +66,39 @@ libwireshark_LIBS = \
 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
+!IF defined(NASM) && "$(WIRESHARK_TARGET_PLATFORM)" == "win32"
        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
+all: crc crypt ftypes dfilter $(WSLUA_DIR) $(WSPYTHON_DIR) dissectors libwireshark.dll
 !ELSE
-all: crypt ftypes dfilter $(WSLUA_DIR) dissectors libwireshark.lib
+all: crc crypt ftypes dfilter $(WSLUA_DIR) $(WSPYTHON_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
+libwireshark.dll: ..\config.h $(LIBWIRESHARK_OBJECTS) libwireshark.def crc crypt ftypes dfilter $(WSLUA_DIR) $(WSPYTHON_DIR) dissectors $(DOXYGEN_DEP) $(EXTRA_OBJECTS) \
+                 crc\crc.lib crypt\airpdcap.lib ftypes\ftypes.lib dfilter\dfilter.lib dissectors\dissectors.lib $(WSLUA_LIB) $(WSPYTHON_LIB) ..\image\libwireshark.res
        @echo Linking libwireshark.dll
        $(link) $(dlllflags) $(conlibsdll) shell32.lib \
-               $(LOCAL_LDFLAGS) \
+               $(LOCAL_LDFLAGS) $(DLL_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
+libwireshark.lib       : ..\config.h $(LIBWIRESHARK_OBJECTS) crc crypt ftypes dfilter $(WSLUA_DIR) $(WSPYTHON_DIR) dissectors $(DOXYGEN_DEP) $(EXTRA_OBJECTS) \
+                  crc\crc.lib crypt\airpdcap.lib ftypes\ftypes.lib dfilter\dfilter.lib $(WSLUA_LIB) $(WSPYTHON_LIB) dissectors\dissectors.lib
        link /lib /out:libwireshark.lib $(LIBWIRESHARK_OBJECTS) \
                $(EXTRA_OBJECTS)
 
@@ -105,13 +109,15 @@ libwireshark.lib  : ..\config.h $(LIBWIRESHARK_OBJECTS) crypt ftypes dfilter $(WS
 
 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/*.* \
+               libwireshark.lib libwireshark.dll *.manifest libwireshark.exp \
+               *.pdb doxygen.cfg html/*.* \
                exntest.obj exntest.exe reassemble_test.obj reassemble_test.exe tvbtest.obj tvbtest.exe
-       if exist html rmdir html        
+       if exist html rmdir html
 
 clean:  clean-local
-       cd crypt
+       cd crc
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
+       cd ../crypt
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
        cd ../ftypes
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
@@ -121,6 +127,8 @@ clean:  clean-local
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
        cd ../wslua
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
+       cd ../wspython
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
        cd ..
 
 #
@@ -133,16 +141,17 @@ clean:  clean-local
 # the same for now.
 #
 distclean-local: clean-local
-       rm -f config.h register.c mkstemp.c strptime.c \
-               inet_ntop.c inet_pton.c \
+       rm -f config.h register.c mkstemp.c \
                $(LIBWIRESHARK_DISTCLEAN_GENERATED_SRC) \
                $(LIBWIRESHARK_DISTCLEAN_GENERATED_INCLUDES) \
                $(LIBWIRESHARK_NODISTCLEAN_GENERATED_SRC) \
                $(LIBWIRESHARK_NODISTCLEAN_GENERATED_INCLUDES) \
-               dtd_grammar.out sminmpec.c 
+               dtd_grammar.out sminmpec.c
 
 distclean: distclean-local
-       cd crypt
+       cd crc
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
+       cd ../crypt
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
        cd ../ftypes
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
@@ -152,12 +161,16 @@ distclean: distclean-local
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
        cd ../wslua
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
+       cd ../wspython
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
        cd ..
 
 maintainer-clean-local: distclean-local
 
 maintainer-clean: maintainer-clean-local
-       cd crypt
+       cd crc
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+       cd ../crypt
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
        cd ../ftypes
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
@@ -167,6 +180,13 @@ maintainer-clean: maintainer-clean-local
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
        cd ../wslua
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+       cd ../wspython
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake maintainer-clean
+       cd ..
+
+crc:: ..\config.h
+       cd crc
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
        cd ..
 
 crypt:: ..\config.h
@@ -194,6 +214,11 @@ wslua:: ..\config.h
        $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
        cd ..
 
+wspython:: ..\config.h
+       cd wspython
+       $(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
+       cd ..
+
 doxygen.cfg: ..\config.nmake doxygen.cfg.in
        sed -e s/@VERSION@/$(VERSION)/ \
            < doxygen.cfg.in > $@
@@ -210,31 +235,47 @@ exntest: exntest.exe
 reassemble_test: reassemble_test.exe
 tvbtest: tvbtest.exe
 
+# Object files for exntest
+EXNTEST_OBJ=exntest.obj except.obj
 
-
-exntest.exe: exntest.obj except.obj
+exntest.exe: $(EXNTEST_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" 
+               $(GLIB_LIBS) $(EXNTEST_OBJ)
+!IFDEF MANIFEST_INFO_REQUIRED
        mt.exe -nologo -manifest "$@.manifest" -outputresource:$@;1
 !ENDIF
 
-tvbtest.exe: tvbtest.obj tvbuff.obj except.obj strutil.obj emem.obj
+# Object files for tvbtest
+TVBTEST_OBJ=tvbtest.obj \
+       tvbuff.obj \
+       except.obj \
+       to_str.obj \
+       strutil.obj \
+       emem.obj
+
+tvbtest.exe: $(TVBTEST_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" 
+               $(GLIB_LIBS) $(ZLIB_LIBS) $(TVBTEST_OBJ)
+!IFDEF MANIFEST_INFO_REQUIRED
        mt.exe -nologo -manifest "$@.manifest" -outputresource:$@;1
 !ENDIF
 
-reassemble_test.exe: reassemble_test.obj tvbuff.obj except.obj strutil.obj emem.obj \
-                 reassemble.obj
+# Object files for reassemble_test
+REASSEMBLE_TEST_OBJ=reassemble_test.obj \
+       tvbuff.obj \
+       except.obj \
+       to_str.obj \
+       strutil.obj \
+       emem.obj \
+       reassemble.obj
+
+reassemble_test.exe: $(REASSEMBLE_TEST_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" 
+                $(GLIB_LIBS) $(ZLIB_LIBS) $(REASSEMBLE_TEST_OBJ)
+!IFDEF MANIFEST_INFO_REQUIRED
        mt.exe -nologo -manifest "$@.manifest" -outputresource:$@;1
 !ENDIF
 
@@ -252,53 +293,43 @@ reassemble_test_install:
 
 
 #
-# Compile some time crtical code from assembler if NASM available
+# 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 $@ $?
+       $(NASM) -f $(WIRESHARK_TARGET_PLATFORM) -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
+sminmpec.c: enterprise-numbers ..\tools\make-sminmpec.pl
+       $(PERL) ../tools/make-sminmpec.pl enterprise-numbers sminmpec.c
 
 RUNLEX=..\tools\runlex.sh
+
 diam_dict_lex.h: diam_dict.c
 diam_dict.obj : diam_dict.c
+       $(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $?
 
 dtd_parse_lex.h: dtd_parse.c
 dtd_parse.obj : dtd_parse.c
+       $(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $?
 
-dtd_preparse.obj : dtd_preparse.c
 dtd_preparse_lex.h: dtd_preparse.c
+dtd_preparse.obj : dtd_preparse.c
+       $(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $?
 
 radius_dict_lex.h: radius_dict.c
 radius_dict.obj : radius_dict.c
+       $(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $?
 
 uat_load_lex.h: uat_load.c
 uat_load.obj : uat_load.c
+       $(CC) $(CVARSDLL) $(GENERATED_CFLAGS) -Fd.\ -c $?
 
 LEMON=..\tools\lemon
 
 dtd_grammar.h: dtd_grammar.c
-dtd_grammar.c: dtd_grammar.lemon $(LEMON)\lemon.exe
+dtd_grammar.c: $(LEMON)\lemon.exe $(LEMON)\lempar.c dtd_grammar.lemon
        $(LEMON)\lemon t=$(LEMON)\lempar.c dtd_grammar.lemon
 
+checkapi:
+       $(PERL) ../tools/checkAPIs.pl -g termoutput $(LIBWIRESHARK_SRC)