diff options
author | schnetter <schnetter@51d2df92-0e4f-0410-a727-bd43d766d6b6> | 2007-05-10 19:19:35 +0000 |
---|---|---|
committer | schnetter <schnetter@51d2df92-0e4f-0410-a727-bd43d766d6b6> | 2007-05-10 19:19:35 +0000 |
commit | a9b098dab8e0e8fdf596a539b867fd1ffebdbeba (patch) | |
tree | 5f326d3a0f1c4ebcb9f00d0068154830034bb74a /fortran.sh | |
parent | 340c9a3315cc402fbacdc5d7b31f9f85f36c11f5 (diff) |
Provide macros for stringification and string concatenation
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/Fortran/trunk@35 51d2df92-0e4f-0410-a727-bd43d766d6b6
Diffstat (limited to 'fortran.sh')
-rw-r--r-- | fortran.sh | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/fortran.sh b/fortran.sh new file mode 100644 index 0000000..acebc9f --- /dev/null +++ b/fortran.sh @@ -0,0 +1,54 @@ +#! /bin/sh +# $Header$ + +# Try to use ## for token concatenation. +# If this works, we likely have an ANSI cpp. + +rm config.tmp config.out 2> /dev/null + +if test -z "${FPP}"; then + # FPP is not defined; try to guess which fpp will be chosen later + FPP=cpp +fi + +cat > config.tmp <<EOF +#define CONCAT(a,b) a##b +CONCAT(hello,world) +EOF +${FPP} ${FPPFLAGS} config.tmp > config.out +grep 'helloworld' config.out > /dev/null 2> /dev/null +# grep returns 0 for success, non-zero for failure +cpp_ansi=$? +rm config.tmp config.out 2> /dev/null + +cat > config.tmp <<EOF +#define CONCAT(a,b) a/**/b +CONCAT(hello,world) +EOF +${FPP} ${FPPFLAGS} config.tmp > config.out +grep 'helloworld' config.out > /dev/null 2> /dev/null +# grep returns 0 for success, non-zero for failure +cpp_traditional=$? +rm config.tmp config.out 2> /dev/null + + + +if test ${cpp_ansi} = 0; then + echo 'BEGIN MESSAGE' + echo 'Found an ANSI-like Fortran cpp' + echo 'END MESSAGE' + echo 'BEGIN DEFINE' + echo 'FORTRAN_CPP_ANSI 1' + echo 'END DEFINE' +elif test ${cpp_traditional} = 0; then + echo 'BEGIN MESSAGE' + echo 'Found a traditional Fortran cpp' + echo 'END MESSAGE' + echo 'BEGIN DEFINE' + echo 'FORTRAN_CPP_ANSI 0' + echo 'END DEFINE' +else + echo 'BEGIN ERROR' + echo 'No Fortran preprocessor defined' + echo 'END ERROR' +fi |