From d9a4d8f71ae415bb716dc8267a506a102bacf0b2 Mon Sep 17 00:00:00 2001 From: Peter O'Gorman Date: Mon, 21 Apr 2008 15:18:41 -0500 Subject: [PATCH] basename does not take a list of strings. * libltdl/config/ltmain.m4sh(func_extract_archives): Use sed $basename. * tests/darwin.at: New. Check that we can built fat program, shared library and convenience library. * Makefile.am: Add test. Reported by LiKai Liu --- ChangeLog | 8 ++++ Makefile.am | 3 +- libltdl/config/ltmain.m4sh | 2 +- tests/darwin.at | 96 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 tests/darwin.at diff --git a/ChangeLog b/ChangeLog index 4cc2147e..b4d03889 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2008-04-21 Peter O'Gorman + basename does not take a list of strings. + * libltdl/config/ltmain.m4sh(func_extract_archives): Use sed + $basename. + * tests/darwin.at: New. Check that we can built fat program, + shared library and convenience library. + * Makefile.am: Add test. + Reported by LiKai Liu + Use AC_CHECK_TOOL for lipo too. * libltdl/m4/libtool.m4 (_LT_REQUIRED_DARWIN_CHECKS): Check. * libltdl/config/ltmain.m4sh (func_extract_archives): Use. diff --git a/Makefile.am b/Makefile.am index 480b6470..0085c7f4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -465,7 +465,8 @@ TESTSUITE_AT = tests/testsuite.at \ tests/deplibs-ident.at \ tests/configure-iface.at \ tests/stresstest.at \ - tests/cmdline_wrap.at + tests/cmdline_wrap.at \ + tests/darwin.at EXTRA_DIST += $(srcdir)/$(TESTSUITE) $(TESTSUITE_AT) $(srcdir)/tests/package.m4 diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh index 089f1629..ff1e50d5 100644 --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -2222,7 +2222,7 @@ func_extract_archives () $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do diff --git a/tests/darwin.at b/tests/darwin.at new file mode 100644 index 00000000..adc0db68 --- /dev/null +++ b/tests/darwin.at @@ -0,0 +1,96 @@ +# darwin.at - tests specific to Mac OS X +# +# Copyright (C) 2008 Free Software Foundation, Inc. +# Written by Peter O'Gorman, 2008 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +#### + +AT_BANNER([Mac OS X tests]) +AT_SETUP([darwin fat compile]) +noskip=: +case "$host_os" in +darwin*) ;; +*) noskip=false ;; +esac + +AT_DATA([foo.c],[[ +int x=0; +]]) + +$noskip && { +$CC $CPPFLAGS $CFLAGS -arch ppc -arch i386 -c -o foo.o foo.c 2>&1 > /dev/null || noskip=false +rm -f foo.o +} + +AT_CHECK([$noskip || (exit 77)]) + +AT_DATA([baz.c],[[ +int y=0; +]]) + +AT_DATA([bar.c],[[ +extern int x; +int bar(void); +int bar() { return x;} +]]) + +AT_DATA([main.c],[[ +extern int x; +extern int y; + +int main() { +return x+y; +} +]]) + +mkdir bin +AT_DATA([bin/basename],[[ +#! /bin/sh + +usage="usage: $0 argument" +if test $# != 1; then + echo $usage >&2 + exit 1 +fi + +echo $1 | sed "s,^.*/,," +]]) + +chmod +x bin/basename +save_PATH=$PATH +PATH=`pwd`/bin:$PATH +export PATH + +AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o foo.lo $CPPFLAGS $CFLAGS -arch ppc -arch i386 foo.c],[0],[ignore],[ignore]) + +AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o baz.lo $CPPFLAGS $CFLAGS -arch ppc -arch i386 baz.c],[0],[ignore],[ignore]) + +AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libfoo.la $CPPFLAGS $CFLAGS $LDFLAGS -arch ppc -arch i386 foo.lo baz.lo],[0],[ignore],[ignore]) + +AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o bar.lo $CPPFLAGS $CFLAGS -arch ppc -arch i386 bar.c],[0],[ignore],[ignore]) + +AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o libbar.la $CPPFLAGS $CFLAGS $LDFLAGS -arch ppc -arch i386 bar.lo libfoo.la -rpath /nonexistant],[0],[ignore],[ignore]) + +AT_CHECK([$LIBTOOL --mode=compile --tag=CC $CC -c -o main.lo $CPPFLAGS $CFLAGS -arch ppc -arch i386 main.c],[0],[ignore],[ignore]) + +AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC -o main $CPPFLAGS $CFLAGS $LDFLAGS -arch ppc -arch i386 main.lo libbar.la],[0],[ignore],[ignore]) + +PATH=$save_PATH +AT_CLEANUP