diff options
Diffstat (limited to 'mk/buildlink3/libtool-post-logic')
-rw-r--r-- | mk/buildlink3/libtool-post-logic | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/mk/buildlink3/libtool-post-logic b/mk/buildlink3/libtool-post-logic new file mode 100644 index 00000000000..8941f05af3e --- /dev/null +++ b/mk/buildlink3/libtool-post-logic @@ -0,0 +1,57 @@ +# $NetBSD: libtool-post-logic,v 1.2 2003/09/02 06:59:58 jlam Exp $ +# +# Workaround software authors that don't follow the libtool +# documentation and link against uninstalled libtool archives with: +# +# -L../package/source/dir -lfoo +# +# instead of the correct (according to the libtool documentation) +# +# ../package/source/dir/libfoo.la +# +# We convert the former into the latter by remembering all "local" +# directories that are mentioned in -L* arguments to to libtool +# wrapper, and checking to see if <dir>/libfoo.la exists when we see +# "-lfoo" on the libtool command line. + +case $arg in +-L.|-L./*|-L..*|-L[!/]*|-L${WRKSRC}*) + case $fixlibpath in + yes) + case $arg in + */.libs) + # ignore -L.../.libs + ;; + *) + $echo "*** [buildlink3] Warning: libtool detected $arg" >> $wrapperlog + $echo "*** [buildlink3] Warning: libtool detected $arg" 1>&2 + lpath=`$echo "X$arg" | $Xsed -e "s/^-L//"` + case "$rellpath" in + *"$lpath "*) ;; + *"$lpath"*) ;; + *) rellpath="$rellpath $lpath" ;; + esac + ;; + esac + ;; + esac + ;; +-l*) + case $fixlibpath in + yes) + lib=`$echo "X$arg" | $Xsed -e "s/^-l//"` + for dir in $rellpath; do + la="$dir/lib$lib.la" + if $test -f "$la"; then + $echo "*** [buildlink3] Warning: libtool replaced $arg with $la" >> $wrapperlog + $echo "*** [buildlink3] Warning: libtool replaced $arg with $la" 1>&2 + arg="$la" + cachesettings='skipcache=yes' + break + fi + done + ;; + esac + addtoprivatecache=yes + ;; +esac |