2
dnl detects the cca tools environment
3
dnl author: Joseph Kenny, jpkenny@sandia.gov
5
dnl predefined variables:
6
dnl CCAFE_CONFIG full path to ccafe-config (optional)
7
dnl ENABLE_PYTHON enable python bindings (yes/no)
10
dnl CCAFE_CONFIG CCAFE_INCLUDE CCAFE_LIB CCAFE_SHARE CCAFE_BIN
11
dnl CCAFE_MPI_ENABLE CCAFE_MPI_INCLUDE CCAFE_MPI_LIB CCAFE_MPI_BIN
12
dnl CCA_SPEC_BABEL_CONFIG CCA_SPEC_BABEL_INCLUDE
13
dnl CCA_SPEC_BABEL_LIB CCA_SPEC_BABEL_SHARE
14
dnl CCA_SPEC_CLASSIC_CONFIG CCA_SPEC_CLASSIC_INCLUDE
15
dnl CCA_SPEC_CLASSIC_LIB CCA_SPEC_CLASSIC_SHARE
16
dnl BABEL_CONFIG BABEL_INCLUDE BABEL_LIB BABEL_SHARE BABEL_BIN
17
dnl BABEL_CC BABEL_CFLAGS BABEL_CXX BABEL_CXXFLAGS
19
dnl BABEL_PYTHON_ENABLE CCAFE_PYTHON_ENABLE
20
dnl BABEL_PYTHON BABEL_PYTHON_VERSION
21
dnl BABEL_PYTHON_LIB BABEL_PYTHON_INCLUDE
23
AC_DEFUN([AC_CHECK_CCA],[
25
# ccaffeine gives us everything else
26
AC_ARG_WITH(ccafe-config,
27
[ --with-ccafe-config path to the ccafe-config script.],
28
[ CCAFE_CONFIG=$withval ],
29
[ if test -z $CCAFE_CONFIG || test ! -x $CCAFE_CONFIG; then
30
AC_PATH_PROG(CCAFE_CONFIG,ccafe-config,"not-found")
34
if ! test -x $CCAFE_CONFIG; then
35
AC_MSG_ERROR([ccaffeine not found, use --with-ccafe-config])
37
CCAFE_INCLUDE=`$CCAFE_CONFIG --var CCAFE_pkgincludedir`
38
CCAFE_LIB=`$CCAFE_CONFIG --var CCAFE_pkglibdir`
39
CCAFE_SHARE=`$CCAFE_CONFIG --var CCAFE_pkgdatadir`
40
CCAFE_BIN=`$CCAFE_CONFIG --var CCAFE_bindir`
41
AC_SUBST(CCAFE_CONFIG)
42
AC_SUBST(CCAFE_INCLUDE)
47
# check for cca-spec-babel
48
CCA_SPEC_BABEL_CONFIG=`$CCAFE_CONFIG --var CCAFE_CCA_SPEC_BABEL_CONFIG`
49
if test -z $CCA_SPEC_BABEL_CONFIG || ! test -x $CCA_SPEC_BABEL_CONFIG; then
50
AC_MSG_ERROR([can't find cca-spec-babel-config])
52
CCA_SPEC_BABEL_INCLUDE=`$CCA_SPEC_BABEL_CONFIG --var CCASPEC_pkgincludedir`
53
CCA_SPEC_BABEL_LIB=`$CCA_SPEC_BABEL_CONFIG --var CCASPEC_pkglibdir`
54
CCA_SPEC_BABEL_SHARE=`$CCA_SPEC_BABEL_CONFIG --var CCASPEC_pkgdatadir`
55
AC_SUBST(CCA_SPEC_BABEL_CONFIG)
56
AC_SUBST(CCA_SPEC_BABEL_INCLUDE)
57
AC_SUBST(CCA_SPEC_BABEL_LIB)
58
AC_SUBST(CCA_SPEC_BABEL_SHARE)
60
# check for cca-spec-classic
61
CCA_SPEC_CLASSIC_ROOT=`$CCAFE_CONFIG --var CCAFE_CLASSIC_CCA_ROOT`
62
CCA_SPEC_CLASSIC_CONFIG="$CCA_SPEC_CLASSIC_ROOT/bin/cca-spec-classic-config"
63
if test -z $CCA_SPEC_CLASSIC_CONFIG || test ! -e $CCA_SPEC_CLASSIC_CONFIG; then
64
AC_MSG_ERROR([can't find cca-spec-classic-config])
66
CCA_SPEC_CLASSIC_INCLUDE=`$CCA_SPEC_CLASSIC_CONFIG --var CLASSIC_pkgincludedir`
67
CCA_SPEC_CLASSIC_LIB=`$CCA_SPEC_CLASSIC_CONFIG --var CLASSIC_pkglibdir`
68
CCA_SPEC_CLASSIC_SHARE=`$CCA_SPEC_CLASSIC_CONFIG --var CLASSIC_pkgdatadir`
69
AC_SUBST(CCA_SPEC_CLASSIC_CONFIG)
70
AC_SUBST(CCA_SPEC_CLASSIC_INCLUDE)
71
AC_SUBST(CCA_SPEC_CLASSIC_LIB)
72
AC_SUBST(CCA_SPEC_CLASSIC_SHARE)
75
BABEL_CONFIG=`$CCA_SPEC_BABEL_CONFIG --var CCASPEC_BABEL_BABEL_CONFIG`
76
if test ! -x $BABEL_CONFIG; then
77
AC_MSG_ERROR([can't find babel-config])
79
BABEL_INCLUDE=`$BABEL_CONFIG --includedir`
80
BABEL_LIB=`$BABEL_CONFIG --libdir`
81
BABEL_SHARE=`$BABEL_CONFIG --datadir`
82
BABEL_BIN=`$BABEL_CONFIG --bindir`
83
AC_SUBST(BABEL_CONFIG)
84
AC_SUBST(BABEL_INCLUDE)
89
# check for babel compilers
90
BABEL_CC=`$BABEL_CONFIG --query-var=CC`
91
BABEL_CFLAGS=`$BABEL_CONFIG --query-var=CFLAGS`
92
BABEL_CXX=`$BABEL_CONFIG --query-var=CXX`
93
BABEL_CXXFLAGS=`$BABEL_CONFIG --query-var=CXXFLAGS`
95
AC_SUBST(BABEL_CFLAGS)
97
AC_SUBST(BABEL_CXXFLAGS)
99
# might as well use babel's libtool
100
BABEL_BIN=`$BABEL_CONFIG --bindir`
101
BABEL_LIBTOOL=$BABEL_BIN/babel-libtool
102
if test -z $BABEL_LIBTOOL || ! test -x $BABEL_LIBTOOL; then
103
AC_MSG_ERROR([can't find babel-libtool])
105
AC_SUBST(BABEL_LIBTOOL)
107
# check mpi configuration
108
CCAFE_MPI_INCLUDE=`$CCAFE_CONFIG --var CCAFE_MPI_INC`
109
CCAFE_MPI_LIB=`$CCAFE_CONFIG --var CCAFE_MPI_LIBDIR`
110
CCAFE_MPI_BIN=`$CCAFE_CONFIG --var CCAFE_MPI_BIN`
111
if test -z "$CCAFE_MPI_INCLUDE"; then
112
CCAFE_MPI_ENABLE="no"
113
AC_MSG_WARN([Ccaffeine not configured for MPI])
115
CCAFE_MPI_ENABLE="yes"
116
CCAFE_MPI_INCLUDE=`echo $CCAFE_MPI_INCLUDE | sed 's/^\-I//'`
118
AC_SUBST(CCAFE_MPI_ENABLE)
119
AC_SUBST(CCAFE_MPI_INCLUDE)
120
AC_SUBST(CCAFE_MPI_LIB)
121
AC_SUBST(CCAFE_MPI_BIN)
123
if test $ENABLE_PYTHON == "yes"; then
124
# check for babel python
125
BABEL_PYTHON_ENABLE=`$BABEL_CONFIG --query-var=SUPPORT_PYTHON`
126
if test $BABEL_PYTHON_ENABLE == "false"; then
127
AC_MSG_ERROR([Babel not properly configured for python])
129
# check that ccafe is configured for python
130
if ! test -d $CCAFE_ROOT/lib/python$PYTHON_VERSION/site-packages/ccaffeine; then
131
AC_MSG_ERROR([Ccaffeine not properly configured for Python])
133
CCAFE_PYTHON_ENABLE="yes"
135
BABEL_PYTHON=`$BABEL_CONFIG --query-var=WHICH_PYTHON`
136
BABEL_PYTHON_VERSION=`$BABEL_CONFIG --query-var=PYTHON_VERSION`
137
BABEL_PYTHON_LIB=`$BABEL_CONFIG --query-var=PYTHONLIB`/site-packages
138
BABEL_PYTHON_INCLUDE=`$BABEL_CONFIG --query-var=PYTHONINC`
139
AC_SUBST(BABEL_PYTHON)
140
AC_SUBST(BABEL_PYTHON_VERSION)
141
AC_SUBST(BABEL_PYTHON_LIB)
142
AC_SUBST(BABEL_PYTHON_INCLUDE)
144
BABEL_PYTHON_ENABLE="no"
145
CCAFE_PYTHON_ENABLE="no"
148
echo -e "\nCCA Tools Configuration:"
149
echo -e "---------------------------------------------------------------"
150
echo -e "ccafe config:\n $CCAFE_CONFIG"
151
echo -e "ccafe include:\n $CCAFE_INCLUDE"
152
echo -e "ccafe lib:\n $CCAFE_LIB"
153
echo -e "ccafe share:\n $CCAFE_SHARE"
154
echo -e "ccafe bin:\n $CCAFE_BIN"
155
echo -e "ccafe python enabled:\n $CCAFE_PYTHON_ENABLE"
156
echo -e "ccafe mpi enabled\n $CCAFE_MPI_ENABLE"
157
if test $CCAFE_MPI_ENABLE == "yes"; then
158
echo -e "ccafe mpi include:\n $CCAFE_MPI_INCLUDE"
159
echo -e "ccafe mpi lib:\n $CCAFE_MPI_LIB"
160
echo -e "ccafe mpi bin:\n $CCAFE_MPI_BIN"
162
echo -e "cca-spec-babel-config:\n $CCA_SPEC_BABEL_CONFIG"
163
echo -e "cca-spec-babel include:\n $CCA_SPEC_BABEL_INCLUDE"
164
echo -e "cca-spec-babel lib:\n $CCA_SPEC_BABEL_LIB"
165
echo -e "cca-spec-babel share:\n $CCA_SPEC_BABEL_SHARE"
166
echo -e "cca-spec-classic-config:\n $CCA_SPEC_CLASSIC_CONFIG"
167
echo -e "cca-spec-classic include:\n $CCA_SPEC_CLASSIC_INCLUDE"
168
echo -e "cca-spec-classic lib:\n $CCA_SPEC_CLASSIC_LIB"
169
echo -e "cca-spec-classic share:\n $CCA_SPEC_CLASSIC_SHARE"
170
echo -e "babel-config:\n $BABEL_CONFIG"
171
echo -e "babel include:\n $BABEL_INCLUDE"
172
echo -e "babel lib:\n $BABEL_LIB"
173
echo -e "babel share:\n $BABEL_SHARE"
174
echo -e "babel bin:\n $BABEL_BIN"
175
echo -e "babel C compiler:\n $BABEL_CC"
176
echo -e "babel C++ compiler:\n $BABEL_CXX"
177
echo -e "babel CFLAGS:\n $BABEL_CFLAGS"
178
echo -e "babel CXXFLAGS:\n $BABEL_CXXFLAGS"
179
echo -e "babel libtool:\n $BABEL_LIBTOOL"
180
echo -e "babel python enabled:\n $BABEL_PYTHON_ENABLE\n"