blob: c56b93ad3022936173e233e9d801f0c572b4a13d [file] [log] [blame]
# Copyright (C) 1992-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# ACX_CONFIGURE_DIR(SRC-DIR-NAME, BUILD-DIR-NAME, EXTRA-ARGS)
# ---------------------------
#
# Configure a subdirectory. This is an alternative to
# AC_CONFIG_SUBDIRS that allows pointing the source directory
# somewhere else. The build directory is always a subdirectory of the
# top build directory. This is heavilly based on Autoconf 2.64's
# _AC_OUTPUT_SUBDIRS.
#
# Inputs:
# - SRC-DIR-NAME is the source directory, relative to $srcdir.
# - BUILD-DIR-NAME is `top-build -> build'
# - EXTRA-ARGS is an optional list of extra arguments to add
# at the end of the configure command.
AC_DEFUN([ACX_CONFIGURE_DIR],
[
in_src=$1
in_build=$2
in_extra_args=$3
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
# so they do not pile up.
ac_sub_configure_args=
ac_prev=
eval "set x $ac_configure_args"
shift
for ac_arg
do
if test -n "$ac_prev"; then
ac_prev=
continue
fi
case $ac_arg in
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
| --c=*)
;;
--config-cache | -C)
;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
;;
--disable-option-checking)
;;
*)
case $ac_arg in
*\'*) ac_arg=`AS_ECHO(["$ac_arg"]) | sed "s/'/'\\\\\\\\''/g"` ;;
esac
AS_VAR_APPEND([ac_sub_configure_args], [" '$ac_arg'"]) ;;
esac
done
# Always prepend --prefix to ensure using the same prefix
# in subdir configurations.
ac_arg="--prefix=$prefix"
case $ac_arg in
*\'*) ac_arg=`AS_ECHO(["$ac_arg"]) | sed "s/'/'\\\\\\\\''/g"` ;;
esac
ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
# Pass --silent
if test "$silent" = yes; then
ac_sub_configure_args="--silent $ac_sub_configure_args"
fi
# Always prepend --disable-option-checking to silence warnings, since
# different subdirs can have different --enable and --with options.
ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
ac_popdir=`pwd`
ac_dir=$in_build
ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
_AS_ECHO_LOG([$ac_msg])
_AS_ECHO([$ac_msg])
AS_MKDIR_P(["$ac_dir"])
case $srcdir in
[[\\/]]* | ?:[[\\/]]* )
ac_srcdir=$srcdir/$in_src ;;
*) # Relative name.
ac_srcdir=../$srcdir/$in_src ;;
esac
cd "$ac_dir"
ac_sub_configure=$ac_srcdir/configure
# Make the cache file name correct relative to the subdirectory.
case $cache_file in
[[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;;
*) # Relative name.
ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
esac
if test -n "$in_extra_args"; then
# Add the extra args at the end.
ac_sub_configure_args="$ac_sub_configure_args $in_extra_args"
fi
AC_MSG_NOTICE([running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir])
# The eval makes quoting arguments work.
eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
--cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir])
cd "$ac_popdir"
])# ACX_CONFIGURE_DIR