diff options
author | jlam <jlam> | 2002-12-26 17:17:32 +0000 |
---|---|---|
committer | jlam <jlam> | 2002-12-26 17:17:32 +0000 |
commit | 1744f93d534e81db3fa75277b1de3e4d146477e1 (patch) | |
tree | 12bb607a1c7a99a0902041e1b21536e05b922111 /mk | |
parent | 8424daacf16865316e39fb57b1209dd9f8c2494b (diff) | |
download | pkgsrc-1744f93d534e81db3fa75277b1de3e4d146477e1.tar.gz |
Add some libtool workarounds for software authors that don't follow the
libtool documentation. Specifically, many authors now link against an
uninstalled libtool archive with:
-L../package/source/dir -lfoo
instead of the correct (according to the libtool documentation):
../package/source/dir/libfoo.la
The workarounds convert the former into the latter. Changes originally
suggested by Rene Hexel <rh@netbsd.org> in private e-mail.
Diffstat (limited to 'mk')
-rw-r--r-- | mk/buildlink2/bsd.buildlink2.mk | 17 | ||||
-rw-r--r-- | mk/buildlink2/libtool-logic | 33 | ||||
-rw-r--r-- | mk/buildlink2/libtool-post-cache | 6 |
3 files changed, 55 insertions, 1 deletions
diff --git a/mk/buildlink2/bsd.buildlink2.mk b/mk/buildlink2/bsd.buildlink2.mk index c90c1819c24..97aeb1ac811 100644 --- a/mk/buildlink2/bsd.buildlink2.mk +++ b/mk/buildlink2/bsd.buildlink2.mk @@ -1,4 +1,4 @@ -# $NetBSD: bsd.buildlink2.mk,v 1.67 2002/12/26 17:08:56 jlam Exp $ +# $NetBSD: bsd.buildlink2.mk,v 1.68 2002/12/26 17:17:32 jlam Exp $ # # An example package buildlink2.mk file: # @@ -629,6 +629,12 @@ _BLNK_WRAP_PRIVATE_CACHE.LD= ${BUILDLINK_DIR}/bin/.ld-cache _BLNK_WRAP_PRIVATE_POST_CACHE.LD= ${BUILDLINK_DIR}/bin/.ld-post-cache _BLNK_WRAP_POST_LOGIC.LD= ${BUILDLINK_DIR}/bin/.ld-logic +_BLNK_WRAP_PRIVATE_PRE_CACHE.LIBTOOL= ${_BLNK_WRAP_PRIVATE_PRE_CACHE} +_BLNK_WRAP_PRIVATE_CACHE_ADD.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-cache-add +_BLNK_WRAP_PRIVATE_CACHE.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-cache +_BLNK_WRAP_PRIVATE_POST_CACHE.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-post-cache +_BLNK_WRAP_POST_LOGIC.LIBTOOL= ${BUILDLINK_DIR}/bin/.libtool-logic + # Allow BUILDLINK_SETENV.<wrappee> to override _BLNK_WRAP_SETENV.<wrappee>. .for _wrappee_ in ${_BLNK_WRAPPEES} . if defined(BUILDLINK_SETENV.${_wrappee_}) @@ -804,6 +810,11 @@ ${_BLNK_WRAP_PRIVATE_POST_CACHE.LD}: \ ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CP} -f ${.ALLSRC} ${.TARGET} +${_BLNK_WRAP_PRIVATE_POST_CACHE.LIBTOOL}: \ + ${.CURDIR}/../../mk/buildlink2/libtool-post-cache + ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} + ${_PKG_SILENT}${_PKG_DEBUG}${CP} -f ${.ALLSRC} ${.TARGET} + ${_BLNK_WRAP_PRE_CACHE}: ${.CURDIR}/../../mk/buildlink2/pre-cache ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CP} -f ${.ALLSRC} ${.TARGET} @@ -860,6 +871,10 @@ ${_BLNK_WRAP_POST_LOGIC.LD}: ${.CURDIR}/../../mk/buildlink2/ld-logic ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CP} -f ${.ALLSRC} ${.TARGET} +${_BLNK_WRAP_POST_LOGIC.LIBTOOL}: ${.CURDIR}/../../mk/buildlink2/libtool-logic + ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} + ${_PKG_SILENT}${_PKG_DEBUG}${CP} -f ${.ALLSRC} ${.TARGET} + ${_BLNK_LIBTOOL_DO_INSTALL}: ${.CURDIR}/../../mk/buildlink2/libtool-do-install ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} ${_PKG_SILENT}${_PKG_DEBUG}${CP} -f ${.ALLSRC} ${.TARGET} diff --git a/mk/buildlink2/libtool-logic b/mk/buildlink2/libtool-logic new file mode 100644 index 00000000000..c73f64e4f93 --- /dev/null +++ b/mk/buildlink2/libtool-logic @@ -0,0 +1,33 @@ +# $NetBSD: libtool-logic,v 1.1 2002/12/26 17:17:32 jlam Exp $ + +case $arg in +-L.|-L./*|-L..*|-L${WRKSRC}*) + case $fixlibpath in + yes) + lpath=`$echo "X$arg" | $Xsed -e "s/^-L//"` + $echo "*** [buildlink2] Warning: deprecated -L$lpath detected" + case "$rellpath" in + *"$lpath "*) ;; + *"$lpath"*) ;; + *) rellpath="$rellpath $lpath" ;; + 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 "*** [buildlink2] Warning: replaced $arg with $la" + arg="$la" + cachesettings='skipcache=yes' + fi + done + ;; + esac + addtoprivatecache=yes + ;; +esac diff --git a/mk/buildlink2/libtool-post-cache b/mk/buildlink2/libtool-post-cache new file mode 100644 index 00000000000..e77f9366e5b --- /dev/null +++ b/mk/buildlink2/libtool-post-cache @@ -0,0 +1,6 @@ +# $NetBSD: libtool-post-cache,v 1.1 2002/12/26 17:17:32 jlam Exp $ + +-L.|-L./*|-L..*|-L${WRKSRC}*|-l*) + skipcache=yes + ;; +esac |