I've updated my patch that enables statically linking Ethereal on
some platforms again. I'd really like to receive some feedback before
I submit it.

 Ciao
         J�rg
-- 
Joerg Mayer <[EMAIL PROTECTED]>
You can make it illegal, but you can't make it unpopular.
Index: Makefile.am
===================================================================
RCS file: /usr/local/cvsroot/ethereal/Makefile.am,v
retrieving revision 1.559
diff -p -u -r1.559 Makefile.am
--- Makefile.am 27 Feb 2003 02:45:42 -0000      1.559
+++ Makefile.am 28 Feb 2003 00:08:58 -0000
@@ -65,7 +65,7 @@ bin_SCRIPTS = @idl2eth_bin@
 man1_MANS = @ethereal_man@ @editcap_man@ @mergecap_man@ @tethereal_man@ 
@text2pcap_man@ @idl2eth_man@
 man_MANS =
 
-EXTRA_PROGRAMS = ethereal ethereal_static tethereal tethereal_static editcap mergecap 
dftest text2pcap
+EXTRA_PROGRAMS = ethereal tethereal editcap mergecap dftest text2pcap
 EXTRA_SCRIPTS = idl2eth
 
 #
@@ -406,38 +406,17 @@ DISSECTOR_SRC = \
        packet-zebra.c
 
 if HAVE_PLUGINS
-plugin_src = \
-       plugins/docsis/packet-bpkmattr.c \
-       plugins/docsis/packet-bpkmreq.c \
-       plugins/docsis/packet-bpkmrsp.c \
-       plugins/docsis/packet-docsis.c \
-       plugins/docsis/packet-dsaack.c \
-       plugins/docsis/packet-dsareq.c \
-       plugins/docsis/packet-dsarsp.c \
-       plugins/docsis/packet-dscack.c \
-       plugins/docsis/packet-dscreq.c \
-       plugins/docsis/packet-dscrsp.c \
-       plugins/docsis/packet-dsdreq.c \
-       plugins/docsis/packet-dsdrsp.c \
-       plugins/docsis/packet-macmgmt.c \
-       plugins/docsis/packet-map.c \
-       plugins/docsis/packet-regack.c \
-       plugins/docsis/packet-regreq.c \
-       plugins/docsis/packet-regrsp.c \
-       plugins/docsis/packet-rngreq.c \
-       plugins/docsis/packet-rngrsp.c \
-       plugins/docsis/packet-tlv.c \
-       plugins/docsis/packet-uccreq.c \
-       plugins/docsis/packet-uccrsp.c \
-       plugins/docsis/packet-ucd.c \
-       plugins/giop/packet-cosnaming.c \
-       plugins/giop/packet-coseventcomm.c \
-       plugins/gryphon/packet-gryphon.c \
-       plugins/megaco/packet-megaco.c \
-       plugins/mgcp/packet-mgcp.c \
-       plugins/pcli/packet-pcli.c
+plugin_libs = \
+       plugins/docsis/docsis.la \
+       plugins/giop/cosnaming.la \
+       plugins/giop/coseventcomm.la \
+       plugins/gryphon/gryphon.la \
+       plugins/megaco/megaco.la \
+       plugins/mgcp/mgcp.la \
+       plugins/pcli/pcli.la
 
-plugin_static_ldadd = \
+if ENABLE_STATIC
+plugin_ldadd = \
        plugins/docsis/packet-bpkmattr-static.o \
        plugins/docsis/packet-bpkmreq-static.o \
        plugins/docsis/packet-bpkmrsp-static.o \
@@ -468,15 +447,38 @@ plugin_static_ldadd = \
        plugins/mgcp/packet-mgcp-static.o \
        plugins/pcli/packet-pcli-static.o
 
-plugin_libs = \
-       plugins/docsis/docsis.la \
-       plugins/giop/cosnaming.la \
-       plugins/giop/coseventcomm.la \
-       plugins/gryphon/gryphon.la \
-       plugins/megaco/megaco.la \
-       plugins/mgcp/mgcp.la \
-       plugins/pcli/pcli.la
+plugin_src = \
+       plugins/docsis/packet-bpkmattr.c \
+       plugins/docsis/packet-bpkmreq.c \
+       plugins/docsis/packet-bpkmrsp.c \
+       plugins/docsis/packet-docsis.c \
+       plugins/docsis/packet-dsaack.c \
+       plugins/docsis/packet-dsareq.c \
+       plugins/docsis/packet-dsarsp.c \
+       plugins/docsis/packet-dscack.c \
+       plugins/docsis/packet-dscreq.c \
+       plugins/docsis/packet-dscrsp.c \
+       plugins/docsis/packet-dsdreq.c \
+       plugins/docsis/packet-dsdrsp.c \
+       plugins/docsis/packet-macmgmt.c \
+       plugins/docsis/packet-map.c \
+       plugins/docsis/packet-regack.c \
+       plugins/docsis/packet-regreq.c \
+       plugins/docsis/packet-regrsp.c \
+       plugins/docsis/packet-rngreq.c \
+       plugins/docsis/packet-rngrsp.c \
+       plugins/docsis/packet-tlv.c \
+       plugins/docsis/packet-uccreq.c \
+       plugins/docsis/packet-uccrsp.c \
+       plugins/docsis/packet-ucd.c \
+       plugins/giop/packet-cosnaming.c \
+       plugins/giop/packet-coseventcomm.c \
+       plugins/gryphon/packet-gryphon.c \
+       plugins/megaco/packet-megaco.c \
+       plugins/mgcp/packet-mgcp.c \
+       plugins/pcli/packet-pcli.c
 
+else           # ENABLE_STATIC
 plugin_ldadd = \
        "-dlopen" self  \
        "-dlopen" plugins/docsis/docsis.la \
@@ -486,15 +488,18 @@ plugin_ldadd = \
        "-dlopen" plugins/megaco/megaco.la \
        "-dlopen" plugins/mgcp/mgcp.la \
        "-dlopen" plugins/pcli/pcli.la
-else
+
 plugin_src =
 
-plugin_static_ldadd =
+endif          # ENABLE_STATIC
+
+else           # HAVE_PLUGINS
+plugin_src =
 
 plugin_libs =
 
 plugin_ldadd =
-endif
+endif          # HAVE_PLUGINS
 
 noinst_HEADERS = \
        packet-afp.h   \
@@ -732,26 +737,6 @@ ethereal_SOURCES = \
        summary.h      \
        ui_util.h
 
-ethereal_static_SOURCES = \
-       $(DISSECTOR_SRC) \
-       $(ETHEREAL_COMMON_SRC) \
-       register-static.c     \
-       capture.c      \
-       capture.h      \
-       file.c         \
-       filters.c      \
-       filters.h      \
-       globals.h      \
-       menu.h         \
-       progress_dlg.h \
-       proto_hier_stats.h      \
-       proto_hier_stats.c      \
-       simple_dialog.h \
-       statusbar.h    \
-       summary.c      \
-       summary.h      \
-       ui_util.h
-
 EXTRA_ethereal_SOURCES = \
        snprintf.c      \
        snprintf.h      \
@@ -791,10 +776,6 @@ ethereal_DEPENDENCIES = \
        $(ethereal_additional_libs)     \
        $(plugin_libs)
 
-ethereal_static_DEPENDENCIES = \
-       $(ethereal_optional_objects)    \
-       $(ethereal_additional_libs)
-
 # This automake variable adds to the link-line for the executable.
 #
 # Note that Ethereal doesn't have to be linked with @GLIB_LIBS@, as
@@ -802,6 +783,13 @@ ethereal_static_DEPENDENCIES = \
 # @SOCKET_LIBS@ or @NSL_LIBS@, as those should also be included in
 # @GTK_LIBS@ (as those are also needed for X applications, and GTK+
 # applications are X applications).
+
+if ENABLE_STATIC
+ethereal_LDFLAGS = -Wl,-static -all-static
+else
+ethereal_LDFLAGS = -export-dynamic
+endif
+
 ethereal_LDADD = \
        $(ethereal_optional_objects)    \
        $(ethereal_additional_libs)     \
@@ -809,17 +797,6 @@ ethereal_LDADD = \
        $(plugin_ldadd)                 \
        @PCAP_LIBS@ @GTK_LIBS@
 
-ethereal_static_LDADD = \
-       "-all-static"                   \
-       $(plugin_static_ldadd)          \
-       $(ethereal_optional_objects)    \
-       $(ethereal_additional_libs)     \
-       @SNMP_LIBS@ @SSL_LIBS@          \
-       @PCAP_LIBS@ @GTK_LIBS@
-
-ethereal_LDFLAGS = -export-dynamic
-ethereal_static_LDFLAGS = -Wl,-static
-
 TETHEREAL_TAP_SRC = \
        tap-dcerpcstat.c        \
        tap-iostat.c            \
@@ -838,14 +815,6 @@ tethereal_SOURCES = \
        register.c     \
        tethereal.c
 
-tethereal_static_SOURCES = \
-       $(DISSECTOR_SRC) \
-       $(ETHEREAL_COMMON_SRC) \
-       $(TETHEREAL_TAP_SRC) \
-       tethereal-tap-register.c \
-       register-static.c     \
-       tethereal.c
-
 # Additional libs that I know how to build. These will be
 # linked into the tethereal executable.
 tethereal_additional_libs =            \
@@ -860,31 +829,20 @@ tethereal_DEPENDENCIES = \
        $(tethereal_additional_libs)    \
        $(plugin_libs)
 
-tethereal_static_DEPENDENCIES = \
-       $(ethereal_optional_objects)    \
-       $(tethereal_additional_libs)
-
 # This automake variable adds to the link-line for the executable
-tethereal_LDADD = wiretap/libwiretap.a \
+tethereal_LDADD = \
        $(ethereal_optional_objects)    \
        $(tethereal_additional_libs)    \
        @SNMP_LIBS@ @SSL_LIBS@          \
        $(plugin_ldadd)                 \
-       @GLIB_LIBS@ -lm \
-       @PCAP_LIBS@ @SOCKET_LIBS@ @NSL_LIBS@
-
-tethereal_static_LDADD = \
-       "-all-static"           \
-       $(plugin_static_ldadd)  \
-       wiretap/libwiretap.a    \
-       $(ethereal_optional_objects)    \
-       $(tethereal_additional_libs)    \
-       @SNMP_LIBS@ @SSL_LIBS@          \
-       @GLIB_LIBS@ -lm \
+       @GLIB_LIBS@ -lm                 \
        @PCAP_LIBS@ @SOCKET_LIBS@ @NSL_LIBS@
 
+if ENABLE_STATIC
+tethereal_LDFLAGS = -Wl,-static -all-static
+else
 tethereal_LDFLAGS = -export-dynamic
-tethereal_static_LDFLAGS = -Wl,-static
+endif
 
 # Optional objects that I know how to build, and that are needed by
 # text2pcap.
@@ -951,13 +909,9 @@ SUFFIXES = .sh
 # The second argument is the directory in which the source files live.
 # All subsequent arguments are the files to scan.
 #
-register.c: $(DISSECTOR_SRC) $(srcdir)/make-reg-dotc
+register.c: $(plugin_src) $(DISSECTOR_SRC) $(srcdir)/make-reg-dotc
        @echo Making register.c
-       @$(srcdir)/make-reg-dotc register.c $(srcdir) $(DISSECTOR_SRC)
-
-register-static.c: $(plugin_src) $(DISSECTOR_SRC) $(srcdir)/make-reg-dotc
-       @echo Making register-static.c
-       @$(srcdir)/make-reg-dotc register-static.c $(srcdir) $(plugin_src) 
$(DISSECTOR_SRC)
+       @$(srcdir)/make-reg-dotc register.c $(srcdir) $(plugin_src) $(DISSECTOR_SRC)
 
 #
 # Build "tethereal-tap-register.c", which contains a function 
@@ -1028,7 +982,6 @@ DISTCLEANFILES =   \
 
 MAINTAINERCLEANFILES =         \
        register.c              \
-       register-static.c       \
        ps.c
 
 EXTRA_DIST = \
@@ -1149,7 +1102,6 @@ if SETUID_INSTALL
 install-exec-hook:
        -chmod +s $(DESTDIR)$(bindir)/ethereal
        -chmod +s $(DESTDIR)$(bindir)/tethereal
-       -chmod +s $(DESTDIR)$(bindir)/ethereal_static
 else
 install-exec-hook:
 endif
Index: configure.in
===================================================================
RCS file: /usr/local/cvsroot/ethereal/configure.in,v
retrieving revision 1.196
diff -p -u -r1.196 configure.in
--- configure.in        26 Feb 2003 20:08:30 -0000      1.196
+++ configure.in        28 Feb 2003 00:08:58 -0000
@@ -22,6 +22,7 @@ AM_INIT_AUTOMAKE(ethereal, 0.9.9)
 dnl Checks for programs.
 AC_PROG_CC
 AC_PROG_CPP
+AM_DISABLE_STATIC
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 AC_PROG_YACC
@@ -757,6 +758,7 @@ dnl libtool defs
 AM_PROG_LIBTOOL
 AC_SUBST(LIBTOOL_DEPS)
 
+AM_CONDITIONAL(ENABLE_STATIC, test x$enable_shared = xno)
 AM_CONFIG_HEADER(config.h)
 AC_CONFIG_SUBDIRS(epan wiretap)
 AC_OUTPUT(

Reply via email to