## Makefile for building ethereal.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=-DHAVE_CONFIG_H /I. /I.. /I../.. $(GLIB_CFLAGS) \ /I$(NET_SNMP_DIR)\include /I$(NET_SNMP_DIR)\win32 \ $(PCRE_CFLAGS) $(NETTLE_CFLAGS) \ /I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS) CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL .c.obj:: $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $< #DISSECTOR_SRC = $(DISSECTOR_SRC:../=) DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj) DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj) #dissectors.lib: ../../config.h $(DISSECTOR_OBJECTS) $(EXTRA_OBJECTS) dissectors.lib: register.obj packet-ncp2222.c $(GENERATED_HEADER_FILES) ../../config.h $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) @echo Linking dissectors.lib link /lib /out:dissectors.lib $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) # # The header files listed here are built from x11-fields using Perl; # we declare a dependency here so that they get built. # packet-x11.obj : packet-x11.c x11-declarations.h x11-register-info.h # # Build various header files for the X11 dissector. # x11-declarations.h x11-register-info.h: x11-fields process-x11-fields.pl $(PERL) process-x11-fields.pl proto_register_aarp, etc.). # # Formatting conventions: The name of the proto_register_* routines must # start in column zero, or must be preceded only by "void " starting in # column zero, and must not be inside #if. # # We assume that all dissector routines are in "packet-XXX.c" files. # # For some unknown reason, having a big "for" loop in the Makefile # to scan all the "packet-XXX.c" 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 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. # # On Windows, however, that script runs slowly, as multiple greps # and seds are run for each input file, so, if Python is present # (as indicated by PYTHON being defined), we run a faster Python # script to do that work instead. That script doesn't take the name # of the file to write as an argument; it always writes to # "register.c". # register.c: $(DISSECTOR_SRC) !IFDEF PYTHON @echo Making register.c (using python) @$(PYTHON) make-reg-dotc.py . $(DISSECTOR_SRC) !ELSE @echo Making register.c (using sh) @$(SH) make-reg-dotc register.c . $(DISSECTOR_SRC) !ENDIF packet-ncp2222.c : ncp2222.py !IFDEF PYTHON @echo Making packet-ncp2222.c $(PYTHON) 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 clean: rm -f dissectors.lib $(PDB_FILE) \ $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) distclean: clean rm -f $(BUILT_SOURCES) packet-ncp2222.c register.c