Re: building m4 master HEAD with Libtool HEAD [WAS FYI: 333-gary-refactor-LTDL_INIT.patch]

"Gary V. Vaughan" <[email protected]>
Newsgroups gmane.comp.gnu.m4.patches,gmane.comp.gnu.libtool.patches
Message-ID <[email protected]>
Hi Eric,

On 23 Jan 2008, at 14:30, Eric Blake wrote:
> According to Ralf Wildenhues on 1/7/2008 1:40 PM:
> |
> | Well, I finally got done with my look over this, so you may want to
> | consider it first.  And when you're done and bored again, I will  
> post a
> | few test failures to ponder over, ok?  ;-)
>
> I haven't looked at this patch in detail, but I decided to give it a  
> spin
> and convert M4 head to use nonrecursive mode.  Following the  
> examples from
> the documentation, I updated configure.ac to include this snippet:
>
> LT_PREREQ([2.1a])
> LT_CONFIG_LTDL_DIR([ltdl])
> LT_INIT([shared dlopen win32-dll])
> LTDL_INIT([nonrecursive convenience])
> [[...]]
> Since you are more familiar with the recent Libtool patch: Any ideas  
> why,
> or how to fix libtool to recognize that M4 is using a custom name  
> for the
> libtool files (ltdl, not libltdl)?  I may get around to it, but it  
> will
> take me longer to come up to speed.

Yes, libtoolize was more or less ignoring the libtool mode setting.  And
ltdl.m4 had missed some important corner cases. :-(

> At any rate, here's the current state of the patch for M4, for  
> reproducing
> this.


Thanks.  If you wait until my libtool patches 349 and 350 are  
committed (or
apply them to your local libtool and reinstall), I reworked your patch  
as
follows such that m4 now builds with a nonrecursive mode libltdl.

(No ChangeLog, but feel free to write one and commit it when the libtool
patch queue is empty again)

Cheers,
	Gary

   diff --git a/Makefile.am b/Makefile.am
   index e79210c..65cb0ef 100644
   --- a/Makefile.am
   +++ b/Makefile.am
   @@ -23,34 +23,44 @@
    config_aux_dir       = build-aux
    config_macro_dir= ltdl/m4

   -SUBDIRS              = ltdl po gnu tests/gnu .
   +SUBDIRS              = po gnu tests/gnu .

    ACLOCAL_AMFLAGS = -I ltdl/m4
    AUTOMAKE_OPTIONS = nostdinc
   -AM_CPPFLAGS  = -I. -I$(srcdir) \
   -               -Ignu -I$(srcdir)/gnu \
   -               -Im4 -I$(srcdir)/m4 \
   -               $(LTDLINCL)
   +
   +# Prime variables that will be added to by libtool.
   +AM_CPPFLAGS  = -Ignu -I$(srcdir)/gnu \
   +               -Im4 -I$(srcdir)/m4
   +EXTRA_DIST   = bootstrap \
   +               $(config_aux_dir)/mkstamp \
   +               $(config_macro_dir)/gnulib-cache.m4
   +
    # FIXME - the -export-symbols-regex ".*" is a hack to work around  
the
    # fact that on cygwin, the convenience library libltdl exports  
symbols,
    # which effectively disables the auto-exporting of all other  
symbols.
    # Revisit this if libtool on cygwin improves.
    # See http://lists.gnu.org/archive/html/libtool-patches/2007-02/msg00062.html
   -AM_LDFLAGS   = -no-undefined -export-dynamic -export-symbols-regex  
".*"
   +AM_LDFLAGS   = -export-dynamic -export-symbols-regex ".*"

   -EXTRA_DIST   = bootstrap \
   -               $(config_aux_dir)/mkstamp \
   -               $(config_macro_dir)/gnulib-cache.m4
   +BUILT_SOURCES        =
    CLEANFILES   =
   -DISTCLEANFILES       =
    MOSTLYCLEANFILES=
   +
   +include_HEADERS      =
   +noinst_LTLIBRARIES=
   +lib_LTLIBRARIES      =
   +EXTRA_LTLIBRARIES=
   +
   +# Include Libtool's rules.
   +include ltdl/Makefile.inc
   +
   +# Additional configuration.
   +DISTCLEANFILES       =
    MAINTAINERCLEANFILES = \
                   ABOUT-NLS COPYING INSTALL Makefile.in aclocal.m4 \
                   config-h.in configure stamp-h.in \
                   po/cat-id-tbl.c po/m4.pot po/stamp-cat-id

   -BUILT_SOURCES        =
   -
    MKSTAMP = $(SHELL) $(srcdir)/$(config_aux_dir)/mkstamp

    # Make sure config.status is regenerated when the version  
timestamp changes
   @@ -202,7 +212,7 @@ EXTRA_DIST     += \
    ## libm4 ##
    ## ----- ##

   -lib_LTLIBRARIES      = m4/libm4.la
   +lib_LTLIBRARIES      += m4/libm4.la

    nobase_include_HEADERS = \
                   m4/m4module.h
   @@ -234,13 +244,6 @@ dist-hook:
    EXTRA_DIST     += m4/system_.h


   -## ------- ##
   -## libltdl ##
   -## ------- ##
   -
   -ltdl/libltdlc.la:
   -     cd ltdl && $(MAKE) $(MAKEFLAGS) libltdlc.la
   -
    ## -------------- ##
    ## Documentation. ##
    ## -------------- ##
   diff --git a/bootstrap b/bootstrap
   index 8da38fd..a3352cf 100755
   --- a/bootstrap
   +++ b/bootstrap
   @@ -52,6 +52,7 @@
    : ${AUTORECONF=autoreconf}
    : ${AWK=awk}
    : ${GNULIB_TOOL=gnulib-tool}
   +: ${LIBTOOLIZE=libtoolize}
    : ${M4=m4}
    : ${RM=rm -f}
    : ${SED=sed}
   @@ -400,6 +401,17 @@ fi
    func_echo "running: $AUTOPOINT --force"
    $AUTOPOINT --force

   +## ----------- ##
   +## Libtoolize. ##
   +## ----------- ##
   +
   +# Autoreconf runs aclocal before libtoolize, which causes spurious
   +# wornings while the initial aclocal is confused by the  
unlibtoolized
   +# (or worse out-of-date) macro directory.
   +func_echo "running: $LIBTOOLIZE --force --copy --install"
   +${LIBTOOLIZE} --force --copy --install
   +
   +
    ## ---------------------------- ##
    ## Find the gnulib module tree. ##
    ## ---------------------------- ##
   @@ -470,10 +482,11 @@ $bailout_cb
    ## Autoreconf. ##
    ## ----------- ##

   -# Disable autopoint, since it was already done above.
   -func_echo "running: AUTOPOINT=true" \
   +# Disable autopoint and libtoolize, since they were already done  
above.
   +func_echo "running: AUTOPOINT=true LIBTOOLIZE=true" \
        "$AUTORECONF --force --verbose --install --no-recursive"
   -AUTOPOINT=true $AUTORECONF --force --verbose --install --no- 
recursive
   +AUTOPOINT=true LIBTOOLIZE=true \
   +    $AUTORECONF --force --verbose --install --no-recursive


    ## ---------------------------------------- ##
   diff --git a/configure.ac b/configure.ac
   index 05c5c9a..40eefcb 100644
   --- a/configure.ac
   +++ b/configure.ac
   @@ -89,7 +89,20 @@ M4_CHECK_DEBUGGING
    LT_PREREQ([2.1a])
    LT_CONFIG_LTDL_DIR([ltdl])
    LT_INIT([shared dlopen win32-dll])
   -LTDL_INIT
   +LTDL_INIT([nonrecursive convenience])
   +
   +# The lt_dlhandle_iterate symbol was added with libtool-2.2
   +if test "x$with_included_ltdl" != "xyes"; then
   +  save_CFLAGS="$CFLAGS"
   +  save_LDFLAGS="$LDFLAGS"
   +  CFLAGS="$CFLAGS $LTDLINCL"
   +  LDFLAGS="$LDFLAGS $LIBLTDL"
   +  AC_CHECK_LIB([ltdl], [lt_dlhandle_iterate],
   +             [],
   +     [AC_MSG_ERROR([installed libltdl is too old])])
   +  LDFLAGS="$save_LDFLAGS"
   +  CFLAGS="$save_CFLAGS"
   +fi

    # Use gcc's -pipe option if available: for faster compilation.
    case "$CFLAGS" in

-- 
Gary V. Vaughan ([email protected])

_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches
PGP.sig (application/pgp-signature, 186 B) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.