From 43de71de1106de06aff029398b7063d532cb7d1c Mon Sep 17 00:00:00 2001 From: Gordon Matzigkeit Date: Mon, 15 Sep 1997 14:12:49 +0000 Subject: [PATCH] *** empty log message *** --- ChangeLog | 6 ++++++ NEWS | 2 ++ README-alpha | 34 ++++++++++++++++++++++++++++++++++ demo/Makefile.am | 14 +++++++++----- doc/libtool.texi | 4 +++- ltmain.in | 2 +- tests/ChangeLog | 5 +++++ tests/hardcode.test | 17 ++++++++++------- 8 files changed, 70 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6ea0040f7..e9a0c8d7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Mon Sep 15 07:08:35 1997 Gordon Matzigkeit + + * demo/Makefile.am, ltmain.in, tests/hardcode.test (objdir): + Changed objdir variable .libs to _libs. This is another MS-DOS + portability fix. Suggested by Robert Hoehne. + Sat Sep 13 11:41:44 1997 Gordon Matzigkeit * ltconfig.in, ltmain.in (hardcode_minusL): Fix typo by renaming diff --git a/NEWS b/NEWS index 3fa868be7..8a89248dc 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,8 @@ NEWS - list of user-visible changes between releases of GNU libtool. New in 1.0c: * Bug fixes. +* Change the libtool temporary directory from `.libs' to `_libs' in + order to cope with MS-DOS filenames. See README-alpha. * New `-all-static' flag to prevent any dynamic linking. The regular `-static' flag just prevents dynamic linking of libtool libraries. * The `-rpath' flag can be used to hardcode absolute directories when diff --git a/README-alpha b/README-alpha index 0644d4dce..4ab349661 100644 --- a/README-alpha +++ b/README-alpha @@ -4,6 +4,40 @@ Please do not send any bug reports or questions about it to public forums (such as GNU newsgroups), send them directly to the libtool mailing list . + +Automake +******** + +Between beta release 1.0b and 1.0c, libtool changed its private +directory name from `.libs' to `_libs' in order to be compatible with +MS-DOS filenames. This change allows libtool to run under the DJGPP +build environment. Unfortunately, it also introduces a minor bug into +Automake's `clean' rules for releases < 1.2a. + +This should not affect anybody else's programs unless you depend on +libtool internals. If you do, and it isn't just for deleting +unnecessary directories, then let me know so libtool can support the +functionality you require. + +To fix Automake, edit libtool.am, and change the following lines: +i.e. + +clean-libtool: + rm -rf .libs + +to: + +clean-libtool: + rm -rf _libs + +and reinstall Automake. If you've already installed Automake, you can +make the same change in /usr/local/share/automake/libtool.am, to avoid +having to reinstall. + + +global_symbol_pipe +****************** + CALL FOR HELP: In order to implement dlopening even on archictectures that don't have shared libraries, I am collecting `NM' and `global_symbol_pipe' values for every known operating system. diff --git a/demo/Makefile.am b/demo/Makefile.am index 34585481b..efc71b821 100644 --- a/demo/Makefile.am +++ b/demo/Makefile.am @@ -32,6 +32,10 @@ hell_debug_LDFLAGS = -static helldl_SOURCES = dlmain.c helldl_LDFLAGS = -export-dynamic -dlpreopen libhello.la +# Unfortunately, in order to test libtool thoroughly, we need access +# to its private directory. +objdir = _libs + TESTS = run.test # The following rules are only for the libtool demo and tests. @@ -61,21 +65,21 @@ hardcode: $(hardcode_tests) hc-direct: $(hell_OBJECTS) $(hell_DEPENDENCIES) @rm -f hc-direct @echo "You may ignore any linking errors from the following command:" - @shlib=./.libs/libhello.a; \ + @shlib=./$(objdir)/libhello.a; \ eval "`egrep '^library_names' libhello.la`"; \ for lib in $$library_names; do \ - shlib="./.libs/$$lib"; \ + shlib="./$(objdir)/$$lib"; \ done; \ echo "$(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) $$shlib $(LIBS) || echo unsupported > $@"; \ eval "$(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) $$shlib $(LIBS) || echo unsupported > $@" hc-minusL: $(hell_OBJECTS) $(hell_DEPENDENCIES) @rm -f hc-minusL - $(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) -L./.libs -lhello $(LIBS) + $(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) -L./$(objdir) -lhello $(LIBS) hc-libpath: $(hell_OBJECTS) $(hell_DEPENDENCIES) @rm -f hc-libpath @echo "You may ignore any linking errors from the following command:" @eval `egrep -e '^shlibpath_var=' ./libtool`; \ - echo "$$shlibpath_var=./.libs $(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) -lhello $(LIBS) || echo unsupported > $@"; \ - eval "$$shlibpath_var=./.libs $(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) -lhello $(LIBS) || echo unsupported > $@" + echo "$$shlibpath_var=./$(objdir) $(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) -lhello $(LIBS) || echo unsupported > $@"; \ + eval "$$shlibpath_var=./$(objdir) $(CC) $(LDFLAGS) -o $@ $(hell_OBJECTS) -lhello $(LIBS) || echo unsupported > $@" diff --git a/doc/libtool.texi b/doc/libtool.texi index c89a9e24c..13b366720 100644 --- a/doc/libtool.texi +++ b/doc/libtool.texi @@ -612,7 +612,9 @@ Now that's significantly cooler@dots{} libtool just ran an obscure @code{ld} command to create a shared library, as well as the static library. -@cindex @file{@value{objdir}} subdirectory +@c FIXME: TeX cannot handle @value{objdir} in an index entry +@cindex @file{_libs} subdirectory +@c @cindex @file{@value{objdir}} subdirectory Note how libtool creates extra files in the @file{@value{objdir}} subdirectory, rather than the current directory. This feature is to make it easier to clean up the build directory, and to help ensure that diff --git a/ltmain.in b/ltmain.in index 1bbd27760..c4d713aa8 100644 --- a/ltmain.in +++ b/ltmain.in @@ -62,7 +62,7 @@ help="Try \`$progname --help' for more information." magic="%%%MAGIC variable%%%" mkdir="mkdir" mv="mv -f" -objdir=.libs +objdir=_libs rm="rm -f" # Sed substitution that helps us do robust quoting. It backslashifies diff --git a/tests/ChangeLog b/tests/ChangeLog index 2e9ea6127..18ba2a42a 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +Mon Sep 15 07:14:37 1997 Gordon Matzigkeit + + * hardcode.test (objdir): New variable to simplify change from + .libs to _libs (MS-DOS portability fix). + Fri Sep 5 13:36:24 1997 Gordon Matzigkeit * demo-exec.test, demo-inst.test: Change references from diff --git a/tests/hardcode.test b/tests/hardcode.test index c6484e771..be182f206 100755 --- a/tests/hardcode.test +++ b/tests/hardcode.test @@ -20,6 +20,9 @@ fi # Change to our build directory. cd ../demo || exit 1 +# Unfortunately, we need access to libtool internals for this test. +objdir=_libs + # Check to make sure we have a dynamic library. library_names=NONE eval `egrep -e '^library_names=' ./libhello.la 2>/dev/null` @@ -72,13 +75,13 @@ for file in hc-*; do ;; esac - # Discover whether the .libs directory really was hardcoded. + # Discover whether the objdir really was hardcoded. hardcoded=no - if fgrep '.libs' $file > /dev/null; then + if fgrep "$objdir" $file > /dev/null; then hardcoded=yes elif cat $file | tr '\200-\277' '\100-\177' | tr '\300-\377' '\100-\177' \ | tr '\000-\037' '\040-\077' | tr '\040' '\012' \ - | fgrep '.libs' > /dev/null 2>&1; then + | fgrep "$objdir" > /dev/null 2>&1; then # At least AIX fgrep doesn't work for binary files, and AIX also # doesn't have strings(1), so we need this strange conversion. # AIX fgrep also has a limited line length, that's why we finally @@ -92,18 +95,18 @@ for file in hc-*; do case "$hardcoded" in yes) if test $expected = yes; then - echo ".libs was hardcoded in \`$file', as libtool expected" + echo "$objdir was hardcoded in \`$file', as libtool expected" else - echo ".libs was hardcoded in \`$file', which fooled libtool" 1>&2 + echo "$objdir was hardcoded in \`$file', which fooled libtool" 1>&2 status=1 fi ;; no) if test $expected = no; then - echo ".libs was not hardcoded in \`$file', as libtool expected" + echo "$objdir was not hardcoded in \`$file', as libtool expected" else - echo ".libs was not hardcoded in \`$file', which fooled libtool" 1>&2 + echo "$objdir was not hardcoded in \`$file', which fooled libtool" 1>&2 status=1 fi ;; -- 2.47.2