| 1 | # Copyright (C) 1992-2014 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) |
| 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 | |
| 20 | AC_DEFUN([ACX_CONFIGURE_DIR], |
| 21 | [ |
| 22 | in_src=$1 |
| 23 | in_build=$2 |
| 24 | |
| 25 | # Remove --cache-file, --srcdir, and --disable-option-checking arguments |
| 26 | # so they do not pile up. |
| 27 | ac_sub_configure_args= |
| 28 | ac_prev= |
| 29 | eval "set x $ac_configure_args" |
| 30 | shift |
| 31 | for ac_arg |
| 32 | do |
| 33 | if test -n "$ac_prev"; then |
| 34 | ac_prev= |
| 35 | continue |
| 36 | fi |
| 37 | case $ac_arg in |
| 38 | -cache-file | --cache-file | --cache-fil | --cache-fi \ |
| 39 | | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) |
| 40 | ac_prev=cache_file ;; |
| 41 | -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ |
| 42 | | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ |
| 43 | | --c=*) |
| 44 | ;; |
| 45 | --config-cache | -C) |
| 46 | ;; |
| 47 | -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) |
| 48 | ac_prev=srcdir ;; |
| 49 | -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) |
| 50 | ;; |
| 51 | -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) |
| 52 | ac_prev=prefix ;; |
| 53 | -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) |
| 54 | ;; |
| 55 | --disable-option-checking) |
| 56 | ;; |
| 57 | *) |
| 58 | case $ac_arg in |
| 59 | *\'*) ac_arg=`AS_ECHO(["$ac_arg"]) | sed "s/'/'\\\\\\\\''/g"` ;; |
| 60 | esac |
| 61 | AS_VAR_APPEND([ac_sub_configure_args], [" '$ac_arg'"]) ;; |
| 62 | esac |
| 63 | done |
| 64 | |
| 65 | # Always prepend --prefix to ensure using the same prefix |
| 66 | # in subdir configurations. |
| 67 | ac_arg="--prefix=$prefix" |
| 68 | case $ac_arg in |
| 69 | *\'*) ac_arg=`AS_ECHO(["$ac_arg"]) | sed "s/'/'\\\\\\\\''/g"` ;; |
| 70 | esac |
| 71 | ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" |
| 72 | |
| 73 | # Pass --silent |
| 74 | if test "$silent" = yes; then |
| 75 | ac_sub_configure_args="--silent $ac_sub_configure_args" |
| 76 | fi |
| 77 | |
| 78 | # Always prepend --disable-option-checking to silence warnings, since |
| 79 | # different subdirs can have different --enable and --with options. |
| 80 | ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" |
| 81 | |
| 82 | ac_popdir=`pwd` |
| 83 | ac_dir=$in_build |
| 84 | |
| 85 | ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" |
| 86 | _AS_ECHO_LOG([$ac_msg]) |
| 87 | _AS_ECHO([$ac_msg]) |
| 88 | AS_MKDIR_P(["$ac_dir"]) |
| 89 | |
| 90 | case $srcdir in |
| 91 | [[\\/]]* | ?:[[\\/]]* ) |
| 92 | ac_srcdir=$srcdir/$in_src ;; |
| 93 | *) # Relative name. |
| 94 | ac_srcdir=../$srcdir/$in_src ;; |
| 95 | esac |
| 96 | |
| 97 | cd "$ac_dir" |
| 98 | |
| 99 | ac_sub_configure=$ac_srcdir/configure |
| 100 | |
| 101 | # Make the cache file name correct relative to the subdirectory. |
| 102 | case $cache_file in |
| 103 | [[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;; |
| 104 | *) # Relative name. |
| 105 | ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; |
| 106 | esac |
| 107 | |
| 108 | AC_MSG_NOTICE([running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir]) |
| 109 | # The eval makes quoting arguments work. |
| 110 | eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ |
| 111 | --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || |
| 112 | AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir]) |
| 113 | |
| 114 | cd "$ac_popdir" |
| 115 | ])# ACX_CONFIGURE_DIR |