aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile.nmake
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.nmake')
-rw-r--r--Makefile.nmake67
1 files changed, 62 insertions, 5 deletions
diff --git a/Makefile.nmake b/Makefile.nmake
index ff250f62dc..0a524345d3 100644
--- a/Makefile.nmake
+++ b/Makefile.nmake
@@ -1,7 +1,7 @@
## Makefile for building ethereal.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
-# $Id: Makefile.nmake,v 1.246 2002/10/31 07:12:23 guy Exp $
+# $Id: Makefile.nmake,v 1.247 2002/10/31 22:16:01 guy Exp $
include config.nmake
include <win32.mak>
@@ -321,6 +321,13 @@ DISSECTOR_SRC = \
DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
+TETHEREAL_TAP_SRC = \
+ tap-dcerpcstat.c \
+ tap-rpcstat.c \
+ tap-rpcprogs.c
+
+TETHEREAL_TAP_OBJECTS = $(TETHEREAL_TAP_SRC:.c=.obj)
+
ETHEREAL_COMMON_OBJECTS = \
afn.obj \
asn1.obj \
@@ -342,9 +349,6 @@ ETHEREAL_COMMON_OBJECTS = \
register.obj \
ringbuffer.obj \
tap.obj \
- tap-dcerpcstat.obj \
- tap-rpcstat.obj \
- tap-rpcprogs.obj \
util.obj \
xdlc.obj \
xmlstub.obj \
@@ -361,6 +365,8 @@ ethereal_OBJECTS = \
tethereal_OBJECTS = \
$(DISSECTOR_OBJECTS) \
$(ETHEREAL_COMMON_OBJECTS) \
+ $(TETHEREAL_TAP_OBJECTS) \
+ tethereal-tap-register.obj \
tethereal.obj
dftest_OBJECTS = \
@@ -498,15 +504,66 @@ packet-ncp2222.c : ncp2222.py
touch packet-ncp.c $@
!ENDIF
+#
+# Build "register.c", which contains a function "register_all_protocols()"
+# that calls the register routines for all protocols.
+#
+# We do this by grepping 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 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)
+ @sh make-reg-dotc register.c . $(DISSECTOR_SRC)
!ENDIF
+#
+# Build "tethereal-tap-register.c", which contains a function
+# "register_all_tap_listeners()"
+# that calls the register routines for all tehtereal tap listeners.
+#
+# We do this by grepping through sources.
+#
+# Formatting conventions: The name of the tap_listener_register_*
+# routines must start in column zero, or must be preceded only by
+# "void " starting in column zero, and must not be inside #if.
+#
+# 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.
+#
+tethereal-tap-register.c: $(TETHEREAL_TAP_SRC)
+ @echo Making tethereal-tap-register.c
+ @sh make-tapreg-dotc tethereal-tap-register.c . $(TETHEREAL_TAP_SRC)
+
text2pcap-scanner.c : text2pcap-scanner.l
$(LEX) -otext2pcap-scanner.c text2pcap-scanner.l