dnl -*- shell-script -*- dnl dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana dnl University Research and Technology dnl Corporation. All rights reserved. dnl Copyright (c) 2004-2005 The University of Tennessee and The University dnl of Tennessee Research Foundation. All rights dnl reserved. dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, dnl University of Stuttgart. All rights reserved. dnl Copyright (c) 2004-2005 The Regents of the University of California. dnl All rights reserved. dnl Copyright (c) 2012-2020 Cisco Systems, Inc. All rights reserved dnl Copyright (c) 2014-2019 Intel, Inc. All rights reserved. dnl Copyright (c) 2015 Research Organization for Information Science dnl and Technology (RIST). All rights reserved. dnl $COPYRIGHT$ dnl dnl Additional copyrights may follow dnl dnl $HEADER$ dnl AC_DEFUN([PRTE_CONFIG_SUBDIR],[ PRTE_VAR_SCOPE_PUSH([subdir_parent sub_configure subdir_dir subdir_srcdir subdir_cache_file subdir_args subdir_dots total_dir dir_part temp]) # # Invoke configure in a specific subdirectory. # # $1 is the directory to invoke in # $2 is the list of arguments to pass # $3 is actions to execute upon success # $4 is actions to execute upon failure # subdir_dir="$1" subdir_args="$2" subdir_success="$3" subdir_failure="$4" # # Sanity checks # if test "$subdir_dir" != ":" && test -d $srcdir/$subdir_dir; then AC_MSG_NOTICE([PRTE configuring in $subdir_dir]) # # Gotta check where srcdir is for VPATH builds. If srcdir is not # ., then we need to mkdir the subdir. Otherwise, we can just cd # into it. # case $srcdir in .) ;; *) { case $subdir_dir in [[\\/]]* | ?:[[\\/]]* ) total_dir=;; *) total_dir=.;; esac temp=$subdir_dir for dir_part in `IFS='/\\'; set X $temp; shift; echo "$[@]"`; do case $dir_part in # Skip DOS drivespec ?:) total_dir=$dir_part ;; *) total_dir=$total_dir/$dir_part test -d "$total_dir" || mkdir "$total_dir" || AC_MSG_ERROR([cannot create $subdir_dir]) ;; esac done; } if test -d ./$subdir_dir; then :; else AC_MSG_ERROR([cannot create `pwd`/$subdir_dir]) fi ;; esac # # Move into the target directory # subdir_parent=`pwd` cd $subdir_dir # # Make a "../" for each directory in $subdir_dir. # subdir_dots=`[echo $subdir_dir | sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g]'` # # Construct the --srcdir argument # case $srcdir in .) # In place subdir_srcdir="$srcdir" ;; [[\\/]* | ?:[\\/]*] ) # Absolute path subdir_srcdir="$srcdir/$subdir_dir" ;; *) # Relative path subdir_srcdir="$subdir_dots$srcdir/$subdir_dir" ;; esac # # Construct the --cache-file argument # # BWB - subdir caching is a pain since we change CFLAGS and all that. # Just disable it for now subdir_cache_file="/dev/null" # # Invoke the configure script in the subdirectory # sub_configure="$SHELL '$subdir_srcdir/configure'" AC_MSG_NOTICE([running $sub_configure $subdir_args --cache-file=$subdir_cache_file --srcdir=$subdir_srcdir --disable-option-checking]) eval "$sub_configure $subdir_args \ --cache-file=\"\$subdir_cache_file\" --srcdir=\"$subdir_srcdir\" --disable-option-checking" if test "$?" = "0"; then eval $subdir_success AC_MSG_NOTICE([$sub_configure succeeded for $subdir_dir]) else eval $subdir_failure AC_MSG_NOTICE([$sub_configure *failed* for $subdir_dir]) fi # # Go back to the topdir # cd $subdir_parent fi # # Clean up # PRTE_VAR_SCOPE_POP])dnl