summaryrefslogtreecommitdiff
path: root/packages/libtool/libtool-1.5.10/add_sysroot_function.patch
blob: 4ce68d92b76409a71540876cf1329bb2974c50c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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