File: opal_config_subdir.m4

package info (click to toggle)
openmpi 5.0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 202,312 kB
  • sloc: ansic: 612,441; makefile: 42,495; sh: 11,230; javascript: 9,244; f90: 7,052; java: 6,404; perl: 5,154; python: 1,856; lex: 740; fortran: 61; cpp: 20; tcl: 12
file content (147 lines) | stat: -rw-r--r-- 4,100 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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-2015 Cisco Systems, Inc.  All rights reserved.
dnl Copyright (c) 2014      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([OPAL_CONFIG_SUBDIR],[
OPAL_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([OPAL 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
#

OPAL_VAR_SCOPE_POP])dnl