Ethereal-dev: Re: [Ethereal-dev] Move dissectors into libethereal

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Lars Roland <lars.roland@xxxxxxx>
Date: Tue, 02 Mar 2004 15:05:19 +0100
Hello Joerg

I made the MSVC build work again. Patch is attached. Please check in.

It is problematic to have sources and makefiles in different directories when you use MSVC. Moving dissectors and helpers to epan/packet/ would make it less complicated.

Best Regards,

Lars Roland

Joerg Mayer schrieb:
I've just checked in a patch to link the dissectors into libethereal
instead of each executable individually. It dowsn't change anything
on the static/shared library thing for now.

2do:
- check whether my changes to the Makefile.nmake files are
  complete and correct
- verify things still work with non-default configure options
- make use of epan/Makefile.common for other stuff
- move libdfilter and libftypes into libethereal
- find a better solution to the plugin stuff (currently, the
  checks are done in . for the object files and in epan for the
  source files)
- move epan/configure.in into configure.in (maybe)
- make libwiretap and libethereal shared libraries
- move dissectors and helpers to epan/packet/ and clean up includes

 Ciao
                 Jörg
Index: Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/Makefile.nmake,v
retrieving revision 1.408
diff -u -r1.408 Makefile.nmake
--- Makefile.nmake	2 Mar 2004 01:21:56 -0000	1.408
+++ Makefile.nmake	2 Mar 2004 13:37:48 -0000
@@ -240,7 +240,7 @@
 clean: gtk2_distclean
 	rm -f $(ethereal_OBJECTS) $(tethereal_OBJECTS) $(EXTRA_OBJECTS) \
 		$(EXECUTABLES) $(PDB_FILE) \
-		editcap.obj mergecap.obj text2pcap.obj \
+		editcap.obj mergecap.obj text2pcap.obj getopt.obj\
 		text2pcap-scanner.obj text2pcap-scanner.c rdps.obj \
 		rdps.pdb config.h ps.c \
 		rdps.exe rdps.ilk dftest.obj dftest.exe randpkt.obj randpkt.ext \
@@ -319,7 +319,7 @@
 	$(MAKE) /$(MAKEFLAGS) /f Makefile.nmake GTK_CFLAGS="$(GTK2_CFLAGS)" GTK_LIBS="$(GTK2_LIBS)" libui.lib
 	cd ..
 
-epan::
+epan:: packet-ncp2222.c x11-declarations.h x11-register-info.h
 	cd epan
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake
 	cd ..
Index: epan/Makefile.nmake
===================================================================
RCS file: /cvsroot/ethereal/epan/Makefile.nmake,v
retrieving revision 1.34
diff -u -r1.34 Makefile.nmake
--- epan/Makefile.nmake	2 Mar 2004 01:21:56 -0000	1.34
+++ epan/Makefile.nmake	2 Mar 2004 13:37:49 -0000
@@ -5,24 +5,39 @@
 
 include ..\config.nmake
 
-include Makefile.common
+
 
 ############### no need to modify below this line #########
 
 CFLAGS=-DHAVE_CONFIG_H /I. /I.. /I../wiretap $(GLIB_CFLAGS) \
 	$(ADNS_CFLAGS) $(PCRE_CFLAGS) /I$(PCAP_DIR)\include \
+	/I$(NET_SNMP_DIR)\include /I$(NET_SNMP_DIR)\win32 \
 	-D_U_="" $(LOCAL_CFLAGS)
 
 CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL
 
+#.c.obj::
+#	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
+	
 # For use when making ethereal.dll
 libethereal_LIBS = \
 	wsock32.lib user32.lib \
 	$(GLIB_LIBS)
+	
+include Makefile.common
+
+DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj)
+DISSECTOR_OBJECTS = $(DISSECTOR_OBJECTS:../=)
+
+DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj)
+DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_OBJECTS:../=)
 
 .c.obj::
+	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $(DISSECTOR_SRC)
+	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $(DISSECTOR_SUPPORT_SRC)
 	$(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $<
 
+
 OBJECTS=atalk-utils.obj	\
 	bitswap.obj	\
 	circuit.obj     \
@@ -46,19 +61,19 @@
 	strutil.obj      \
 	to_str.obj	\
 	tvbuff.obj       \
-	value_string.obj \
-	$(DISSECTOR_OBJECTS)	\
-	$(DISSECTOR_SUPPORT_OBJECTS)
+	value_string.obj 
+#	$(DISSECTOR_OBJECTS)	\
+#	$(DISSECTOR_SUPPORT_OBJECTS)
 
 
 all: ftypes dfilter ethereal.lib
 
 # For use when making ethereal.dll
-#ethereal.dll ethereal.lib	: config.h $(OBJECTS)
+#ethereal.dll ethereal.lib	: config.h $(OBJECTS) 
 #	link /DLL /out:ethereal.dll $(OBJECTS) $(libethereal_LIBS)
 
-ethereal.lib	: config.h $(OBJECTS)
-	lib /out:ethereal.lib $(OBJECTS)
+ethereal.lib	: config.h $(OBJECTS) $(DISSECTOR_SUPPORT_SRC) $(DISSECTOR_SRC)
+	lib /out:ethereal.lib $(OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) $(DISSECTOR_OBJECTS)
 
 config.h	: config.h.win32 ..\config.nmake
 	sed -e s/@VERSION@/$(VERSION)/ \
@@ -67,7 +82,7 @@
 	    < config.h.win32 > $@
 
 clean:
-	rm -f $(OBJECTS) ethereal.lib $(PDB_FILE)
+	rm -f $(OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) $(DISSECTOR_OBJECTS) ethereal.lib $(PDB_FILE)
 	cd ftypes
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake clean
 	cd ../dfilter
@@ -75,7 +90,7 @@
 	cd ..
 
 distclean: clean
-	rm -f config.h
+	rm -f config.h register.c
 	cd ftypes
 	$(MAKE) /$(MAKEFLAGS) -f Makefile.nmake distclean
 	cd ../dfilter
@@ -127,7 +142,7 @@
 register.c: $(DISSECTOR_SRC)
 !IFDEF PYTHON
 	@echo Making register.c (using python)
-	@$(PYTHON) ../make-reg-dotc.py . $(DISSECTOR_SRC)
+	@$(PYTHON) ..\make-reg-dotc.py . $(DISSECTOR_SRC)
 !ELSE
 	@echo Making register.c (using sh)
 	@$(SH) ../make-reg-dotc register.c . $(DISSECTOR_SRC)