From: Gordon Matzigkeit Date: Tue, 1 Apr 1997 18:46:48 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release-1-0a~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b40f84163f1df1e23c639d5c02d4bdd03183976a;p=thirdparty%2Flibtool.git *** empty log message *** --- diff --git a/ChangeLog b/ChangeLog index 45b1dc880..b6c9cf7cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ +Tue Dec 3 10:43:22 1996 Gordon Matzigkeit + + * ltconfig.in (old_striplib): Do a configuration test to determine + if old-style libraries actually can be stripped or not. + Mon Dec 2 13:57:28 1996 Gordon Matzigkeit + * ltconfig.in: Delete reference to ABOUT-LIBS. + * tests: Added new subdirectory. * doc/libtool.texi: Doc fixes, and finished up the Configuring diff --git a/Makefile.am b/Makefile.am index f6d579284..577f9f537 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,8 +3,10 @@ AUTOMAKE_OPTIONS = gnits SUBDIRS = doc -EXTRA_DIST = libtool.m4 libtoolize.in ltconfig.in ltmain.sh.in -CLEANFILES = libtool libtoolize ltconfig ltmain.sh +# Distribute ltconfig and ltmain.sh so that the demo directory works. +EXTRA_DIST = libtool.m4 libtoolize.in ltconfig ltconfig.in \ + ltmain.sh ltmain.sh.in +CLEANFILES = libtool libtoolize # Files in the demo subdirectory that go in the distribution. demo_distfiles = Makefile.in Makefile.am aclocal.m4 configure configure.in \ @@ -22,17 +24,17 @@ aclocal_DATA = libtool.m4 bin_SCRIPTS = libtool libtoolize libtool: ltconfig - ./ltconfig --srcdir=$(srcdir) $(pkgdatadir)/ltmain.sh + $(srcdir)/ltconfig --srcdir=$(srcdir) $(pkgdatadir)/ltmain.sh libtoolize: libtoolize.in CONFIG_FILES=libtoolize CONFIG_HEADERS= $(top_builddir)/config.status chmod +x libtoolize -ltconfig: ltconfig.in +$(srcdir)/ltconfig: ltconfig.in CONFIG_FILES=ltconfig CONFIG_HEADERS= $(top_builddir)/config.status chmod +x ltconfig -ltmain.sh: ltmain.sh.in +$(srcdir)/ltmain.sh: ltmain.sh.in CONFIG_FILES=ltmain.sh CONFIG_HEADERS= $(top_builddir)/config.status # Distribute the demo subdirectory. diff --git a/NEWS b/NEWS index 7655c7af6..419fc54dd 100644 --- a/NEWS +++ b/NEWS @@ -1,23 +1,16 @@ -New in 0.6a: +New in 0.6b: * Total rewrite of libtool, along with a new model for library building. -* Updated documentation for the new paradigm. -* Proper handling of broken system linkers, such as the ones on AIX +* Completely rewritten documentation for the new paradigm. +* Sane handling of broken system linkers, such as the ones on AIX and HP-UX. * configure mode is now a separate program, `ltconfig' -* Libtool only supports `compile', `link', and `install' modes, via - the `--mode' command line option. +* The libinfo helper script has been incorporated into the main + libtool program. * Automatic mode guessing, based on the command line. +* Support for new `-static' linking flag. +* Quote metacharacters in arguments to compile mode. -New in 0.6: (never released) -* Optimization to cut `libtool archive' execution time by a factor of 5. -* New AM_REPLACE_FUNCS macro to generate LTLIBOBJS as well as LIBOBJS. - From Karl Berry. -* Renamed ABOUT-LIBS to ABOUT-LIBTOOL. From Karl Berry. -* Include the generated libtool script in the distribution. -* Quote metacharacters in arguments to `libtool compile'. -* Bug fixes. -* Removed `link' and `install-progs' modes because they cannot be - correctly implemented. See (libtool)Linking Against Pseudo-Libraries. +Version 0.6 was never released. New in 0.5: * Disabled install-progs until next version, when it will be correctly diff --git a/configure.in b/configure.in index cb625b205..6dc3e4a53 100644 --- a/configure.in +++ b/configure.in @@ -1,9 +1,9 @@ AC_INIT(ltmain.sh.in) -AM_INIT_AUTOMAKE(libtool, 0.6b) +AM_INIT_AUTOMAKE(libtool, 0.6c) pkgdatadir='${datadir}/libtool' AC_SUBST(pkgdatadir) aclocaldir='${datadir}/aclocal' AC_SUBST(aclocaldir) -AC_OUTPUT([Makefile doc/Makefile]) +AC_OUTPUT([Makefile doc/Makefile tests/Makefile]) diff --git a/ltconfig.in b/ltconfig.in index f2c309e80..dc54444a4 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -105,7 +105,7 @@ EOM --no-verify) verify_host=no ;; - --version) echo "$PROGRAM - GNU $PACKAGE $VERSION"; exit 0 ;; + --version) echo "$PROGRAM (GNU $PACKAGE) $VERSION"; exit 0 ;; --with-gcc) with_gcc=yes ;; @@ -252,7 +252,7 @@ old_archive_cmds='ar cru $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' # If RANLIB is not set, then run the test. -if test -z "$RANLIB"; then +if test "${RANLIB+set}" != "set"; then result=no echo $ac_n "checking for ranlib... $ac_c" 1>&6 @@ -376,7 +376,11 @@ EOF echo $ac_t "$with_gcc" 1>&6 fi -echo $ac_n "checking PIC compiler flags... $ac_c" 1>&6 +# Allow CC to be a program name with arguments. +set dummy $CC +compiler="$2" + +echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 compile_flags= profile_flag_pattern= wl= @@ -415,6 +419,11 @@ else wl='-Qoption ld ' ;; + *-*-ultrix4*) + wl='-Wl' + can_build_shared=no + ;; + *) can_build_shared=no ;; @@ -435,7 +444,7 @@ else echo $ac_t none 1>&6 fi -echo $ac_n "checking static linking compiler flag... $ac_c" 1>&6 +echo $ac_n "checking for $compiler option to statically link programs... $ac_c" 1>&6 if test -n "$link_static_flag"; then echo $ac_t "$link_static_flag" 1>&6 else @@ -445,7 +454,9 @@ fi # See if we're really using GNU ld. test -z "$LD" && LD="ld" with_gnu_ld=no -linker="$LD" +# Allow LD to be a program name with arguments. +set dummy $LD +linker="$2" echo $ac_n "checking if $LD is GNU ld... $ac_c" 1>&6 if $LD --version 2>&1 | egrep 'with BFD' > /dev/null; then with_gnu_ld=yes diff --git a/ltmain.sh.in b/ltmain.sh.in index 1db472748..959e0f5e7 100644 --- a/ltmain.sh.in +++ b/ltmain.sh.in @@ -79,7 +79,7 @@ do ;; --version) - echo "$PROGRAM - GNU $PACKAGE $VERSION" + echo "$PROGRAM (GNU $PACKAGE) $VERSION" exit 0 ;; @@ -144,6 +144,10 @@ if test -z "$show_help"; then esac fi + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$mode' for more information." + # These modes are in order of execution frequency so that they run quickly. case "$mode" in # libtool compile mode @@ -206,7 +210,7 @@ if test -z "$show_help"; then compile_command="$cc" finalize_command="$cc" deplibs= - libdir= + install_libdir= libobjs= link_against_libtool_libs= link_static= @@ -216,7 +220,7 @@ if test -z "$show_help"; then prev= prevarg= temp_rpath= - vfile= + vinfo= # Maybe set the library names to libNAME_p.a if we are doing profiling. @@ -266,7 +270,7 @@ if test -z "$show_help"; then -o) prev=output ;; - -rpath) prev=libdir ;; + -rpath) prev=install_libdir carg= farg= ;; -static) build_libtool_libs=no @@ -274,16 +278,24 @@ if test -z "$show_help"; then carg="$farg" ;; - -version-file) prev=vfile ;; + -version-file) + echo "$progname: \`-version-file' has been replaced by \`-version-info'" 1>&2 + echo "$help" 1>&2 + exit 1 + ;; + + -version-info) prev=vinfo carg= farg= ;; -*) cc="$cc $arg" ;; # Some other compiler flag. - *.o) + # Automake's ansi2knr support code uses the "._o" and ".l_o" object + # suffixes. + *.o | *._o) # A standard object. objs="$objs $arg" ;; - *.lo) + *.lo | *.l_o) # A library object. libobjs="$libobjs $arg" ;; @@ -362,6 +374,12 @@ if test -z "$show_help"; then ;; esac ;; + + *) + echo "$progname: unknown file suffix for \`$arg'" 1>&2 + echo "$help" + exit 1 + ;; esac args="$args $arg" @@ -394,6 +412,14 @@ if test -z "$show_help"; then *.a) # Old archive. build_old_libs=yes + + if test -n "$install_libdir"; then + echo "$progname: warning: \`-rpath' is ignored while linking old-style libraries" 1>&2 + fi + + if test -n "$vinfo"; then + echo "$progname: warning: \`-version-info' is ignored while linking old-style libraries" 1>&2 + fi ;; lib?*.la) @@ -404,52 +430,68 @@ if test -z "$show_help"; then exit 1 fi - # How the heck do we write a wrapper for a shared library? + # How the heck are we supposed to write a wrapper for a shared library? if test -n "$link_against_libtool_libs"; then echo "$progname: libtool libraries may not depend on uninstalled libraries" 1>&2 exit 1 fi - # FIXME - screen out invalid options (such as link_static) - - if test -z "$libdir"; then + if test -z "$install_libdir"; then echo "$progname: you must specify an installation directory with \`-rpath'" 1>&2 exit 1 fi - if test -z "$vfile"; then - # Default version line: 0 0 0 - current=0 - age=0 - revision=0 + current=0 + revision=0 + age=0 - elif test -r "$vfile"; then - # Get version information - line=`egrep "^$libname[ ]" "$vfile"` - set dummy $line + # Parse the version information argument. + IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' + set dummy $vinfo + IFS="$save_ifs" - if test -z "$2"; then - echo "$progname: no version information for \`$libname' in \`$vfile'" 1>&2 - exit 1 - fi + if test -n "$5"; then + echo "$progname: too many parameters to \`-version-info'" 1>&2 + echo "$help" 1>&2 + exit 1 + fi - current="$3" - age="$4" - revision="$5" + test -n "$2" && current="$2" + test -n "$3" && revision="$3" + test -n "$4" && age="$4" - if test -z "$revision"; then - echo "$progname: \`$vfile' must specify a CURRENT, AGE, and REVISION for \`$libname'" 1>&2 - exit 1 - fi + # Check that each of the things are valid numbers. + case "$current" in + 0 | [1-9] | [1-9][0-9]*) ;; + *) + echo "$progname: CURRENT \`$current' is not a nonnegative integer" 1>&2 + echo "$progname: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac - if test "$age" -gt "$current"; then - echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - echo "\`$vfile' contains invalid version information for \`$libname'" 1>&2 - exit 1 - fi - else - echo "$progname: version file \`$vfile' is not readable" 1>&2 - exit 1 + case "$revision" in + 0 | [1-9] | [1-9][0-9]*) ;; + *) + echo "$progname: REVISION \`$revision' is not a nonnegative integer" 1>&2 + echo "$progname: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + case "$age" in + 0 | [1-9] | [1-9][0-9]*) ;; + *) + echo "$progname: AGE \`$age' is not a nonnegative integer" 1>&2 + echo "$progname: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + if test $age -gt $current; then + echo "$progname: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + echo "$progname: \`$vinfo' is not valid version information" 1>&2 + exit 1 fi # Calculate the version variables. @@ -555,6 +597,14 @@ if test -z "$show_help"; then ;; *) + if test -n "$install_libdir"; then + echo "$progname: warning: \`-rpath' is ignored while linking programs" 1>&2 + fi + + if test -n "$vinfo"; then + echo "$progname: warning: \`-version-info' is ignored while linking programs" 1>&2 + fi + if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then # We have no uninstalled library dependencies, so finalize right now. compile_command=`echo "$compile_command" | sed "s%-o $objdir/%-o %"` @@ -745,7 +795,7 @@ age=$age revision=$revision # Directory that this library needs to be installed in: -libdir='$libdir' +libdir='$install_libdir' EOF fi ;; @@ -973,7 +1023,7 @@ EOF fi libfile="$libdir/`echo "$lib" | sed 's%^.*/%%g'`" if test -z "$libdir"; then - echo "$progname: warning: \`$lib' contains no libdir information" + echo "$progname: warning: \`$lib' contains no -rpath information" elif test -f "$libfile"; then : else echo "$progname: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 @@ -1154,7 +1204,7 @@ EOF esac echo "$progname: invalid operation mode \`$mode'" 1>&2 - echo "$help" 1>&2 + echo "$generic_help" 1>&2 exit 1 fi # test -z "$show_help" @@ -1243,8 +1293,8 @@ The following components of LINK-COMMAND are treated specially: -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -rpath LIBDIR the created library will eventually be installed in LIBDIR -static do not do any dynamic linking or shared library creation - -version-file VERFILE - find library version information in VERFILE + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] All other options (arguments beginning with \`-') are ignored. @@ -1253,8 +1303,8 @@ treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only -library objects (\`.lo' files) may be specified, and the \`-rpath' option is -required. +library objects (\`.lo' or \`.l_o' files) may be specified, and the \`-rpath' +option is required. If OUTPUT-FILE ends in \`.a', then a standard library is created using \`ar' and \`ranlib'. Otherwise, an executable program is created.