summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2014-01-27 07:29:32 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2014-01-27 07:29:32 +0000
commit5d68e6a30ce5f3fbf2cc04ff6e4a9a624e4f7822 (patch)
tree9463a44d4109c702b91eb61a5343959d3962f183
parent1fce2b04404159dd61c0d85a7b9d9b5e7ad43e14 (diff)
downloadfreebsd-ports-5d68e6a30ce5f3fbf2cc04ff6e4a9a624e4f7822.zip
Add USES=desthack
This allow to pass DESTDIR through configure --prefix to ports that are not destdir aware Obtained from: OpenBSD ports tree (discussed in Malta with Marc Espie)
-rw-r--r--Mk/Uses/desthack.mk29
-rw-r--r--Mk/bsd.port.mk5
2 files changed, 32 insertions, 2 deletions
diff --git a/Mk/Uses/desthack.mk b/Mk/Uses/desthack.mk
new file mode 100644
index 000000000000..eb49af650cfc
--- /dev/null
+++ b/Mk/Uses/desthack.mk
@@ -0,0 +1,29 @@
+#
+# $FreeBSD$
+#
+# Handle gnu configure that does not properly support DESTDIR
+#
+# MAINTAINER: portmgr@FreeBSD.org
+#
+# Feature: desthack
+# Usage: USES=desthack
+# Valide ARGS: none
+#
+
+.if !defined(_INCLUDE_USES_DESTHACK_MK)
+_INCLUDE_USES_DESTHACK_MK= yes
+
+.if defined(_desthack_ARGS)
+IGNORE= USES=desthack does not require args
+.endif
+
+_USES_POST= desthack
+GNU_CONFIGURE_PREFIX= \$${${DESTDIRNAME}}${PREFIX}
+GNU_CONFIGURE_MANPREFIX= \$${${DESTDIRNAME}}${MANPREFIX}
+.endif
+
+.if defined(_POSTMKINCLUDED) && !defined(_INCLUDE_USES_DESTHACK_POST_MK)
+_INCLUDE_USES_DESTHACK_POST_MK= yes
+post-stage:
+ @${SED} -i '' -e 's,${STAGEDIR},,g' ${STAGEDIR}${PREFIX}/lib/*.la
+.endif
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 20578ccc3883..76d8c00b4ae4 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -2780,6 +2780,7 @@ CONFIGURE_FAIL_MESSAGE?= "Please report the problem to ${MAINTAINER} [maintainer
CONFIGURE_MAX_CMD_LEN!= ${SYSCTL} -n kern.argmax
.endif
GNU_CONFIGURE_PREFIX?= ${PREFIX}
+GNU_CONFIGURE_MANPREFIX?= ${MANPREFIX}
CONFIG_SITE?= ${PORTSDIR}/Templates/config.site
CONFIGURE_ARGS+= --prefix=${GNU_CONFIGURE_PREFIX} $${_LATE_CONFIGURE_ARGS}
CONFIGURE_ENV+= CONFIG_SITE=${CONFIG_SITE} lt_cv_sys_max_cmd_len=${CONFIGURE_MAX_CMD_LEN}
@@ -2788,10 +2789,10 @@ HAS_CONFIGURE= yes
SET_LATE_CONFIGURE_ARGS= \
_LATE_CONFIGURE_ARGS="" ; \
if [ ! -z "`./${CONFIGURE_SCRIPT} --help 2>&1 | ${GREP} -- '--mandir'`" ]; then \
- _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --mandir=${MANPREFIX}/man" ; \
+ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --mandir=${GNU_CONFIGURE_MANPREFIX}/man" ; \
fi ; \
if [ ! -z "`./${CONFIGURE_SCRIPT} --help 2>&1 | ${GREP} -- '--infodir'`" ]; then \
- _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --infodir=${PREFIX}/${INFO_PATH}/${INFO_SUBDIR}" ; \
+ _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --infodir=${GNU_CONFIGURE_PREFIX}/${INFO_PATH}/${INFO_SUBDIR}" ; \
fi ; \
if [ -z "`./${CONFIGURE_SCRIPT} --version 2>&1 | ${EGREP} -i '(autoconf.*2\.13|Unrecognized option)'`" ]; then \
_LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --build=${CONFIGURE_TARGET}" ; \