summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorjlam <jlam>2002-12-26 17:17:32 +0000
committerjlam <jlam>2002-12-26 17:17:32 +0000
commit1744f93d534e81db3fa75277b1de3e4d146477e1 (patch)
tree12bb607a1c7a99a0902041e1b21536e05b922111 /mk
parent8424daacf16865316e39fb57b1209dd9f8c2494b (diff)
downloadpkgsrc-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.mk17
-rw-r--r--mk/buildlink2/libtool-logic33
-rw-r--r--mk/buildlink2/libtool-post-cache6
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