Add infrastructure for display filter functions.
[metze/wireshark/wip.git] / epan / dfilter / Makefile.nmake
index 6756a1cb36849b040f725ab12cebf939b1dd32f4..38ac1d7c53ca879c3d7bf09c663af1e72d49721d 100644 (file)
@@ -1,49 +1,78 @@
+## 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 #########
 
 LEMON=..\..\tools\lemon
 
-CFLAGS=/MT /DHAVE_CONFIG_H /I. /I.. /I..\.. /I$(LEMON) \
-       /I$(GLIB_DIR) /I$(GTK_DIR) /I$(GLIB_DIR)\gmodule \
-       /I$(GTK_DIR)\gdk /I$(GTK_DIR)\gdk\win32 \
-       /I$(PCAP_DIR)\include $(LOCAL_CFLAGS)
+CFLAGS=-DHAVE_CONFIG_H /I. /I.. /I..\.. /I$(LEMON) \
+       $(GLIB_CFLAGS) $(PCRE_CFLAGS) /I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS)
 
+CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
 
-{$S}.c{$O}.obj::
-   $(CC) $(CFLAGS) -Fd$O\ -c $<
+.c.obj::
+   $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
 
 
 OBJECTS = \
        dfilter.obj             \
+       dfunctions.obj  \
        dfvm.obj                \
+       drange.obj              \
        gencode.obj             \
        glib-util.obj           \
        grammar.obj             \
        scanner.obj             \
        semcheck.obj            \
+       sttype-function.obj     \
+       sttype-integer.obj      \
        sttype-pointer.obj      \
        sttype-range.obj        \
        sttype-string.obj       \
        sttype-test.obj         \
        syntax-tree.obj
 
-
 dfilter.lib    : $(OBJECTS)
-       lib /out:dfilter.lib $(OBJECTS)
+       link /lib /out:dfilter.lib $(OBJECTS)
 
+$(OBJECTS): ..\..\config.h
 
-clean:
-       rm -f $(OBJECTS) scanner.c grammar.c grammar.h grammar.out dfilter.lib
-
+..\..\config.h: ..\..\config.h.win32 ..\..\config.nmake
+       cd ..\..
+       $(MAKE) -f Makefile.nmake config.h
+       cd epan\dfilter
 
+clean:
+       rm -f $(OBJECTS) dfilter.lib $(PDB_FILE)
+
+#
+# We remove the generated files with "distclean" because one of them,
+# "scanner.c", needs 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 "scanner.c" from "scanner.l" with Flex.
+# This might not be necessary for "grammar.{c,h}", but we handle them
+# the same for now.
+#
+distclean: clean
+       rm -f scanner.c grammar.c grammar.h grammar.out
+
+maintainer-clean: distclean
 
 scanner.c : scanner.l
        $(LEX) -Pdf_ -oscanner.c scanner.l
 
 scanner.obj : scanner.c grammar.h
 
-grammar.c : grammar.h
-grammar.h : grammar.lemon
+grammar.h : grammar.c
+grammar.c : grammar.lemon $(LEMON)\lemon.exe
        $(LEMON)\lemon.exe t=$(LEMON)\lempar.c grammar.lemon 
 
+$(LEMON)\lemon.exe:
+       cd ../../tools/lemon
+       $(MAKE) -f makefile.nmake
+       cd ../../epan/dfilter