Index: Mk/Scripts/set-late-configure-args.sh =================================================================== --- /dev/null +++ Mk/Scripts/set-late-configure-args.sh @@ -0,0 +1,79 @@ +#!/bin/sh +# ports/Mk/Scripts/set-late-configure-args.sh - called from ports/Mk/bsd.stage.mk +# $FreeBSD$ +# +# MAINTAINER: portmgr@FreeBSD.org +# +# Determine what features configure supports and set some wanted defaults. + + +set -e + +. "${dp_SCRIPTSDIR}/functions.sh" + +validate_env \ + dp_CONFIGURE_ARGS \ + dp_CONFIGURE_CMD \ + dp_CONFIGURE_TARGET \ + dp_GNU_CONFIGURE_MANPREFIX \ + dp_GNU_CONFIGURE_PREFIX \ + dp_INFO_PATH \ + dp_INFO_SUBDIR \ + dp_MAKE_JOBS_NUMBER \ + # For sorting with previous trailing backslash. + +[ -n "${DEBUG_MK_SCRIPTS}" -o \ + -n "${DEBUG_MK_SCRIPTS_SET_LATE_CONFIGURE_ARGS}" ] && set -x + +set -u + +append() +{ + configure_args="${configure_args}${configure_args:+ }$@" +} + +configure_args= + +# Parse --version for --build behavior +want_build=1 +while read line; do + case "${line}" in + *[aA]utoconf*2.13*|*Unrecognized\ option*) + want_build=0 + break + ;; + esac +done <<-EOF +$("${dp_CONFIGURE_CMD}" --version 2>&1) +EOF +if [ ${want_build} -eq 1 ]; then + append "--build=${dp_CONFIGURE_TARGET}" +else + append "${dp_CONFIGURE_TARGET}" +fi + +# Parse --help +while read line; do + case "${line}" in + --disable-silent-rules*) + append "--disable-silent-rules" + ;; + --enable-jobserver\[*#\]*) + append "--enable-jobserver=${dp_MAKE_JOBS_NUMBER}" + ;; + --infodir*) + append "--infodir=${dp_GNU_CONFIGURE_PREFIX}/${dp_INFO_PATH}${dp_INFO_SUBDIR:+/}${dp_INFO_SUBDIR}" + ;; + --localstatedir*) + # Only add if not already present. + [ -n "${dp_CONFIGURE_ARGS%%*--localstatedir=*}" ] && + append "--localstatedir=/var" + ;; + --mandir*) + append "--mandir=${dp_GNU_CONFIGURE_MANPREFIX}/man" + ;; + esac +done <<-EOF +$("${dp_CONFIGURE_CMD}" --help 2>&1) +EOF +echo "${configure_args}" Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -2537,28 +2537,17 @@ HAS_CONFIGURE= yes SET_LATE_CONFIGURE_ARGS= \ - _LATE_CONFIGURE_ARGS="" ; \ - if [ -z "${CONFIGURE_ARGS:M--localstatedir=*:Q}" ] && \ - ${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- --localstatedir > /dev/null; then \ - _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --localstatedir=/var" ; \ - fi ; \ - if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--mandir'`" ]; then \ - _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --mandir=${GNU_CONFIGURE_MANPREFIX}/man" ; \ - fi ; \ - if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--disable-silent-rules'`" ]; then \ - _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --disable-silent-rules" ; \ - fi ; \ - if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--enable-jobserver\[.*\#\]'`" ]; then \ - _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --enable-jobserver=${MAKE_JOBS_NUMBER}" ; \ - fi ; \ - if [ ! -z "`${CONFIGURE_CMD} --help 2>&1 | ${GREP} -- '--infodir'`" ]; then \ - _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --infodir=${GNU_CONFIGURE_PREFIX}/${INFO_PATH}/${INFO_SUBDIR}" ; \ - fi ; \ - if [ -z "`${CONFIGURE_CMD} --version 2>&1 | ${EGREP} -i '(autoconf.*2\.13|Unrecognized option)'`" ]; then \ - _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} --build=${CONFIGURE_TARGET}" ; \ - else \ - _LATE_CONFIGURE_ARGS="$${_LATE_CONFIGURE_ARGS} ${CONFIGURE_TARGET}" ; \ - fi ; + _LATE_CONFIGURE_ARGS=`${SETENV} \ + dp_SCRIPTSDIR="${SCRIPTSDIR}" \ + dp_CONFIGURE_ARGS="${CONFIGURE_ARGS}" \ + dp_CONFIGURE_CMD="${CONFIGURE_CMD}" \ + dp_CONFIGURE_TARGET="${CONFIGURE_TARGET}" \ + dp_GNU_CONFIGURE_MANPREFIX="${GNU_CONFIGURE_MANPREFIX}" \ + dp_GNU_CONFIGURE_PREFIX="${GNU_CONFIGURE_PREFIX}" \ + dp_INFO_PATH="${INFO_PATH}" \ + dp_INFO_SUBDIR="${INFO_SUBDIR}" \ + dp_MAKE_JOBS_NUMBER="${MAKE_JOBS_NUMBER}" \ + ${SH} ${SCRIPTSDIR}/set-late-configure-args.sh`; .endif # Passed to most of script invocations