libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FYI: allow running libtool tests at configure time [libtool--gary--1


From: Ralf Wildenhues
Subject: Re: FYI: allow running libtool tests at configure time [libtool--gary--1.0--patch-26]
Date: Mon, 2 May 2005 14:05:20 +0200
User-agent: Mutt/1.4.1i

Hi Gary,

* Gary V. Vaughan wrote on Sat, Apr 30, 2005 at 04:06:19PM CEST:
> 
> This may not apply cleanly to HEAD, as I developed it on my own branch
> which still has the pending standalone libtool patch awaiting.

Does that mean branch-2-0 will need Automake 1.10?  Which patch are you
talking about here?

> Unless
> anyone points out any other showstoppers for 2.0, I would like to apply
> this patch (and the last as soon as my patches for autoconf and automake
> are accepted); backport to branch-2-0; and then release 1.9h as a final
> alpha to shake out any final bugs before 2.0 proper...

Let me thank you very much for your work on this!

> Okay to apply to HEAD and branch-2-0?

I promise to test it after I get back.
Slight nits from reading are below.

Regards,
Ralf

>   Index: Changelog
>   from  Gary V. Vaughan  <address@hidden>
> 
>       * libltdl/m4/libtool.m4 (LT_OUTPUT): New macro to generate libtool
>       before config.status.
>       (_LT_CONFIG_COMMANDS): If LT_OUTPUT has been invoked, then
>       generate code in config.status to call config.lt instead of
>       generating libtool directly.
>       * tests/early-libtool.at: New test.

Please show early-libtool.at.

>       * Makefile.am (TESTSUITE_AT): Add tests/early-libtool.at.
>       * doc/libtool.texi (LT_INIT): Document LT_OUTPUT.
>   
>   --- orig/Makefile.am
>   +++ mod/Makefile.am
>   @@ -443,13 +443,14 @@
>    TESTSUITE  = tests/testsuite
>    TESTSUITE_AT       = tests/testsuite.at \
>                 tests/am-subdir.at \
>   +             tests/convenience.at \
>                 tests/duplicate_members.at \
>   +             tests/early-libtool.at \
>                 tests/inherited_flags.at \
>                 tests/libtoolize.at \
>   +             tests/link-order.at \
>                 tests/standalone.at \
>                 tests/stresstest.at \
>   -             tests/link-order.at \
>   -             tests/convenience.at \
>                 tests/template.at
>    
>    EXTRA_DIST     += $(TESTSUITE) $(TESTSUITE_AT) tests/package.m4
>   
>   
>   --- orig/doc/libtool.texi
>   +++ mod/doc/libtool.texi
>   @@ -24,7 +24,7 @@
>    @ifnottex
>    This file documents GNU Libtool @value{VERSION}
>    
>   -Copyright (C) 1996-2004 Free Software Foundation, Inc.
>   +Copyright (C) 1996-2005 Free Software Foundation, Inc.
>    
>    Permission is granted to copy, distribute and/or modify this document
>    under the terms of the GNU Free Documentation License, Version 1.1
>   @@ -51,7 +51,7 @@
>    
>    @page
>    @vskip 0pt plus 1filll
>   -Copyright @copyright{} 2004 Free Software Foundation, Inc.
>   +Copyright @copyright{} 2005 Free Software Foundation, Inc.
>    
>    Permission is granted to copy, distribute and/or modify this document
>    under the terms of the @sc{gnu} Free Documentation License, Version 1.1
>   @@ -2096,6 +2096,23 @@
>    tests before being passed to @file{config.status} for inclusion in the
>    generated libtool script.
>    
>   address@hidden LT_OUTPUT
>   +By default, the configured @file{libtool} script is generated by the
>   +call to @code{AC_OUTPUT} command, and there is rarely any need to use
>   address@hidden from @file{configure}.  However, sometimes it is
>   +necessary to run configure time compile and link tests using
>   address@hidden  You can add @code{LT_OUTPUT} to your
>   address@hidden any time after @code{LT_INIT} and any
>   address@hidden calls; that done, @file{libtool} will be created by a
>   +specially generated @file{config.lt} file, and available for use in
>   +later tests.
>   +
>   +Also, when @code{LT_OUTPUT} is used, for backwards compatibility with
>   +Automake regeneration rules, @file{config.status} will call
>   address@hidden to regenerate @file{libtool}, rather than generating
>   +the file itself.
>   address@hidden defmac
>   +
>    @pindex aclocal
>    When you invoke the @command{libtoolize} program (@pxref{Invoking
>    libtoolize}), it will tell you where to find a definition of
>   @@ -5381,7 +5398,7 @@
>    trick$ libtool --version
>    ltmain.sh (GNU @@PACKAGE@@@@TIMESTAMP@@) @@VERSION@@
>    
>   -Copyright (C) 2004  Free Software Foundation, Inc.
>   +Copyright (C) 2005 Free Software Foundation, Inc.
>    This is free software; see the source for copying conditions.  There is NO
>    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>    trick$
>   
>   
>   --- orig/libltdl/m4/libtool.m4
>   +++ mod/libltdl/m4/libtool.m4
>   @@ -189,8 +189,7 @@
>    RM="rm -f"
>    
>    # Global variables:
>   -default_ofile=libtool
>   -ofile="$default_ofile"
>   +ofile=libtool
>    can_build_shared=yes
>    
>    # All known linkers require a `.a' archive for static linking (except M$VC,
>   @@ -461,7 +460,23 @@
>    # for loops in `config.status'.  Finally, any additional code accumulated
>    # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
>    m4_defun([_LT_CONFIG_COMMANDS],
>   -[AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [
>   +[AC_PROVIDE_IFELSE([LT_OUTPUT],
>   +        dnl If the libtool generation code has been placed in $CONFIG_LT,

Really minor nit: tabify.

>   +   dnl instead of duplicating it all over again into config.status,
>   +   dnl then we will have config.status run $CONFIG_LT later, so it
>   +   dnl needs to know what name is stored there:
>   +        [AC_CONFIG_COMMANDS([libtool],
>   +            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
>   +    dnl If the libtool generation code is destined for config.status,
>   +    dnl expand the accumulated commands and init code now:
>   +    [AC_CONFIG_COMMANDS([libtool],
>   +        [_LT_OUTPUT_LIBTOOL_COMMANDS], 
> [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
>   +])#_LT_CONFIG_COMMANDS
>   +
>   +
>   +# Initialize.
>   +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
>   +[
>    
>    # The HP-UX ksh and POSIX shell print the target directory to stdout
>    # if CDPATH is set.
>   @@ -508,11 +523,124 @@
>    
>    _LT_OUTPUT_LIBTOOL_INIT
>    ])
>   -])#_LT_CONFIG_COMMANDS
>   +
>   +
>   +# LT_OUTPUT
>   +# ---------
>   +# This macro allows early generation of the libtool script (before
>   +# AC_OUTPUT is called), incase it is used in configure for compilation
>   +# tests.
>   +AC_DEFUN([LT_OUTPUT],
>   +[dnl This macro can only work once all the language testing is completed
>   +AC_BEFORE([LT_INIT], [LT_OUTPUT])
>   +AC_BEFORE([LT_LANG], [LT_OUTPUT])
>   +
>   +: ${CONFIG_LT=./config.lt}
>   +AC_MSG_NOTICE([creating $CONFIG_LT])
>   +cat >$CONFIG_LT <<_LTEOF
>   +#! $SHELL
>   +# Generated by $as_me.
>   +# Run this file to recreate a libtool stub with the current configuration.
>   +
>   +lt_cl_silent=false
>   +SHELL=\${CONFIG_SHELL-$SHELL}
>   +_LTEOF
>   +
>   +cat >>$CONFIG_LT <<\_LTEOF
>   +AS_SHELL_SANITIZE
>   +_AS_PREPARE
>   +
>   +exec AS_MESSAGE_FD>&1
>   +exec AS_MESSAGE_LOG_FD>>config.log
>   +{
>   +  echo
>   +  AS_BOX([Running $as_me.])
>   +} >&AS_MESSAGE_LOG_FD
>   +_LTEOF
>   +
>   +cat >>$CONFIG_LT <<\_LTEOF
>   +
>   +lt_cl_usage="\
>   +\`$as_me' creates a local libtool stub from the current configuration,
>   +for use in further configure time tests before the real libtool is
>   +generated.
>   +
>   +Usage: $[0] [[OPTIONS]]
>   +
>   +  -h, --help      print this help, then exit
>   +  -V, --version   print version number, then exit
>   +  -q, --quiet     do not print progress messages
>   +  -d, --debug     don't remove temporary files
>   +
>   +Report bugs to <address@hidden>."
>   +
>   +lt_cl_version="\
>   +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
>   +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
>   +configured by $[0], generated by m4_PACKAGE_STRING.
>   +
>   +Copyright (C) 2005 Free Software Foundation, Inc.
>   +This config.lt script is free software; the Free Software Foundation
>   +gives unlimited permision to copy, distribute and modify it."
>   +
>   +_LTEOF
>   +
>   +cat >>$CONFIG_LT <<\_LTEOF

Please quote $CONFIG_LT here and throughout.

>   +while test $[#] != 0
>   +do
>   +  case $[1] in
>   +    --version | --v* | -V )
>   +      echo "$lt_cl_version"; exit 0 ;;
>   +    --help | --h* | -h )
>   +      echo "$lt_cl_help"; exit 0 ;;
>   +    --debug | --d* | -d )
>   +      debug=: ;;
>   +    --quiet | --q* | --silent | --s* | -q )
>   +      lt_cl_silent=: ;;
>   +
>   +    -*) AC_MSG_ERROR([unrecognized option: $[1]
>   +Try `$[0] --help' for more information.]) ;;
>   +
>   +    *) AC_MSG_ERROR([unrecognised argument: $[1]
>   +Try `$[0] --help for more information.]) ;;
>   +  esac
>   +  shift
>   +done
>   +
>   +if $lt_cl_silent; then
>   +  exec AS_MESSAGE_FD>/dev/null
>   +fi
>   +_LTEOF
>   +
>   +cat >>$CONFIG_LT <<_LTEOF

Ditto.

>   +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
>   +_LTEOF
>   +
>   +cat >>$CONFIG_LT <<\_LTEOF
>   +AC_MSG_NOTICE([creating $ofile])
>   +_LT_OUTPUT_LIBTOOL_COMMANDS
>   +AS_EXIT(0)
>   +_LTEOF
>   +chmod +x $CONFIG_LT
>   +
>   +# configure is writing to config.log, but config.lt does its own 
> redirection,
>   +# appending to config.log, which fails on DOS, as config.log is still kept
>   +# open by configure.  Here we exec the FD to /dev/null, effectively closing
>   +# config.log, so it can be properly (re)opened and appended to by 
> config.lt.

Nice!

>   +if test "$no_create" != yes; then
>   +  lt_cl_success=:
>   +  test "$silent" = yes &&
>   +    lt_config_lt_args="$lt_config_lt_args --quiet"
>   +  exec AS_MESSAGE_LOG_FD>/dev/null
>   +  $SHELL $CONFIG_LT $lt_config_lt_args || lt_cl_success=false
>   +  exec AS_MESSAGE_LOG_FD>>config.log
>   +  $lt_cl_success || AS_EXIT(1)
>   +fi
>   +])# LT_OUTPUT
>    
>    
>    # _LT_CONFIG(TAG)
>   -# ----------------------------
>   +# ---------------
>    # If TAG is the built-in tag, create an initial libtool script with a
>    # default configuration from the untagged config vars.  Otherwise add code
>    # to config.status for appending the configuration named by TAG from the
>   @@ -535,7 +663,7 @@
>    #! $SHELL
>    
>    # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building 
> support services.
>   -# Generated automatically by config.status (GNU $PACKAGE$TIMESTAMP) 
> $VERSION
>   +# Generated automatically by $as_me (GNU $PACKAGE$TIMESTAMP) $VERSION
>    # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 
> 1q`:
>    # NOTE: Changes made to this file will be lost: look at ltmain.sh.
>    #
>   @@ -1204,7 +1332,7 @@
>        # nice to cause kernel panics so lets avoid the loop below.
>        # First set a reasonable default.
>        lt_cv_sys_max_cmd_len=16384
>   -    # 
>   +    #
>        if test -x /sbin/sysconfig; then
>          case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
>            *1*) lt_cv_sys_max_cmd_len=-1 ;;
>   @@ -3616,7 +3744,7 @@
>      if test "$with_gnu_ld" = yes; then
>        # If archive_cmds runs LD, not CC, wlarc should be empty
>        wlarc='${wl}'
>   -    
>   +
>        # Set some defaults for GNU ld with shared library support. These
>        # are reset later if shared libraries are not supported. Putting them
>        # here allows them to be overridden if necessary.
>   
>   
>   --- orig/tests/testsuite.at
>   +++ mod/tests/testsuite.at
>   @@ -99,5 +99,7 @@
>    m4_include([am-subdir.at])
>    # C++ templates tests
>    m4_include([template.at])
>   +# Behaviour of LT_OUTPUT
>   +m4_include([early-libtool.at])
>    # stress test
>    m4_include([stresstest.at])
>   
>   




reply via email to

[Prev in Thread] Current Thread [Next in Thread]