You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							120 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							120 lines
						
					
					
						
							4.1 KiB
						
					
					
				| # --- SDE-COPYRIGHT-NOTE-BEGIN --- | |
| # This copyright note is auto-generated by ./scripts/Create-CopyPatch. | |
| # | |
| # Filename: package/.../libtool/parse-config | |
| # Copyright (C) 2007 - 2009 The OpenSDE Project | |
| # Copyright (C) 2006 The T2 SDE Project | |
| # | |
| # More information can be found in the files COPYING and README. | |
| # | |
| # This program 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; version 2 of the License. A copy of the | |
| # GNU General Public License can be found in the file COPYING. | |
| # --- SDE-COPYRIGHT-NOTE-END --- | |
|  | |
| libtool_remove_la() | |
| { | |
| 	echo "Removing .la files..." | |
| 	grep '\.la$' $builddir/flist.txt | xargs rm -fv "$root/{}" | |
| } | |
|  | |
| # Some packges have outdated libtool that e.g. does not handle lib64. The | |
| # LIBTOOL-QUIRK flag allows automated updating of those files. | |
|  | |
| libtool_fixup() | |
| { | |
| 	local pref= ltmain= | |
|  | |
| 	if atstage native; then | |
| 		pref="$root" | |
| 	else | |
| 		pref="$base/build/$SDECFG_ID/TOOLCHAIN/tools.cross" | |
| 	fi | |
|  | |
| 	for ltmain in "$pref/usr/share/libtool"/{,config/}ltmain.sh; do | |
| 		[ ! -s "$ltmain" ] || break | |
| 	done | |
|  | |
| 	[ -f configure.in -o -f configure.ac ] && libtoolize -c -f | |
|  | |
| 	find -name libtool -o -name ltmain.sh | while read fn; do | |
| 		case "$fn" in | |
| 			*libtool) cp -fv "$pref/usr/bin/libtool" "$fn" ;; | |
| 			*) cp -fv "$ltmain" "$fn" ;; | |
| 		esac | |
| 	done | |
| } | |
|  | |
| # Many libtool and ltmain files contain an error which is hostile in | |
| # our build environment: | |
| # - on systems where the libdir is not */lib, libtool still searches | |
| #   /lib and /usr/lib first | |
| # - removal of temporary paths during library search does not work, | |
| #   this concerns mainly dependency_libs in .la files where build system | |
| #   paths and other things survive | |
| # | |
| # We try to correct any libtool and ltmain file now: | |
| libtool_correct_files() { | |
| 	# do not do anything if we're outside builddir (like sysfiles is) | |
| 	[[ ${PWD//src.$pkg.$config.$id/} = $PWD ]] && return | |
|  | |
| 	# find all libtool etal files, and sed them | |
|         find -type f -name "libtool*" -o -name "ltmain*" -o -name "ltconfig*" -o -name "ltcf*" | while read f; do | |
| 		cp $f $f.ltcorrect | |
|                 sed -i \ | |
| 		       -e 's,sys_lib_dlsearch_path_spec="/lib .*$lt_ld_extra.*,sys_lib_dlsearch_path_spec="$lt_ld_extra",' \ | |
|                        -e "s,'s% \$path % %g',\"s% \$path % %g\",g" -e "s,'s% -L\$path % %g',\"s% -L\$path % %g\",g" \ | |
|                        -e 's,echo "$\(lib_search_path\|deplibs\|dependency_libs\) ",echo " $\1 ",g' \ | |
|                         $f | |
|  | |
| 		# previous sed does (per line): | |
| 		# 1. Dynamic library search path | |
| 		#   libtool.m4/ltmain.sh use the ld.so.conf list (lt_ld_extra) of path to search for dynamic libs, | |
| 		#   that variable is, however prefixed with "-L/lib -L/usr/lib" statically, the latter paths are | |
| 		#   removed by the sed expression | |
| 		# 2. Wrong quotes around sed expression | |
| 		#   A cleanup routine for temporary paths (grep for notinst_path) in libtool*/ltmain.* removes | |
| 		#   paths that should not appear after installation of the library. For this to work the "$path" | |
| 		#   variable must be evaluated (which is not possible with ' around it) | |
| 		# 3. Sed expects a leading whitespace | |
| 		#   To be sure that the cleaning process (mentioned in 2.) works also for the first argument, | |
| 		#   a " " is prepended before it is run through the sed expression (see 2.). | |
|  | |
| 		diff $f.ltcorrect $f >/dev/null || echo_warning "Corrected $f" | |
|  | |
| 		rm -f $f.ltcorrect | |
|         done | |
| } | |
|  | |
| libtool_final_check() | |
| { | |
| 	local ld=${libdir##*/} | |
| 	# do not do anything if we're outside builddir (like sysfiles is) | |
| 	[[ ${PWD//src.$pkg.$config.$id/} = $PWD ]] && return | |
| 	if [ -f libtool -a -f $root/usr/bin/libtool ] && | |
| 	   ! egrep -q "sys_lib_search_path_spec=.* /usr/$ld " libtool | |
| 	then | |
| 		echo_warning "Overwriting libtool - configure broken beyond believe." | |
| 		cp $root/usr/bin/libtool . | |
| 		echo -e "#!/bin/true" > missing | |
| 	fi | |
| } | |
|  | |
| if ! atstage toolchain && hasflag LIBTOOL-QUIRK; then | |
|         hook_add preconf 8 libtool_fixup | |
| elif ! hasflag NO-LIBTOOL-FIX; then | |
| 	hook_add preconf 8 libtool_correct_files | |
| fi | |
|  | |
| if ! hasflag NO-LIBTOOL-FIX; then | |
| 	# use our libtool widely | |
| 	export LIBTOOL=${archprefix}libtool | |
|  | |
| 	#hook_add premake 7 libtool_final_check | |
| fi | |
|  | |
| if ! atstage native; then | |
| 	hook_add postflist 5 libtool_remove_la | |
| fi | |
| 
 | |
| 
 |