ENH: Added test for explicit instantiation support.

This commit is contained in:
Brad King 2002-03-12 10:16:00 -05:00
parent 433e1128ab
commit 83a0759e47
2 changed files with 51 additions and 25 deletions

61
Templates/configure vendored
View File

@ -2929,7 +2929,20 @@ case $system in
;; ;;
esac esac
# if running on darwin no explicit template instantiations CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION=""
if test $ac_cv_prog_gxx = no; then
echo $ac_n "checking whether ${CXX} supports explicit instantiation""... $ac_c" 1>&6
echo 'template<class T>class x{};template class x<int>;' > conftest.cc
if test -z "`${CXX} -c conftest.cc 2>&1`"; then
echo "$ac_t""yes" 1>&6
else
echo "$ac_t""no" 1>&6
CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION="1"
fi
rm -f conftest*
fi
# if running on darwin no explicit template instantiations even though
# syntax is supported.
case $system in case $system in
Darwin*) Darwin*)
CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION="1" CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION="1"
@ -2993,17 +3006,17 @@ for ac_hdr in sys/prctl.h
do do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:2997: checking for $ac_hdr" >&5 echo "configure:3010: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3002 "configure" #line 3015 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <$ac_hdr> #include <$ac_hdr>
EOF EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } { (eval echo configure:3020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then if test -z "$ac_err"; then
rm -rf conftest* rm -rf conftest*
@ -3048,17 +3061,17 @@ for ac_hdr in pthread.h
do do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:3052: checking for $ac_hdr" >&5 echo "configure:3065: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3057 "configure" #line 3070 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <$ac_hdr> #include <$ac_hdr>
EOF EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:3062: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } { (eval echo configure:3075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then if test -z "$ac_err"; then
rm -rf conftest* rm -rf conftest*
@ -3087,7 +3100,7 @@ done
if test "$use_pthreads" = "yes"; then if test "$use_pthreads" = "yes"; then
if test "$use_sproc" = "no"; then if test "$use_sproc" = "no"; then
echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6 echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
echo "configure:3091: checking for pthread_create in -lpthreads" >&5 echo "configure:3104: checking for pthread_create in -lpthreads" >&5
ac_lib_var=`echo pthreads'_'pthread_create | sed 'y%./+-%__p_%'` ac_lib_var=`echo pthreads'_'pthread_create | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
@ -3095,7 +3108,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lpthreads $LIBS" LIBS="-lpthreads $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3099 "configure" #line 3112 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
@ -3106,7 +3119,7 @@ int main() {
pthread_create() pthread_create()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
@ -3127,7 +3140,7 @@ else
fi fi
echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6 echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
echo "configure:3131: checking for pthread_create in -lpthread" >&5 echo "configure:3144: checking for pthread_create in -lpthread" >&5
ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'` ac_lib_var=`echo pthread'_'pthread_create | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
@ -3135,7 +3148,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lpthread $LIBS" LIBS="-lpthread $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3139 "configure" #line 3152 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
@ -3146,7 +3159,7 @@ int main() {
pthread_create() pthread_create()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
@ -3169,7 +3182,7 @@ fi
# Work around Solaris 5.6 and 5.7 bug: # Work around Solaris 5.6 and 5.7 bug:
if test "`uname -s -r`" = "SunOS 5.6"; then if test "`uname -s -r`" = "SunOS 5.6"; then
echo $ac_n "checking for thr_create in -lthread""... $ac_c" 1>&6 echo $ac_n "checking for thr_create in -lthread""... $ac_c" 1>&6
echo "configure:3173: checking for thr_create in -lthread" >&5 echo "configure:3186: checking for thr_create in -lthread" >&5
ac_lib_var=`echo thread'_'thr_create | sed 'y%./+-%__p_%'` ac_lib_var=`echo thread'_'thr_create | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
@ -3177,7 +3190,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lthread $LIBS" LIBS="-lthread $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3181 "configure" #line 3194 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
@ -3188,7 +3201,7 @@ int main() {
thr_create() thr_create()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
@ -3211,7 +3224,7 @@ fi
fi fi
if test "`uname -s -r`" = "SunOS 5.7"; then if test "`uname -s -r`" = "SunOS 5.7"; then
echo $ac_n "checking for thr_create in -lthread""... $ac_c" 1>&6 echo $ac_n "checking for thr_create in -lthread""... $ac_c" 1>&6
echo "configure:3215: checking for thr_create in -lthread" >&5 echo "configure:3228: checking for thr_create in -lthread" >&5
ac_lib_var=`echo thread'_'thr_create | sed 'y%./+-%__p_%'` ac_lib_var=`echo thread'_'thr_create | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
@ -3219,7 +3232,7 @@ else
ac_save_LIBS="$LIBS" ac_save_LIBS="$LIBS"
LIBS="-lthread $LIBS" LIBS="-lthread $LIBS"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3223 "configure" #line 3236 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2 /* We use char because int might match the return type of a gcc2
@ -3230,7 +3243,7 @@ int main() {
thr_create() thr_create()
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes" eval "ac_cv_lib_$ac_lib_var=yes"
else else
@ -3340,7 +3353,7 @@ fi
# ansi stream files (without the .h) # ansi stream files (without the .h)
if test $ac_cv_prog_gxx = no; then if test $ac_cv_prog_gxx = no; then
echo $ac_n "checking ansi standard C++ stream headers ""... $ac_c" 1>&6 echo $ac_n "checking ansi standard C++ stream headers ""... $ac_c" 1>&6
echo "configure:3344: checking ansi standard C++ stream headers " >&5 echo "configure:3357: checking ansi standard C++ stream headers " >&5
rm -rf conftest.* rm -rf conftest.*
cat > conftest.cc <<! cat > conftest.cc <<!
#include <iostream> #include <iostream>
@ -3357,7 +3370,7 @@ fi
# check to see if stl is in the std namespace # check to see if stl is in the std namespace
if test $ac_cv_prog_gxx = no; then if test $ac_cv_prog_gxx = no; then
echo $ac_n "checking ansi standard namespace support ""... $ac_c" 1>&6 echo $ac_n "checking ansi standard namespace support ""... $ac_c" 1>&6
echo "configure:3361: checking ansi standard namespace support " >&5 echo "configure:3374: checking ansi standard namespace support " >&5
rm -rf conftest.* rm -rf conftest.*
cat > conftest.cc <<! cat > conftest.cc <<!
#include <list> #include <list>
@ -3375,7 +3388,7 @@ fi
# check to see if for scoping is supported # check to see if for scoping is supported
if test $ac_cv_prog_gxx = no; then if test $ac_cv_prog_gxx = no; then
echo $ac_n "checking ansi for scope support ""... $ac_c" 1>&6 echo $ac_n "checking ansi for scope support ""... $ac_c" 1>&6
echo "configure:3379: checking ansi for scope support " >&5 echo "configure:3392: checking ansi for scope support " >&5
rm -rf conftest.* rm -rf conftest.*
cat > conftest.cc <<! cat > conftest.cc <<!
void foo() { for(int i;;); for(int i;;); } void foo() { for(int i;;); for(int i;;); }
@ -3400,7 +3413,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args. # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2 set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3404: checking for $ac_word" >&5 echo "configure:3417: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_RUNMAKE'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_path_RUNMAKE'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3440,7 +3453,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args. # Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2 set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:3444: checking for $ac_word" >&5 echo "configure:3457: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_CMAKE_AR_TMP'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_path_CMAKE_AR_TMP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else

View File

@ -477,7 +477,20 @@ case $system in
;; ;;
esac esac
# if running on darwin no explicit template instantiations CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION=""
if test $ac_cv_prog_gxx = no; then
echo $ac_n "checking whether ${CXX} supports explicit instantiation""... $ac_c" 1>&6
echo 'template<class T>class x{};template class x<int>;' > conftest.cc
if test -z "`${CXX} -c conftest.cc 2>&1`"; then
echo "$ac_t""yes" 1>&6
else
echo "$ac_t""no" 1>&6
CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION="1"
fi
rm -f conftest*
fi
# if running on darwin no explicit template instantiations even though
# syntax is supported.
case $system in case $system in
Darwin*) Darwin*)
CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION="1" CMAKE_NO_EXPLICIT_TEMPLATE_INSTANTIATION="1"