[oe-commits] Julian_chu : libtool-sdk_1.5.10.bb, meta-toolchain.bb, task-sdk-host.bb: introduce

GIT User account git at amethyst.openembedded.net
Wed Dec 24 06:40:51 UTC 2008


Module: openembedded.git
Branch: john_lee/openmoko-toolchain
Commit: 404a0e11622507c13e1a082c978439dbc64e5d32
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=404a0e11622507c13e1a082c978439dbc64e5d32

Author: Julian_chu <julian_chu at openmoko.com>
Date:   Wed Sep 10 16:29:40 2008 +0800

libtool-sdk_1.5.10.bb, meta-toolchain.bb, task-sdk-host.bb: introduce
sysroot libtool-sdk.

Add libtool-sdk to help the meta toolchain using the .la files.  Patch
add_sysroot_function.patch is applied to teach libtool about
LIBTOOL_SYSROOT_PATH .

task-sdk-host.bb is updated along with its consumers to include
libtool-sdk, and meta-toolchain.bb is updated to include this
environment variable.

---

 .../libtool-1.5.10/add_sysroot_function.patch      |  103 ++++++++++++++++++++
 packages/libtool/libtool-sdk_1.5.10.bb             |   53 ++++++++++
 packages/meta/meta-toolchain.bb                    |    1 +
 packages/tasks/task-fso-toolchain-host.bb          |    2 +-
 packages/tasks/task-openmoko-toolchain-host.bb     |    2 +-
 packages/tasks/task-sdk-host.bb                    |    3 +-
 packages/tasks/task-slugos-toolchain-host.bb       |    2 +-
 7 files changed, 162 insertions(+), 4 deletions(-)

diff --git a/packages/libtool/libtool-1.5.10/add_sysroot_function.patch b/packages/libtool/libtool-1.5.10/add_sysroot_function.patch
new file mode 100644
index 0000000..f8578c5
--- /dev/null
+++ b/packages/libtool/libtool-1.5.10/add_sysroot_function.patch
@@ -0,0 +1,103 @@
+Index: libtool-1.5.10/ltmain.in
+===================================================================
+--- libtool-1.5.10.orig/ltmain.in	2008-07-25 16:24:21.000000000 +0800
++++ libtool-1.5.10/ltmain.in	2008-07-25 18:31:41.000000000 +0800
+@@ -137,6 +137,52 @@
+ # Shell function definitions:
+ # This seems to be the best place for them
+ 
++# func_add_sysroot_path add LIBTOOL_SYSROOT_PATH as prefix in search path
++# -L/usr/lib  -> -L/home/foo/usr/lib if sysroot is /home/foo
++func_add_sysroot_path ()
++{
++  _suffix=""
++  _leading=""
++  case "${1}" in
++    -L*)
++      _suffix=`echo ${1} |sed -e s:-L::`
++      _suffix=${LIBTOOL_SYSROOT_PATH}${_suffix}
++      _leading="-L"
++      ;;
++    -I*)
++      _suffix=`echo ${1} |sed -e s:-I::`
++      _suffix=${LIBTOOL_SYSROOT_PATH}${_suffix}
++      _leading="-I"
++      ;;
++    /*)
++      _suffix=${LIBTOOL_SYSROOT_PATH}${1}
++      _leading=""
++      ;;
++    *)  
++      _suffix=${1}
++      _leading=""
++  esac
++  eval add_sysroot_path_result=${_leading}${_suffix}
++}
++
++# func_rm_sysroot_path remove LIBTOOL_SYSROOT_PATH
++# -L/home/foo/usr/lib => if sysroot is /home/foo
++func_rm_sysroot_path () {
++  __rm_sysroot_path=${1}
++  case $__rm_sysroot_path in
++  -L*)
++    __rm_sysroot_path=`echo ${1}|sed -e s:$LIBTOOL_SYSROOT_PATH:/:g`
++    ;;
++  -I*) 
++    __rm_sysroot_path=`echo ${1}|sed -e s:$LIBTOOL_SYSROOT_PATH:/:g`
++    ;;
++  /*)  
++    __rm_sysroot_path=`echo ${1}|sed -e s:$LIBTOOL_SYSROOT_PATH:/:g`
++    ;;
++  esac
++  rm_sysroot_path_result=`echo ${__rm_sysroot_path}|sed -e s://:/:g`
++}
++
+ # func_win32_libid arg
+ # return the library type of file 'arg'
+ #
+@@ -2196,6 +2242,16 @@
+ 	*) . ./$lib ;;
+ 	esac
+ 
++        # Add Sysroot to path #
++        tmp_depen_libs=
++        for depen_lib in $dependency_libs; do
++          func_add_sysroot_path $depen_lib
++          tmp_depen_libs="$tmp_depen_libs $add_sysroot_path_result "
++        done
++        dependency_libs=$tmp_depen_libs
++        func_add_sysroot_path $libdir
++        libdir="$add_sysroot_path_result"
++
+ 	if test "$linkmode,$pass" = "lib,link" ||
+ 	   test "$linkmode,$pass" = "prog,scan" ||
+ 	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+@@ -2777,6 +2833,10 @@
+ #		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+ #		  fi
+ 		if ! grep "^installed=no" $deplib > /dev/null; then
++                  #Add Sysroot to libdir
++                  func_add_sysroot_path $libdir
++                  libdir=$add_sysroot_path_result
++
+ 		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ 		  if test -z "$libdir"; then
+ 		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+@@ -5243,6 +5303,17 @@
+ 	  case $host,$output,$installed,$module,$dlname in
+ 	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+ 	  esac
++
++          # Remove Sysroot from path before write in .la file #
++          tmp_depen_libs=
++          for depen_lib in $dependency_libs; do
++            func_rm_sysroot_path $depen_lib
++            tmp_depen_libs="$tmp_depen_libs $rm_sysroot_path_result "
++          done
++          dependency_libs=$tmp_depen_libs
++          func_rm_sysroot_path $libdir
++          libdir="$rm_sysroot_path_result"
++
+ 	  $echo > $output "\
+ # $outputname - a libtool library file
+ # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
diff --git a/packages/libtool/libtool-sdk_1.5.10.bb b/packages/libtool/libtool-sdk_1.5.10.bb
new file mode 100644
index 0000000..1a36732
--- /dev/null
+++ b/packages/libtool/libtool-sdk_1.5.10.bb
@@ -0,0 +1,53 @@
+require libtool.inc
+require libtool_${PV}.bb
+
+PR = "r0"
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libtool-${PV}"
+SRC_URI_append = " file://rpath-control.patch;patch=1 \
+                   file://libdir-la.patch;patch=1 \
+                   file://libdir-la2.patch;patch=1 \
+                   file://prefix.patch;patch=1 \
+                   file://tag.patch;patch=1 \
+                   file://install-path-check.patch;patch=1 \
+                   file://nousrlib.patch;patch=1 \
+                   file://add_sysroot_function.patch;patch=1 \
+                   "
+
+S = "${WORKDIR}/libtool-${PV}"
+
+inherit sdk
+
+do_configure_prepend () {
+	rm -f ltmain.shT
+	date=`/bin/sh ./mkstamp < ./ChangeLog` && \
+        sed -e 's/@''PACKAGE@/libtool/' -e 's/@''VERSION@/1.5.10/' \
+            -e "s%@""TIMESTAMP@%$date%" ./ltmain.in > ltmain.shT
+	mv -f ltmain.shT ltmain.sh || \
+	        (rm -f ltmain.sh && cp ltmain.shT ltmain.sh && rm -f ltmain.shT)
+	cp ltmain.sh ./libltdl/
+}
+
+do_install () {
+	install -d ${D}${bindir}/
+	install -m 0755 ${HOST_SYS}-libtool ${D}${bindir}/
+	install -m 0755 libtoolize ${D}${bindir}/
+
+	install -d ${D}${libdir}/
+	oe_libinstall -a -so -C libltdl libltdl ${D}${libdir}
+
+	install -d ${D}${includedir}/
+	install -m 0644 libltdl/ltdl.h ${D}${includedir}
+
+	install -d ${D}${datadir}/libtool/
+	install -c config.guess ${D}${datadir}/libtool/
+	install -c config.sub ${D}${datadir}/libtool/
+	install -c -m 0644 ltmain.sh ${D}${datadir}/libtool/
+
+	install -d ${D}${datadir}/info/
+	install -c -m 0644 doc/libtool.info ${D}${datadir}/info/
+
+	install -d ${D}${datadir}/aclocal/
+	install -c -m 0645 libtool.m4 ${D}${datadir}/aclocal/
+        install -c -m 0644 ltdl.m4 ${D}${datadir}/aclocal/
+}
+
diff --git a/packages/meta/meta-toolchain.bb b/packages/meta/meta-toolchain.bb
index 3ce2a31..b651799 100644
--- a/packages/meta/meta-toolchain.bb
+++ b/packages/meta/meta-toolchain.bb
@@ -138,6 +138,7 @@ do_populate_sdk() {
 	script=${SDK_OUTPUT}/${prefix}/environment-setup
 	touch $script
 	echo 'export PATH=${prefix}/bin:$PATH' >> $script
+	echo 'export LIBTOOL_SYSROOT_PATH=${prefix}/${TARGET_SYS}' >> $script
 	echo 'export PKG_CONFIG_SYSROOT_DIR=${prefix}/${TARGET_SYS}' >> $script
 	echo 'export PKG_CONFIG_PATH=${prefix}/${TARGET_SYS}${layout_libdir}/pkgconfig' >> $script
 	echo 'export CONFIG_SITE=${prefix}/site-config' >> $script
diff --git a/packages/tasks/task-fso-toolchain-host.bb b/packages/tasks/task-fso-toolchain-host.bb
index afb1ce8..2b28de3 100644
--- a/packages/tasks/task-fso-toolchain-host.bb
+++ b/packages/tasks/task-fso-toolchain-host.bb
@@ -4,6 +4,6 @@ DESCRIPTION = "Packages for a standalone FSO SDK or external toolchain"
 LICENSE = "MIT"
 ALLOW_EMPTY = "1"
 
-PR = "r0"
+PR = "r1"
 
 PACKAGES = "${PN}"
diff --git a/packages/tasks/task-openmoko-toolchain-host.bb b/packages/tasks/task-openmoko-toolchain-host.bb
index 7f39d0c..7d4398b 100644
--- a/packages/tasks/task-openmoko-toolchain-host.bb
+++ b/packages/tasks/task-openmoko-toolchain-host.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Packages for a standalone Openmoko SDK or external toolchain"
 LICENSE = "MIT"
 ALLOW_EMPTY = "1"
 
-PR = "r1"
+PR = "r2"
 
 PACKAGES = "${PN}"
 
diff --git a/packages/tasks/task-sdk-host.bb b/packages/tasks/task-sdk-host.bb
index a8ac370..3707259 100644
--- a/packages/tasks/task-sdk-host.bb
+++ b/packages/tasks/task-sdk-host.bb
@@ -3,7 +3,7 @@
 #
 
 DESCRIPTION = "Host packages for the standalone SDK or external toolchain"
-PR = "r2"
+PR = "r3"
 LICENSE = "MIT"
 ALLOW_EMPTY = "1"
 
@@ -17,4 +17,5 @@ RDEPENDS_${PN} = "\
     gdb-cross-sdk \
     pkgconfig-sdk \
     opkg-sdk \
+    libtool-sdk \
     "
diff --git a/packages/tasks/task-slugos-toolchain-host.bb b/packages/tasks/task-slugos-toolchain-host.bb
index 7550301..a688f10 100644
--- a/packages/tasks/task-slugos-toolchain-host.bb
+++ b/packages/tasks/task-slugos-toolchain-host.bb
@@ -1,5 +1,5 @@
 require task-sdk-host.bb
-PR = "r0"
+PR = "r1"
 DESCRIPTION = "Packages for a standalone SlugOS external toolchain"
 ALLOW_EMPTY = "1"
 





More information about the Openembedded-commits mailing list