From: Thomas Tanner Date: Sun, 3 Oct 1999 16:36:32 +0000 (+0000) Subject: * NEWS: new -no-install flag X-Git-Tag: multi-language-fork~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ef128a41ba1a3126f01b18054e7d4c5ca528f61c;p=thirdparty%2Flibtool.git * NEWS: new -no-install flag * configure.in: fix typo * doc/libtool.texi(Link mode): document -no-install flag, correct -no-fast-install docs * libtool.m4: check for "file" command * ltconfig.in: don't hardcode /usr/bin/file, remove second definition of sysv5, replace linkopts -> linker_flags * ltmain.in: add new -no-install flag, print help for -no-install and -no-fast-install flags * ltmain.in: always create output_objdir * libltdl/Makefile.am: don't preserve file attributes when installing the libltdl sources --- diff --git a/ChangeLog b/ChangeLog index 108255392..d26217866 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +1999-10-03 Thomas Tanner + + * NEWS: new -no-install flag + * configure.in: fix typo + * doc/libtool.texi(Link mode): document -no-install flag, + correct -no-fast-install docs + * libtool.m4: check for "file" command + * ltconfig.in: don't hardcode /usr/bin/file, remove second + definition of sysv5, replace linkopts -> linker_flags + * ltmain.in: add new -no-install flag, print help for -no-install + and -no-fast-install flags + +1999-10-03 Olly Betts + + * ltmain.in: always create output_objdir + +1999-10-03 Pavel Roskin + + * libltdl/Makefile.am: don't preserve file attributes when + installing the libltdl sources + 1999-10-01 Gary V. Vaughan * configure.in (AC_OUTPUT_COMMANDS): generate ltmain.sh diff --git a/NEWS b/NEWS index b415b9022..d72ac8db1 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ NEWS - list of user-visible changes between releases of GNU Libtool New in 1.3d: 1999-??-??; CVS version 1.3c, Libtool team: * Start of support code for cross-compiling to win32. * Improved support for mingw32, NetBSD, FreeBSD and Unixware. +* New "-no-install" flag to avoid the use of executable wrapper scripts. * New --with-pic flag to control the generation of PIC/non-PIC code. * New --build flag to ltconfig to help with build cross compilation environments is inherited from --build flag passed to configure. diff --git a/configure.in b/configure.in index 7344ddfa3..875a28351 100644 --- a/configure.in +++ b/configure.in @@ -100,7 +100,7 @@ AC_OUTPUT_COMMANDS([ *ltmain.sh*) infile=$top_srcdir/ltmain.in - outfile=$top_srcdir/ltmain,sh + outfile=$top_srcdir/ltmain.sh tmpfile=${outfile}T ( cd $top_srcdir diff --git a/doc/libtool.texi b/doc/libtool.texi index dedd9491e..6478a4ecc 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -1253,8 +1253,14 @@ must not be used at the same time in your package. @item -no-fast-install Disable fast-install mode for the executable @var{output-file} -(@pxref{Invoking ltconfig}). Useful if the program is only used in the -build tree, e.g., for generating other files. +(@pxref{Invoking ltconfig}). Useful if the program won't be necessarly +installed. + +@item -no-install +Link an executable @var{output-file} (@pxref{Invoking ltconfig}) that +can't be installed and therefore doesn't need an wrapper script. +Useful if the program is only used in the build tree, e.g., +for testing or generating other files. @item -no-undefined Declare that @var{output-file} does not depend on any other libraries. diff --git a/libltdl/Makefile.am b/libltdl/Makefile.am index 12bdcbbf1..23f1c0add 100644 --- a/libltdl/Makefile.am +++ b/libltdl/Makefile.am @@ -36,9 +36,9 @@ local-install-files: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \ + cp -r $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file; \ else \ test -f $(DESTDIR)$(datadir)/libtool/libltdl/$$file \ - || cp -p $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \ + || cp $$d/$$file $(DESTDIR)$(datadir)/libtool/libltdl/$$file || :; \ fi; \ done diff --git a/libtool.m4 b/libtool.m4 index 0e4597421..407f94502 100644 --- a/libtool.m4 +++ b/libtool.m4 @@ -68,6 +68,7 @@ AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl +AC_CHECK_TOOL(FILE, file, :) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) diff --git a/ltconfig.in b/ltconfig.in index b5d5057eb..c649f99ee 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -1328,17 +1328,6 @@ else link_all_deplibs=yes ;; - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linkopts' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linkopts~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - ;; - sunos4*) archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' @@ -1360,12 +1349,16 @@ else export_dynamic_flag_spec='-Bexport' ;; - sysv5) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs -$linker_flags' - runpath_var='LD_RUN_PATH' + sysv5*) + no_undefined_flag=' -z text' + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + hardcode_libdir_flag_spec= hardcode_shlibpath_var=no - hardcode_direct=no + runpath_var='LD_RUN_PATH' ;; uts4*) @@ -1462,7 +1455,7 @@ version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -file_magic_cmd= +file_magic_cmd="$FILE" file_magic_test_file= deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support @@ -1522,7 +1515,6 @@ bsdi4*) finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - file_magic_cmd=/usr/bin/file file_magic_test_file=/shlib/libc.so sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" @@ -1638,9 +1630,8 @@ irix5* | irix6*) shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - file_magic_cmd=/usr/bin/file file_magic_test_file=`echo /lib${libsuff}/libc.so*` - deplibs_check_method='pass_all' + deplibs_check_method=pass_all ;; # No shared lib support for Linux oldld, aout, or coff. @@ -1666,7 +1657,6 @@ linux-gnu*) # glibc up to 2.1.1 does not perform some relocations on ARM deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; esac - file_magic_cmd=/usr/bin/file file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` if test -f /lib/ld.so.1; then @@ -1721,9 +1711,8 @@ osf3* | osf4*) shlibpath_var=LD_LIBRARY_PATH # this will be overridden with pass_all, but let us keep it just in case deplibs_check_method='file_magic COFF format alpha shared library' - file_magic_cmd=/usr/bin/file file_magic_test_file=/shlib/libc.so - deplibs_check_method='pass_all' + deplibs_check_method=pass_all sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; @@ -1747,7 +1736,6 @@ solaris*) # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' deplibs_check_method=pass_all - file_magic_cmd=/usr/bin/file file_magic_test_file=/lib/libc.so ;; @@ -1770,7 +1758,7 @@ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) shlibpath_var=LD_LIBRARY_PATH case "$host_vendor" in ncr) - deplibs_check_method='pass_all' + deplibs_check_method=pass_all ;; motorola) need_lib_prefix=no @@ -1778,7 +1766,6 @@ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' - file_magic_cmd=/usr/bin/file file_magic_test_file=`echo /usr/lib/libc.so*` ;; esac @@ -1991,7 +1978,7 @@ cygwin* | mingw* | os2*) ;; esac -if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then +if test -n "$file_magic_test_file"; then case "$deplibs_check_method" in "file_magic "*) file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" @@ -2553,7 +2540,7 @@ case "$ltmain" in # NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. # # Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Gordon Matzigkeit , 1996 +# Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/ltmain.in b/ltmain.in index 133bfbc66..6212e4ab9 100644 --- a/ltmain.in +++ b/ltmain.in @@ -682,6 +682,7 @@ compiler." libobjs= ltlibs= module=no + no_install=no objs= prefer_static_libs=no preload=no @@ -963,6 +964,11 @@ compiler." continue ;; + -no-install) + no_install=yes + continue + ;; + -no-undefined) allow_undefined=no continue @@ -1240,24 +1246,23 @@ compiler." linkmode=prog ;; esac - if test $linkmode = lib || test $linkmode = prog; then - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi - # Create the object directory. - if test ! -d $output_objdir; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test $status -ne 0 && test ! -d $output_objdir; then - exit $status - fi + # Create the object directory. + if test ! -d $output_objdir; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + status=$? + if test $status -ne 0 && test ! -d $output_objdir; then + exit $status fi - else + fi + if test $linkmode != lib && test $linkmode != prog; then # Find libtool convenience libraries for deplib in $deplibs; do case "$deplib" in @@ -3381,6 +3386,19 @@ static const void *lt_preloaded_setup() { fi fi + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $run $rm $output + # Link the executable and exit + $show "$link_command" + $run eval "$link_command" || exit $? + exit 0 + fi + if test "$hardcode_action" = relink || test "$hardcode_into_libs" = yes; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" @@ -4754,6 +4772,8 @@ The following components of LINK-COMMAND are treated specially: -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -release RELEASE specify package release information