| 1 | # Copyright (C) 1992-2019 Free Software Foundation, Inc. |
| 2 | # |
| 3 | # This file is free software; the Free Software Foundation gives |
| 4 | # unlimited permission to copy and/or distribute it, with or without |
| 5 | # modifications, as long as this notice is preserved. |
| 6 | |
| 7 | # ACX_CONFIGURE_DIR(SRC-DIR-NAME, BUILD-DIR-NAME, EXTRA-ARGS) |
| 8 | # --------------------------- |
| 9 | # |
| 10 | # Configure a subdirectory. This is an alternative to |
| 11 | # AC_CONFIG_SUBDIRS that allows pointing the source directory |
| 12 | # somewhere else. The build directory is always a subdirectory of the |
| 13 | # top build directory. This is heavilly based on Autoconf 2.64's |
| 14 | # _AC_OUTPUT_SUBDIRS. |
| 15 | # |
| 16 | # Inputs: |
| 17 | # - SRC-DIR-NAME is the source directory, relative to $srcdir. |
| 18 | # - BUILD-DIR-NAME is `top-build -> build' |
| 19 | # - EXTRA-ARGS is an optional list of extra arguments to add |
| 20 | # at the end of the configure command. |
| 21 | |
| 22 | AC_DEFUN([ACX_CONFIGURE_DIR], |
| 23 | [ |
| 24 | in_src=$1 |
| 25 | in_build=$2 |
| 26 | in_extra_args=$3 |
| 27 | |
| 28 | # Remove --cache-file, --srcdir, and --disable-option-checking arguments |
| 29 | # so they do not pile up. |
| 30 | ac_sub_configure_args= |
| 31 | ac_prev= |
| 32 | eval "set x $ac_configure_args" |
| 33 | shift |
| 34 | for ac_arg |
| 35 | do |
| 36 | if test -n "$ac_prev"; then |
| 37 | ac_prev= |
| 38 | continue |
| 39 | fi |
| 40 | case $ac_arg in |
| 41 | -cache-file | --cache-file | --cache-fil | --cache-fi \ |
| 42 | | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) |
| 43 | ac_prev=cache_file ;; |
| 44 | -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ |
| 45 | | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ |
| 46 | | --c=*) |
| 47 | ;; |
| 48 | --config-cache | -C) |
| 49 | ;; |
| 50 | -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) |
| 51 | ac_prev=srcdir ;; |
| 52 | -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) |
| 53 | ;; |
| 54 | -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) |
| 55 | ac_prev=prefix ;; |
| 56 | -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) |
| 57 | ;; |
| 58 | --disable-option-checking) |
| 59 | ;; |
| 60 | *) |
| 61 | case $ac_arg in |
| 62 | *\'*) ac_arg=`AS_ECHO(["$ac_arg"]) | sed "s/'/'\\\\\\\\''/g"` ;; |
| 63 | esac |
| 64 | AS_VAR_APPEND([ac_sub_configure_args], [" '$ac_arg'"]) ;; |
| 65 | esac |
| 66 | done |
| 67 | |
| 68 | # Always prepend --prefix to ensure using the same prefix |
| 69 | # in subdir configurations. |
| 70 | ac_arg="--prefix=$prefix" |
| 71 | case $ac_arg in |
| 72 | *\'*) ac_arg=`AS_ECHO(["$ac_arg"]) | sed "s/'/'\\\\\\\\''/g"` ;; |
| 73 | esac |
| 74 | ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" |
| 75 | |
| 76 | # Pass --silent |
| 77 | if test "$silent" = yes; then |
| 78 | ac_sub_configure_args="--silent $ac_sub_configure_args" |
| 79 | fi |
| 80 | |
| 81 | # Always prepend --disable-option-checking to silence warnings, since |
| 82 | # different subdirs can have different --enable and --with options. |
| 83 | ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" |
| 84 | |
| 85 | ac_popdir=`pwd` |
| 86 | ac_dir=$in_build |
| 87 | |
| 88 | ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" |
| 89 | _AS_ECHO_LOG([$ac_msg]) |
| 90 | _AS_ECHO([$ac_msg]) |
| 91 | AS_MKDIR_P(["$ac_dir"]) |
| 92 | |
| 93 | case $srcdir in |
| 94 | [[\\/]]* | ?:[[\\/]]* ) |
| 95 | ac_srcdir=$srcdir/$in_src ;; |
| 96 | *) # Relative name. |
| 97 | ac_srcdir=../$srcdir/$in_src ;; |
| 98 | esac |
| 99 | |
| 100 | cd "$ac_dir" |
| 101 | |
| 102 | ac_sub_configure=$ac_srcdir/configure |
| 103 | |
| 104 | # Make the cache file name correct relative to the subdirectory. |
| 105 | case $cache_file in |
| 106 | [[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;; |
| 107 | *) # Relative name. |
| 108 | ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; |
| 109 | esac |
| 110 | |
| 111 | if test -n "$in_extra_args"; then |
| 112 | # Add the extra args at the end. |
| 113 | ac_sub_configure_args="$ac_sub_configure_args $in_extra_args" |
| 114 | fi |
| 115 | |
| 116 | AC_MSG_NOTICE([running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir]) |
| 117 | # The eval makes quoting arguments work. |
| 118 | eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ |
| 119 | --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || |
| 120 | AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir]) |
| 121 | |
| 122 | cd "$ac_popdir" |
| 123 | ])# ACX_CONFIGURE_DIR |