summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorMamoru Komachi <usata@gentoo.org>2004-10-10 17:11:37 +0000
committerMamoru Komachi <usata@gentoo.org>2004-10-10 17:11:37 +0000
commit3346733c4c851e42d8f53b96d5b08a7dc99dbac9 (patch)
treec1be287aeb694aaa6dd32b961dd271ffdc913c76 /eclass
parentRevision bump with compiler fix. Nemerle now works with monodevelop. See bug ... (diff)
downloadgentoo-2-3346733c4c851e42d8f53b96d5b08a7dc99dbac9.tar.gz
gentoo-2-3346733c4c851e42d8f53b96d5b08a7dc99dbac9.tar.bz2
gentoo-2-3346733c4c851e42d8f53b96d5b08a7dc99dbac9.zip
Added darwintoolize. This closes bug #65272.
Diffstat (limited to 'eclass')
-rw-r--r--eclass/ELT-patches/darwin/ltconfig-1.2.patch66
-rw-r--r--eclass/ELT-patches/darwin/ltconfig-1.3.patch67
-rw-r--r--eclass/ELT-patches/darwin/ltmain.sh-1.2.patch40
-rw-r--r--eclass/ELT-patches/darwin/ltmain.sh-1.3.patch64
-rw-r--r--eclass/ELT-patches/sed/1.4.36
-rw-r--r--eclass/libtool.eclass35
6 files changed, 275 insertions, 3 deletions
diff --git a/eclass/ELT-patches/darwin/ltconfig-1.2.patch b/eclass/ELT-patches/darwin/ltconfig-1.2.patch
new file mode 100644
index 000000000000..da9f7e484db5
--- /dev/null
+++ b/eclass/ELT-patches/darwin/ltconfig-1.2.patch
@@ -0,0 +1,66 @@
+--- ltconfig-1.2 Wed May 19 09:17:36 1999
++++ ltconfig Wed Oct 6 14:29:08 2004
+@@ -459,6 +459,11 @@
+ os2*)
+ # We can build DLLs from non-PIC.
+ ;;
++ darwin* | rhapsody*)
++ # PIC is the default on this platform
++ # Common symbols not allowed in MH_DYLIB files
++ pic_flag='-fno-common'
++ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+@@ -785,6 +790,23 @@
+ hardcode_shlibpath_var=no
+ ;;
+
++ darwin* | rhapsody*)
++ case "$host_os" in
++ rhapsody* | darwin1.[012])
++ allow_undefined_flag='-undefined suppress'
++ ;;
++ *) # Darwin 1.3 on
++ allow_undefined_flag='-flat_namespace -undefined suppress'
++ ;;
++ esac
++ archive_cmds='$nonopt $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs $linkopts $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)'
++ # We need to add '_' to the symbols in $export_symbols first
++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols $lib'
++ hardcode_direct=yes
++ hardcode_shlibpath_var=no
++ whole_archive_flag_spec='-all_load $convenience'
++ ;;
++
+ hpux9*)
+ archive_cmds='$rm $objdir/$soname;$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs;mv $objdir/$soname $lib'
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+@@ -1134,6 +1156,27 @@
+ version_type=sunos
+ library_names_spec='${libname}${release}.so.$versuffix'
+ shlibpath_var=LD_LIBRARY_PATH
++ ;;
++
++darwin* | rhapsody*)
++ dynamic_linker="$host_os dyld"
++ version_type=darwin
++ need_lib_prefix=no
++ need_version=no
++ deplibs_check_method='file_magic Mach-O dynamically linked shared library'
++ file_magic_cmd='/usr/bin/file -L'
++ case "$host_os" in
++ rhapsody* | darwin1.[012])
++ file_magic_test_file='/System/Library/Frameworks/System.framework/System'
++ ;;
++ *) # Darwin 1.3 on
++ file_magic_test_file='/usr/lib/libSystem.dylib'
++ ;;
++ esac
++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
++ shlibpath_overrides_runpath=yes
++ shlibpath_var=DYLD_LIBRARY_PATH
+ ;;
+
+ hpux9* | hpux10*)
diff --git a/eclass/ELT-patches/darwin/ltconfig-1.3.patch b/eclass/ELT-patches/darwin/ltconfig-1.3.patch
new file mode 100644
index 000000000000..49ae67df4116
--- /dev/null
+++ b/eclass/ELT-patches/darwin/ltconfig-1.3.patch
@@ -0,0 +1,67 @@
+--- ltconfig.darwin 2000-02-02 19:53:22.000000000 -0500
++++ ltconfig 2004-09-23 20:25:11.000000000 -0400
+@@ -678,6 +678,11 @@
+ cygwin* | mingw* | os2*)
+ # We can build DLLs from non-PIC.
+ ;;
++ darwin* | rhapsody*)
++ # PIC is the default on this platform
++ # Common symbols not allowed in MH_DYLIB files
++ pic_flag='-fno-common'
++ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+@@ -1361,6 +1372,23 @@
+ hardcode_shlibpath_var=no
+ ;;
+
++ darwin* | rhapsody*)
++ case "$host_os" in
++ rhapsody* | darwin1.[012])
++ allow_undefined_flag='-undefined suppress'
++ ;;
++ *) # Darwin 1.3 on
++ allow_undefined_flag='-flat_namespace -undefined suppress'
++ ;;
++ esac
++ archive_cmds='$nonopt $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs $linkopts $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)'
++ # We need to add '_' to the symbols in $export_symbols first
++ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols $lib'
++ hardcode_direct=yes
++ hardcode_shlibpath_var=no
++ whole_archive_flag_spec='-all_load $convenience'
++ ;;
++
+ hpux9* | hpux10* | hpux11*)
+ case "$host_os" in
+ hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;;
+@@ -1897,6 +1931,27 @@
+ esac
+ ;;
+
++darwin* | rhapsody*)
++ dynamic_linker="$host_os dyld"
++ version_type=darwin
++ need_lib_prefix=no
++ need_version=no
++ deplibs_check_method='file_magic Mach-O dynamically linked shared library'
++ file_magic_cmd='/usr/bin/file -L'
++ case "$host_os" in
++ rhapsody* | darwin1.[012])
++ file_magic_test_file='/System/Library/Frameworks/System.framework/System'
++ ;;
++ *) # Darwin 1.3 on
++ file_magic_test_file='/usr/lib/libSystem.dylib'
++ ;;
++ esac
++ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
++ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
++ shlibpath_overrides_runpath=yes
++ shlibpath_var=DYLD_LIBRARY_PATH
++ ;;
++
+ gnu*)
+ version_type=linux
+ need_lib_prefix=no
+
diff --git a/eclass/ELT-patches/darwin/ltmain.sh-1.2.patch b/eclass/ELT-patches/darwin/ltmain.sh-1.2.patch
new file mode 100644
index 000000000000..aaab86a72337
--- /dev/null
+++ b/eclass/ELT-patches/darwin/ltmain.sh-1.2.patch
@@ -0,0 +1,40 @@
+--- ltmain.sh-1.2 Wed May 19 09:17:36 1999
++++ ltmain.sh Wed Oct 6 14:38:37 2004
+@@ -967,6 +967,16 @@
+ versuffix="$current.$revision"
+ ;;
+
++ darwin)
++ # Like Linux, but with the current version available in
++ # verstring for coding it into the library header
++ major=.`expr $current - $age`
++ versuffix="$major.$age.$revision"
++ # Darwin ld doesn't like 0 for these options...
++ minor_current=`expr $current + 1`
++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
++ ;;
++
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+@@ -1000,9 +1010,17 @@
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+
+- # Add libc to deplibs on all systems.
+- dependency_libs="$deplibs"
+- deplibs="$deplibs -lc"
++ case "$version_type" in
++ rhapsody|darwin)
++ # Rhapsody C library is in the System framework
++ deplibs="$deplibs -framework System"
++ ;;
++ *)
++ # Add libc to deplibs on all other systems.
++ dependency_libs="$deplibs"
++ deplibs="$deplibs -lc"
++ ;;
++ esac
+
+ if test "$build_libtool_libs" = yes; then
+ # Get the real and link names of the library.
diff --git a/eclass/ELT-patches/darwin/ltmain.sh-1.3.patch b/eclass/ELT-patches/darwin/ltmain.sh-1.3.patch
new file mode 100644
index 000000000000..7148efb99326
--- /dev/null
+++ b/eclass/ELT-patches/darwin/ltmain.sh-1.3.patch
@@ -0,0 +1,64 @@
+--- ltmain.sh.darwin 2000-02-02 19:53:22.000000000 -0500
++++ ltmain.sh 2004-09-23 20:25:11.000000000 -0400
+@@ -24,6 +24,8 @@
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+
++_S_=${LIBTOOL_CMD_SEP-\~}
++
+ # Check that we have a working $echo.
+ if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+@@ -1079,6 +1079,11 @@
+ # These systems don't actually have c library (as such)
+ continue
+ ;;
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # Rhapsody C library is in the System framework
++ deplibs="$deplibs -framework System"
++ continue
++ ;;
+ esac
+ elif test "$arg" = "-lm"; then
+ case "$host" in
+@@ -1086,6 +1091,11 @@
+ # These systems don't actually have math library (as such)
+ continue
+ ;;
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # Rhapsody math library is in the System framework
++ deplibs="$deplibs -framework System"
++ continue
++ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+@@ -1753,6 +1763,16 @@
+ versuffix="-$major-$age-$revision"
+ ;;
+
++ darwin)
++ # Like Linux, but with the current version available in
++ # verstring for coding it into the library header
++ major=.`expr $current - $age`
++ versuffix="$major.$age.$revision"
++ # Darwin ld doesn't like 0 for these options...
++ minor_current=`expr $current + 1`
++ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
++ ;;
++
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+@@ -1795,6 +1824,10 @@
+ *-*-cygwin* | *-*-mingw* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
++ *-*-rhapsody* | *-*-darwin1.[012])
++ # Rhapsody C library is in the System framework
++ deplibs="$deplibs -framework System"
++ ;;
+ *)
+ # Add libc to deplibs on all other systems.
+ deplibs="$deplibs -lc"
+
diff --git a/eclass/ELT-patches/sed/1.4.3 b/eclass/ELT-patches/sed/1.4.3
index 20178a03de05..9c51ac2de0ff 100644
--- a/eclass/ELT-patches/sed/1.4.3
+++ b/eclass/ELT-patches/sed/1.4.3
@@ -1,11 +1,13 @@
--- ltmain.sh 2003-02-13 14:54:24.000000000 +0100
+++ ltmain.sh 2003-02-13 15:24:49.000000000 +0100
-@@ -48,6 +48,9 @@ EOF
+@@ -48,6 +48,11 @@ EOF
exit 0
fi
-+# define SED for historic ltconfig's generated by Libtool 1.3
++# define variables for historic ltconfig's generated by Libtool 1.3
+test -z "$SED" && SED=sed
++test -z "$EGREP" && EGREP=egrep
++test -z "$LTCC" && LTCC=${CC-gcc}
+
# The name of this program.
progname=`$echo "$0" | ${SED} 's%^.*/%%'`
diff --git a/eclass/libtool.eclass b/eclass/libtool.eclass
index 7cf56cf97e15..f44d798b53b4 100644
--- a/eclass/libtool.eclass
+++ b/eclass/libtool.eclass
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.35 2004/09/29 03:49:59 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/libtool.eclass,v 1.36 2004/10/10 17:11:37 usata Exp $
#
# Author: Martin Schlemmer <azarah@gentoo.org>
#
@@ -161,6 +161,11 @@ elibtoolize() {
esac
done
+ if use ppc-macos ; then
+ glibtoolize --copy --force
+ darwintoolize
+ fi
+
for x in ${my_dirlist}
do
local tmp="$(echo "${x}" | sed -e "s|${S}||")"
@@ -299,3 +304,31 @@ uclibctoolize() {
esac
done
}
+
+darwintoolize() {
+ local targets=""
+ local x
+
+ if [ -z "$@" ] ; then
+ targets="$(find ${S} -name ltmain.sh -o -name ltconfig)"
+ fi
+
+ einfo "Applying Darwin/libtool patches ..."
+ for x in ${targets} ; do
+ [ ! -s "${x}" ] && continue
+ case $(basename "${x}") in
+ ltmain.sh|ltconfig)
+ local ver="$(grep '^VERSION=' ${x})"
+ ver="${ver/VERSION=}"
+ if [ "${ver:0:3}" == "1.4" -o "${ver:0:3}" == "1.5" ];
+ then
+ ver="1.3" # 1.4, 1.5 and 1.3 are compat
+ fi
+
+ ebegin " Fixing \${S}${x/${S}}"
+ patch -p0 "${x}" "${ELT_PATCH_DIR}/darwin/$(basename "${x}")-${ver:0:3}.patch" > /dev/null
+ eend $? "PLEASE CHECK ${x}"
+ ;;
+ esac
+ done
+}