Ethereal-dev: [Ethereal-dev] Shared libs for Unix - Take 4

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

From: Joerg Mayer <jmayer@xxxxxxxxx>
Date: Mon, 8 Mar 2004 02:36:26 +0100
This is the second iteration of the patch. It has been tested on
Suse Linux 9.0 and Solaris 2.8 Testing on Solaris revealed a mistake,
so here is take 4 to fix it (aton_inet.o -> aton_inet.lo - it's even
in the automake docs).
Todo:
- move libdfilter.so and libftypes.so into libethereal.so (myself)
- put a note into some README that libethereal is still GPL, not
  LGPL (myself)
- Test at least on MacOS X (Guy)
- anyone willing to test on HP/UX and AIX?
Note to testers: When I did the test on Solaris, I did use a source
tarball generated on a current Linux system with "make dist". That way
I didn't have to update the whole auto... stuff.

  Ciao
     Jörg

PS: I currently consinder this to be the version to commit, unless
   problems are found (or I quickly find a solution how to
   properly integrate dfilter and ftypes into libethereal).
-- 
Joerg Mayer                                           <jmayer@xxxxxxxxx>
We are stuck with technology when what we really want is just stuff that
works. Some say that should read Microsoft instead of technology.
Index: Makefile.am
===================================================================
RCS file: /usr/local/cvsroot/ethereal/Makefile.am,v
retrieving revision 1.718
diff -p -u -r1.718 Makefile.am
--- Makefile.am	4 Mar 2004 08:26:20 -0000	1.718
+++ Makefile.am	8 Mar 2004 01:11:59 -0000
@@ -189,11 +189,11 @@ ethereal_optional_objects = @SNPRINTF_O@
 # Additional libs that I know how to build. These will be
 # linked into the ethereal executable.
 ethereal_additional_libs = \
-	wiretap/libwiretap.a	\
+	wiretap/libwiretap.la	\
 	gtk/libui.a		\
-	epan/libethereal.a	\
-	epan/ftypes/libftypes.a \
-	epan/dfilter/libdfilter.a
+	epan/libethereal.la	\
+	epan/ftypes/libftypes.la \
+	epan/dfilter/libdfilter.la
 
 # This is the automake dependency variable for the executable
 ethereal_DEPENDENCIES = \
@@ -220,16 +220,16 @@ ethereal_LDADD = \
 	$(ethereal_additional_libs)	\
 	@SNMP_LIBS@ @SSL_LIBS@ 		\
 	$(plugin_ldadd)			\
-	@PCRE_LIBS@ \
+	@PCRE_LIBS@			\
 	@PCAP_LIBS@ @GTK_LIBS@ @ADNS_LIBS@
 
 # Additional libs that I know how to build. These will be
 # linked into the tethereal executable.
 tethereal_additional_libs =		\
-	wiretap/libwiretap.a		\
-	epan/libethereal.a		\
-	epan/ftypes/libftypes.a		\
-	epan/dfilter/libdfilter.a
+	wiretap/libwiretap.la		\
+	epan/libethereal.la		\
+	epan/ftypes/libftypes.la	\
+	epan/dfilter/libdfilter.la
 
 # This is the automake dependency variable for the executable
 tethereal_DEPENDENCIES = \
@@ -243,7 +243,7 @@ tethereal_LDADD = \
 	$(tethereal_additional_libs)	\
 	@SNMP_LIBS@ @SSL_LIBS@		\
 	$(plugin_ldadd)			\
-	@PCRE_LIBS@ \
+	@PCRE_LIBS@			\
 	@GLIB_LIBS@ -lm			\
 	@PCAP_LIBS@ @SOCKET_LIBS@ @NSL_LIBS@ @ADNS_LIBS@
 
@@ -263,24 +263,25 @@ text2pcap_DEPENDENCIES = text2pcap.h
 text2pcap_LDADD = $(text2pcap_optional_objects) \
 	@GLIB_LIBS@ -lm
 
-mergecap_DEPENDENCIES = wiretap/libwiretap.a
+mergecap_DEPENDENCIES = wiretap/libwiretap.la
 
 # This is the automake dependency variable for the executable
-editcap_DEPENDENCIES = wiretap/libwiretap.a
+editcap_DEPENDENCIES = wiretap/libwiretap.la
 
 # This automake variable adds to the link-line for the executable
-editcap_LDADD = wiretap/libwiretap.a @GLIB_LIBS@
-mergecap_LDADD = wiretap/libwiretap.a @GLIB_LIBS@
+editcap_LDADD = wiretap/libwiretap.la @GLIB_LIBS@
+mergecap_LDADD = wiretap/libwiretap.la @GLIB_LIBS@
 
 # Common headers
 AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/wiretap
 
-.PHONY:	cvsversion.h
-
 #
 # Build the version string
 #
-cvsversion.h:
+# FORCE is the portable version of .PHONY
+FORCE:
+
+cvsversion.h: FORCE
 	$(PERL) $(srcdir)/make-version.pl
 
 #
@@ -318,7 +319,7 @@ ps.c: print.ps rdps
 rdps: rdps.c
 	$(CC) $(CFLAGS) -o rdps $(srcdir)/rdps.c
 
-randpkt_additional_libs = wiretap/libwiretap.a
+randpkt_additional_libs = wiretap/libwiretap.la
 
 randpkt_DEPENDENCIES = \
 	$(randpkt_additional_libs)
@@ -329,10 +330,10 @@ randpkt_LDADD = \
 	@PCAP_LIBS@ @SOCKET_LIBS@ @NSL_LIBS@ @ADNS_LIBS@
 
 dftest_additional_libs =		\
-	wiretap/libwiretap.a		\
-	epan/libethereal.a		\
-	epan/ftypes/libftypes.a		\
-	epan/dfilter/libdfilter.a
+	wiretap/libwiretap.la		\
+	epan/libethereal.la		\
+	epan/ftypes/libftypes.la	\
+	epan/dfilter/libdfilter.la
 
 dftest_DEPENDENCIES = \
 	$(ethereal_optional_objects)	\
@@ -388,6 +389,7 @@ EXTRA_DIST = \
 	cleanbld.bat		\
 	config.h.win32		\
 	config.nmake		\
+	cvsversion.h		\
 	debian/README.debian	\
 	debian/changelog	\
 	debian/control		\
Index: Makefile.common
===================================================================
RCS file: /usr/local/cvsroot/ethereal/Makefile.common,v
retrieving revision 1.28
diff -p -u -r1.28 Makefile.common
--- Makefile.common	5 Mar 2004 10:29:35 -0000	1.28
+++ Makefile.common	8 Mar 2004 01:11:59 -0000
@@ -240,8 +240,9 @@ DISSECTOR_SUPPORT_INCLUDES =	\
 	xmlstub.h
 
 # "BUILT_SOURCES" are built before any "make all" or "make check" targets.
-BUILT_SOURCES =		\
-	cvsversion.h
+BUILT_SOURCES =	
+
+#	cvsversion.h
 
 # sources common for ethereal and tethereal
 ETHEREAL_COMMON_SRC =	\
Index: epan/Makefile.am
===================================================================
RCS file: /usr/local/cvsroot/ethereal/epan/Makefile.am,v
retrieving revision 1.38
diff -p -u -r1.38 Makefile.am
--- epan/Makefile.am	6 Mar 2004 03:25:10 -0000	1.38
+++ epan/Makefile.am	8 Mar 2004 01:12:00 -0000
@@ -29,13 +29,15 @@ SUBDIRS = ftypes dfilter
 
 ACLOCAL_AMFLAGS = `../aclocal-flags`
 
-noinst_LIBRARIES = libethereal.a
+#noinst_LIBRARIES = libethereal.a
+lib_LTLIBRARIES = libethereal.la
+libethereal_la_LDFLAGS = -version-info 0:1:0
 
 include Makefile.common
 
 INCLUDES = -I$(srcdir)/..
 
-libethereal_a_SOURCES = \
+libethereal_la_SOURCES = \
 	addr_and_mask.c		\
 	addr_and_mask.h		\
 	atalk-utils.c		\
@@ -93,7 +95,7 @@ libethereal_a_SOURCES = \
 	$(DISSECTOR_SRC)        \
 	$(DISSECTOR_SUPPORT_SRC)
 
-EXTRA_libethereal_a_SOURCES =	\
+EXTRA_libethereal_la_SOURCES =	\
         inet_aton.c		\
 	inet_pton.c		\
 	inet_ntop.c		\
@@ -103,7 +105,9 @@ EXTRA_libethereal_a_SOURCES =	\
 EXTRA_DIST = \
 	config.h.win32		\
 	Makefile.nmake		\
-	tvbtest.c
+	tvbtest.c		\
+	x11-declarations.h	\
+	x11-register-info.h
 
 CLEANFILES = \
 	libethereal.a	\
@@ -116,8 +120,8 @@ MAINTAINERCLEANFILES =	\
 #
 # Add the object files for missing routines, if any.
 #
-libethereal_a_LIBADD = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@
-libethereal_a_DEPENDENCIES = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@
+libethereal_la_LIBADD = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@
+libethereal_la_DEPENDENCIES = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@
 
 ../packet-ncp2222.c : $(srcdir)/../ncp2222.py
 	$(PYTHON) $(srcdir)/../ncp2222.py -o $@
Index: epan/configure.in
===================================================================
RCS file: /usr/local/cvsroot/ethereal/epan/configure.in,v
retrieving revision 1.65
diff -p -u -r1.65 configure.in
--- epan/configure.in	4 Mar 2004 08:53:02 -0000	1.65
+++ epan/configure.in	8 Mar 2004 01:12:00 -0000
@@ -179,10 +179,10 @@ else
 fi
 
 AC_CHECK_FUNC(inet_aton, INET_ATON_O="",
-  INET_ATON_O="inet_aton.o")
+  INET_ATON_O="inet_aton.lo")
 if test "$ac_cv_func_inet_aton" = no ; then
   INET_ATON_C="inet_aton.c"
-  INET_ATON_O="inet_aton.o"
+  INET_ATON_O="inet_aton.lo"
   AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
 fi
 AC_SUBST(INET_ATON_C)
@@ -211,7 +211,7 @@ have_inet_pton=no])],
 have_inet_pton=no)
 if test "$have_inet_pton" = no; then
   INET_PTON_C="inet_pton.c"
-  INET_PTON_O="inet_pton.o"
+  INET_PTON_O="inet_pton.lo"
 else
   INET_PTON_C=""
   INET_PTON_O=""
@@ -244,7 +244,7 @@ extern const char *inet_ntop(int, const 
       AC_MSG_RESULT(no)])])
   INET_NTOP_O=""], [
   INET_NTOP_C="inet_ntop.c"
-  INET_NTOP_O="inet_ntop.o"
+  INET_NTOP_O="inet_ntop.lo"
   AC_DEFINE(NEED_INET_V6DEFS_H, 1,
   [Define if inet/v6defs.h needs to be included])])
 AC_SUBST(INET_NTOP_C)
Index: epan/dfilter/Makefile.am
===================================================================
RCS file: /usr/local/cvsroot/ethereal/epan/dfilter/Makefile.am,v
retrieving revision 1.9
diff -p -u -r1.9 Makefile.am
--- epan/dfilter/Makefile.am	5 Mar 2001 22:53:39 -0000	1.9
+++ epan/dfilter/Makefile.am	8 Mar 2004 01:12:00 -0000
@@ -25,7 +25,9 @@
 # shared library, this will be linked into libethereal. While libethereal
 # is an archive library, any executable linking against libethereal will
 # also need to link against libftypes.
-noinst_LIBRARIES = libdfilter.a
+#noinst_LIBRARIES = libdfilter.a
+lib_LTLIBRARIES = libdfilter.la
+libdfilter_la_LDFLAGS = -version-info 0:1:0
 
 CLEANFILES = \
 	libdfilter.a		\
@@ -33,7 +35,7 @@ CLEANFILES = \
 
 INCLUDES = -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/$(LEMON)
 
-libdfilter_a_SOURCES = \
+libdfilter_la_SOURCES = \
 	dfilter.c		\
 	dfilter.h		\
 	dfilter-int.h		\
Index: epan/ftypes/Makefile.am
===================================================================
RCS file: /usr/local/cvsroot/ethereal/epan/ftypes/Makefile.am,v
retrieving revision 1.5
diff -p -u -r1.5 Makefile.am
--- epan/ftypes/Makefile.am	9 Dec 2003 23:02:39 -0000	1.5
+++ epan/ftypes/Makefile.am	8 Mar 2004 01:12:00 -0000
@@ -25,7 +25,10 @@
 # shared library, this will be linked into libethereal. While libethereal
 # is an archive library, any executable linking against libethereal will
 # also need to link against libftypes.
-noinst_LIBRARIES = libftypes.a
+#noinst_LIBRARIES = libftypes.a
+lib_LTLIBRARIES = libftypes.la
+libftypes_la_LDFLAGS = -version-info 0:1:0
+
 
 CLEANFILES = \
 	libftypes.a	\
@@ -33,7 +36,7 @@ CLEANFILES = \
 
 INCLUDES = -I$(srcdir)/../.. -I$(srcdir)/..
 
-libftypes_a_SOURCES =	\
+libftypes_la_SOURCES =	\
 	ftypes.c	\
 	ftypes.h	\
 	ftypes-int.h	\
Index: wiretap/Makefile.am
===================================================================
RCS file: /usr/local/cvsroot/ethereal/wiretap/Makefile.am,v
retrieving revision 1.50
diff -p -u -r1.50 Makefile.am
--- wiretap/Makefile.am	6 Mar 2004 21:46:27 -0000	1.50
+++ wiretap/Makefile.am	8 Mar 2004 01:12:00 -0000
@@ -1,7 +1,7 @@
 # Makefile.am
 # Automake file for Wiretap
 #
-# $Id: Makefile.am,v 1.50 2004/03/06 21:46:27 guy Exp $
+# $Id: Makefile.am,v 1.49 2004/02/11 20:05:15 guy Exp $
 #
 # Ethereal - Network traffic analyzer
 # By Gerald Combs <gerald@xxxxxxxxxxxx>
@@ -23,19 +23,21 @@
 
 ACLOCAL_AMFLAGS = `../aclocal-flags`
 
-noinst_LIBRARIES = libwiretap.a
-
+#noinst_LIBRARIES = libwiretap.a
 #EXTRA_LIBRARIES = libwiretap.a
 
+lib_LTLIBRARIES = libwiretap.la
+libwiretap_la_LDFLAGS = -version-info 0:1:0
+
 CLEANFILES = \
 	libwiretap.a		\
 	*~
 
-MAINTAINERCLEANFILES =	\
+MAINTAINERCLEANFILES = \
 	ascend-grammar.c \
 	ascend-grammar.h
 
-libwiretap_a_SOURCES = \
+libwiretap_la_SOURCES = \
 	airopeek9.c		\
 	airopeek9.h		\
 	ascend-grammar.y	\