## Makefile for building wireshark.exe with Microsoft C and nmake ## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake # # $Id$ include ..\..\config.nmake ############### no need to modify below this line ######### include Makefile.common CFLAGS= $(WARNINGS_ARE_ERRORS) $(STANDARD_CFLAGS) \ /I. /I.. /I../.. $(GLIB_CFLAGS) \ $(ZLIB_CFLAGS) \ $(GNUTLS_CFLAGS) $(NETTLE_CFLAGS) \ $(KFW_CFLAGS) $(AIRPCAP_CFLAGS) $(GEOIP_CFLAGS) \ /I$(PCAP_DIR)\include .c.obj:: $(CC) $(CFLAGS) -Fd.\ -c $< DISSECTOR_OBJECTS = \ $(ALL_DISSECTORS_SRC:.c=.obj) DISSECTOR_SUPPORT_OBJECTS = \ $(DISSECTOR_SUPPORT_SRC:.c=.obj) dissectors.lib: register.obj packet-ncp2222.c $(GENERATED_HEADER_FILES) ../../config.h $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) @echo Linking dissectors.lib $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) link /lib /out:dissectors.lib $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) !IF "$(MSVC_VARIANT)" != "MSVC2005" && \ "$(MSVC_VARIANT)" != "MSVC2005EE" && \ "$(MSVC_VARIANT)" != "MSVC2008" && \ "$(MSVC_VARIANT)" != "MSVC2008EE" && \ "$(MSVC_VARIANT)" != "MSVC2010" && \ "$(MSVC_VARIANT)" != "MSVC2010EE" # Disable debug for large dissectors packet-rrc.obj : packet-rrc.c $(CC) $(CFLAGS) /Zd /Fd.\ -c $? !ENDIF # # Build register.c, which contains a function register_all_protocols() # that calls the register routines for all protocols and a function # register_all_protocol_handoffs() that calls the handoff registration # routines for all protocols. # # We do this by scanning through sources. If that turns out to be too slow, # maybe we could just require every .o file to have an register routine # of a given name (packet-aarp.o -> proto_register_aarp, etc.). # # Formatting conventions: The name of the proto_register_* routines and # proto_reg_handoff_* routines must start in column zero, or must be # preceded only by "void " starting in column zero, and must not be # inside #if. # # DISSECTOR_SRC is assumed to have all the files that need to be scanned. # # For some unknown reason, having a big "for" loop in the Makefile # to scan all the files doesn't work with some "make"s; they seem to # pass only the first few names in the list to the shell, for some # reason. # # Therefore, we have a script to generate the register.c file. # The shell script runs slowly, as multiple greps and seds are run # for each input file; this is especially slow on Windows. Therefore, # if Python is present (as indicated by PYTHON being defined), we run # a faster Python script to do that work instead. # # The first argument is the directory in which the source files live. # The second argument is "dissectors", to indicate that we should build # a register.c file for libwireshark. # All subsequent arguments are the files to scan. # register.c: $(ALL_DISSECTORS_SRC) Makefile.common ..\..\tools\make-dissector-reg.py ..\..\tools\make-dissector-reg !IFDEF PYTHON @echo Making register.c (using python) @$(PYTHON) "../../tools/make-dissector-reg.py" . dissectors $(ALL_DISSECTORS_SRC) !ELSE @echo Making register.c (using sh) @$(SH) ../../tools/make-dissector-reg . dissectors $(ALL_DISSECTORS_SRC) !ENDIF packet-ncp2222.c: ..\..\tools/ncp2222.py !IFDEF PYTHON @echo Making packet-ncp2222.c $(PYTHON) "../../tools/ncp2222.py" -o packet-ncp2222.c !ELSE @echo Faking packet-ncp2222.c... @echo Python is required to build the NCP disector @echo Hiding packet-ncp.c... mv packet-ncp.c packet-ncp.c.save touch packet-ncp.c $@ !ENDIF packet-ncp2222.obj: packet-ncp2222.inc # Target to rebuild the X11 dissector header files. # See README.X11 before using this--it requires the xcb and mesa source. x11-dissector: ..\..\tools/process-x11-fields.pl x11-fields ..\..\tools/process-x11-xcb.pl $(PERL) ../../tools/process-x11-fields.pl < x11-fields $(PERL) ../../tools/process-x11-xcb.pl clean: rm -f dissectors.lib *.pdb *.sbr register.c-tmp register-cache.pkl \ $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) distclean: clean maintainer-clean: distclean rm -f $(GENERATED_FILES) checkapi: $(PERL) ../../tools/checkAPIs.pl -g abort -g termoutput -build \ $(ALL_DISSECTORS_SRC) $(DISSECTOR_INCLUDES) \ packet-dcerpc-nt.c