From da0affead9244fe5a2681598fc6c9dcc6c2f897c Mon Sep 17 00:00:00 2001 From: Roland Kaufmann Date: Wed, 14 Aug 2013 21:41:23 +0200 Subject: [PATCH] Search for directory containing build scripts Currently only the source tree is "searched", but the template could be expanded to look in another/more locations (or be specified explicitly on the command-line with a --with-opm-macros= option) --- configure | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/configure b/configure index eea170f93..6572cc654 100755 --- a/configure +++ b/configure @@ -1,3 +1,35 @@ #!/bin/sh +# this file is supposed to be located in the source directory +src_dir=$(dirname $0) + +# scan the arguments and set this if build macros could be specified +mod_dir= +for OPT in "$@"; do + case "$OPT" in + --with-opm-macros=*) + # remove everything before equal sign and assign the rest + mod_dir=${OPT#*=} + # tilde expansion; note that doing eval may have side effects + mod_dir=$(eval echo $mod_dir) + # absolute path + [ -d "$mod_dir" ] && mod_dir=$(cd $mod_dir ; pwd) + ;; + esac +done + +# if it isn't specified, the look around in other known places +conf_file=cmake/Scripts/configure +if [ -z "$mod_dir" ]; then + if [ -r "$src_dir/$conf_file" ]; then + mod_dir="$src_dir" + fi +fi + +# terminate with error message here if the module directory is not found +if [ ! -r "$mod_dir/$conf_file" ]; then + echo Build macros not located in \"$mod_dir\", use --with-opm-macros= to specify! 1>&2 + exit 1 +fi + # forward to the corresponding script in the cmake/Scripts/ directory -exec $(dirname $0)/cmake/Scripts/configure "$@" +exec "$mod_dir/$conf_file" --src-dir="$src_dir" "$@"