Blame configure.ac

Packit Service 8bf002
dnl configure.ac for MCPP   2003/11, 2008/11  kmatsui
Packit Service 8bf002
dnl Process this file with autoconf to produce a configure script.
Packit Service 8bf002
Packit Service 8bf002
dnl WARNING: This script does not assume cross-compiling.
Packit Service 8bf002
dnl To cross-compile you must edit here and there of this file.
Packit Service 8bf002
Packit Service 8bf002
AC_INIT( mcpp, 2.7.2, kmatsui@t3.rim.or.jp)
Packit Service 8bf002
AC_CONFIG_SRCDIR( src/main.c)
Packit Service 8bf002
AM_CONFIG_HEADER( src/config.h)
Packit Service 8bf002
AC_CONFIG_AUX_DIR( config)
Packit Service 8bf002
AC_CANONICAL_TARGET
Packit Service 8bf002
AM_INIT_AUTOMAKE( no-dependencies)
Packit Service 8bf002
Packit Service 8bf002
dnl Checks for programs.
Packit Service 8bf002
Packit Service 8bf002
AC_PROG_CC
Packit Service 8bf002
AC_PROG_CPP
Packit Service 8bf002
AC_PROG_INSTALL
Packit Service 8bf002
AC_PROG_EGREP
Packit Service 8bf002
AC_LIBTOOL_WIN32_DLL
Packit Service 8bf002
AC_PROG_LIBTOOL
Packit Service 8bf002
Packit Service 8bf002
dnl WARNING: Configure must check the characteristics of target compiler.
Packit Service 8bf002
dnl MCPP may modify the behavior of the target compiler-system.
Packit Service 8bf002
dnl You must uninstall MCPP before re-configuring.
Packit Service 8bf002
Packit Service 8bf002
AC_MSG_CHECKING( [whether the cpp is target preprocessor])
Packit Service 8bf002
mcpp=`$CPP $CFLAGS -xc -v /dev/null 2>&1 | grep 'MCPP'`
Packit Service 8bf002
if test "x$mcpp" != x; then
Packit Service 8bf002
    AC_MSG_ERROR( Do 'make uninstall' before configuring again.)
Packit Service 8bf002
fi
Packit Service 8bf002
AC_MSG_RESULT( yes)
Packit Service 8bf002
Packit Service 8bf002
dnl Define host system and target system
Packit Service 8bf002
Packit Service 8bf002
case $host_os in
Packit Service 8bf002
linux*)
Packit Service 8bf002
    AC_DEFINE( [HOST_SYSTEM], [SYS_LINUX], [Define the host system.])
Packit Service 8bf002
    ac_c_define_HOST_SYSTEM=[SYS_LINUX]
Packit Service 8bf002
    ;;
Packit Service 8bf002
freebsd*)
Packit Service 8bf002
    AC_DEFINE( [HOST_SYSTEM], [SYS_FREEBSD])
Packit Service 8bf002
    ac_c_define_HOST_SYSTEM=[SYS_FREEBSD]
Packit Service 8bf002
    ;;
Packit Service 8bf002
darwin*)
Packit Service 8bf002
    AC_DEFINE( [HOST_SYSTEM], [SYS_MAC])
Packit Service 8bf002
    ac_c_define_HOST_SYSTEM=[SYS_MAC]
Packit Service 8bf002
    ;;
Packit Service 8bf002
cygwin*)
Packit Service 8bf002
    AC_DEFINE( [HOST_SYSTEM], [SYS_CYGWIN])
Packit Service 8bf002
    ac_c_define_HOST_SYSTEM=[SYS_CYGWIN]
Packit Service 8bf002
    ;;
Packit Service 8bf002
mingw*)
Packit Service 8bf002
    AC_DEFINE( [HOST_SYSTEM], [SYS_MINGW])
Packit Service 8bf002
    ac_c_define_HOST_SYSTEM=[SYS_MINGW]
Packit Service 8bf002
    ;;
Packit Service 8bf002
*)
Packit Service 8bf002
    AC_MSG_WARN( [Unsupported host OS, assuming to be an UNIX variant])
Packit Service 8bf002
    AC_DEFINE( [HOST_SYSTEM], [SYS_UNIX])
Packit Service 8bf002
    ac_c_define_HOST_SYSTEM=[SYS_UNIX]
Packit Service 8bf002
    ;;
Packit Service 8bf002
esac
Packit Service 8bf002
host_system=$ac_c_define_HOST_SYSTEM
Packit Service 8bf002
Packit Service 8bf002
case $target_os in
Packit Service 8bf002
linux*)
Packit Service 8bf002
    AC_DEFINE( [SYSTEM], [SYS_LINUX], [Define the target system.])
Packit Service 8bf002
    ;;
Packit Service 8bf002
freebsd*)
Packit Service 8bf002
    AC_DEFINE( [SYSTEM], [SYS_FREEBSD])
Packit Service 8bf002
    ;;
Packit Service 8bf002
darwin*)
Packit Service 8bf002
    AC_DEFINE( [SYSTEM], [SYS_MAC])
Packit Service 8bf002
    ;;
Packit Service 8bf002
cygwin*)
Packit Service 8bf002
    AC_DEFINE( [SYSTEM], [SYS_CYGWIN])
Packit Service 8bf002
    ;;
Packit Service 8bf002
mingw*)
Packit Service 8bf002
    AC_DEFINE( [SYSTEM], [SYS_MINGW])
Packit Service 8bf002
    ;;
Packit Service 8bf002
*)
Packit Service 8bf002
    AC_MSG_WARN( Unsupported target OS, assuming to be an UNIX variant)
Packit Service 8bf002
    AC_DEFINE( [SYSTEM], [SYS_UNIX])
Packit Service 8bf002
    ;;
Packit Service 8bf002
esac
Packit Service 8bf002
Packit Service 8bf002
## --enable-replace-cpp option
Packit Service 8bf002
AC_ARG_ENABLE( replace-cpp,
Packit Service 8bf002
    AC_HELP_STRING( [--enable-replace-cpp],
Packit Service 8bf002
        [Replace the resident preprocessor with mcpp]),
Packit Service 8bf002
    ,       ## the compiler name will be defined later
Packit Service 8bf002
    AC_DEFINE( [COMPILER], [INDEPENDENT], [Define the target compiler.])
Packit Service 8bf002
            ## else define COMPILER as INDEPENDENT
Packit Service 8bf002
)
Packit Service 8bf002
Packit Service 8bf002
## Generally this configure does not support cross-compiling.
Packit Service 8bf002
## Nevertheless, it can configure cross-compiler of Apple-GCC (i686 vs ppc).
Packit Service 8bf002
if test x$enable_replace_cpp = xyes    \
Packit Service 8bf002
        && test $ac_c_define_HOST_SYSTEM = SYS_MAC    \
Packit Service 8bf002
        && test $host_cpu != $target_cpu; then
Packit Service 8bf002
## Enable to build mcpp into cross-compiler of Apple-GCC
Packit Service 8bf002
## --with-target-cc option
Packit Service 8bf002
AC_ARG_WITH( target_cc,
Packit Service 8bf002
    AC_HELP_STRING( [--with-target-cc],
Packit Service 8bf002
        [Specify the target compiler to build mcpp into on Mac OS X]),
Packit Service 8bf002
    if test x${withval+set} = xset; then
Packit Service 8bf002
        target_cc=$withval
Packit Service 8bf002
        target_name=`echo $target_cc | sed 's/-gcc.*$//'`
Packit Service 8bf002
        if test $target_name != $target_alias; then
Packit Service 8bf002
            AC_MSG_ERROR( [The argument of --with-target-cc option conflicts with --target option.])
Packit Service 8bf002
        fi
Packit Service 8bf002
        AC_SUBST( [target_cc])
Packit Service 8bf002
    fi
Packit Service 8bf002
)
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
dnl Define a target specific macro.
Packit Service 8bf002
Packit Service 8bf002
AC_MSG_CHECKING( for target cpu)
Packit Service 8bf002
Packit Service 8bf002
## These are not predefined macros of MCPP.  MCPP will define predefined macros
Packit Service 8bf002
## on compile time based on the CPU macro, and possibly redefine them at an
Packit Service 8bf002
## execution time.
Packit Service 8bf002
Packit Service 8bf002
case $target_cpu in
Packit Service 8bf002
x86_64|amd64)
Packit Service 8bf002
    Target_Cpu=x86_64
Packit Service 8bf002
    ;;
Packit Service 8bf002
i?86*)
Packit Service 8bf002
    Target_Cpu=i386
Packit Service 8bf002
    ;;
Packit Service 8bf002
powerpc64|ppc64)
Packit Service 8bf002
    Target_Cpu=ppc64
Packit Service 8bf002
    ;;
Packit Service 8bf002
powerpc|ppc|ppc7400)
Packit Service 8bf002
    Target_Cpu=ppc
Packit Service 8bf002
    ;;
Packit Service 8bf002
*)
Packit Service 8bf002
    Target_Cpu=$target_cpu
Packit Service 8bf002
    ;;
Packit Service 8bf002
esac
Packit Service 8bf002
Packit Service 8bf002
AC_MSG_RESULT( $Target_Cpu)
Packit Service 8bf002
AC_DEFINE_UNQUOTED( [CPU], "$Target_Cpu", [Define the cpu-specific-macro.])
Packit Service 8bf002
Packit Service 8bf002
## Build into cross-compiler on Mac OS
Packit Service 8bf002
if test x$enable_replace_cpp = xyes    \
Packit Service 8bf002
        && test $ac_c_define_HOST_SYSTEM = SYS_MAC    \
Packit Service 8bf002
        && test x${target_cc+set} = xset; then
Packit Service 8bf002
    arch_opt="-arch $Target_Cpu"
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
dnl Checks for header files.
Packit Service 8bf002
Packit Service 8bf002
AC_CHECK_HEADERS( [unistd.h, stdint.h, inttypes.h])
Packit Service 8bf002
Packit Service 8bf002
dnl Checks for typedefs, and compiler characteristics.
Packit Service 8bf002
Packit Service 8bf002
AC_CHECK_TYPES( [intmax_t, long long])
Packit Service 8bf002
Packit Service 8bf002
dnl Check for library functions.
Packit Service 8bf002
Packit Service 8bf002
AC_CHECK_FUNCS( [stpcpy])
Packit Service 8bf002
Packit Service 8bf002
dnl Checks for some system characteristics.
Packit Service 8bf002
Packit Service 8bf002
AC_CACHE_CHECK( if the cases of filename are folded,
Packit Service 8bf002
    ac_cv_fname_fold,
Packit Service 8bf002
    [touch hJkL
Packit Service 8bf002
    [ac_cv_fname_fold=no]
Packit Service 8bf002
    AC_RUN_IFELSE( [[
Packit Service 8bf002
#include    <stdio.h>
Packit Service 8bf002
#include    <errno.h>
Packit Service 8bf002
    void exit();
Packit Service 8bf002
int main( void)
Packit Service 8bf002
{
Packit Service 8bf002
    if (fopen( "HjKl", "r") == NULL)
Packit Service 8bf002
        exit( errno);
Packit Service 8bf002
    else
Packit Service 8bf002
        exit( 0);
Packit Service 8bf002
} ]],
Packit Service 8bf002
        [ac_cv_fname_fold=yes],
Packit Service 8bf002
        [],
Packit Service 8bf002
        AC_MSG_WARN( cannot run on cross-compiling so assumes that the cases of filename are not folded.)
Packit Service 8bf002
    )
Packit Service 8bf002
    rm hJkL],
Packit Service 8bf002
)
Packit Service 8bf002
if test x$ac_cv_fname_fold = xyes; then
Packit Service 8bf002
    AC_DEFINE( [FNAME_FOLD], 1,
Packit Service 8bf002
        [Define if the cases of file name are folded.])
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
dnl Checks for some host compiler characteristics.
Packit Service 8bf002
Packit Service 8bf002
AC_DEFINE_UNQUOTED( [OBJEXT], ["$ac_cv_objext"],
Packit Service 8bf002
    [Define the suffix of object file.])
Packit Service 8bf002
Packit Service 8bf002
dnl Check printf length modifier of the longest integer.
Packit Service 8bf002
Packit Service 8bf002
# AC_CHECK_MOD_LL( modifier, additional include header)
Packit Service 8bf002
# Try the printf length modifier for the longest integer.
Packit Service 8bf002
# The redundant sscanf() is for some compilers which cannot handle
Packit Service 8bf002
# long long integer token.
Packit Service 8bf002
AC_DEFUN([AC_CHECK_MOD_LL], [
Packit Service 8bf002
    AC_CACHE_CHECK( [printf length modifier for the longest integer],
Packit Service 8bf002
        [ac_cv_c_printf_modifier],
Packit Service 8bf002
        AC_RUN_IFELSE( [[
Packit Service 8bf002
#include    <stdio.h>
Packit Service 8bf002
#include    <assert.h>
Packit Service 8bf002
    int     strcmp();
Packit Service 8bf002
    void    exit();
Packit Service 8bf002
$3
Packit Service 8bf002
int main( void)
Packit Service 8bf002
{   char    buf@<:@ 20@:>@;
Packit Service 8bf002
    $1  num;
Packit Service 8bf002
    sscanf( "1234567890123456789", "%$2d", &num);
Packit Service 8bf002
    sprintf( buf, "%$2d", num);
Packit Service 8bf002
    assert( strcmp( buf, "1234567890123456789") == 0);
Packit Service 8bf002
    exit( 0);
Packit Service 8bf002
} ]],
Packit Service 8bf002
            [ac_cv_c_printf_modifier=$2],
Packit Service 8bf002
            ,
Packit Service 8bf002
            AC_MSG_WARN( cannot run on cross-compiling so assumes the length modifier of long long is "%ll")
Packit Service 8bf002
            AC_DEFINE( [LL_FORM], "ll",
Packit Service 8bf002
                [Define printf length modifier for the longest integer.])
Packit Service 8bf002
            [ac_cv_c_printf_modifier=ll]
Packit Service 8bf002
        )
Packit Service 8bf002
    )
Packit Service 8bf002
] )
Packit Service 8bf002
Packit Service 8bf002
if test x$ac_cv_type_intmax_t = xyes; then
Packit Service 8bf002
    AC_CHECK_MOD_LL( [intmax_t], [j], [#include <stdint.h>])
Packit Service 8bf002
    if test $ac_c_define_HOST_SYSTEM = SYS_CYGWIN \
Packit Service 8bf002
            || test $ac_c_define_HOST_SYSTEM = SYS_MINGW; then
Packit Service 8bf002
        sleep 1         # wait for cleanup
Packit Service 8bf002
    fi
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
if test x$ac_cv_type_long_long = xyes; then
Packit Service 8bf002
    for modifier in ll I64 q L
Packit Service 8bf002
    do
Packit Service 8bf002
        AC_CHECK_MOD_LL( [long long], ${modifier})
Packit Service 8bf002
        if test x${ac_cv_c_printf_modifier+set} = xset; then
Packit Service 8bf002
            break
Packit Service 8bf002
        fi
Packit Service 8bf002
        if test $ac_c_define_HOST_SYSTEM = SYS_CYGWIN \
Packit Service 8bf002
                || test $ac_c_define_HOST_SYSTEM = SYS_MINGW; then
Packit Service 8bf002
            sleep 1         # wait for cleanup
Packit Service 8bf002
        fi
Packit Service 8bf002
    done
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
if test x${ac_cv_c_printf_modifier+set} = xset; then
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [LL_FORM], "$ac_cv_c_printf_modifier",
Packit Service 8bf002
        [Define printf length modifier for the longest integer.])
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
if test $ac_c_define_HOST_SYSTEM = SYS_FREEBSD &&   \
Packit Service 8bf002
        test x$mcpp_ac_c_define_SYSTEM_SP_STD != x__FreeBSD__; then
Packit Service 8bf002
    fbsd_ver=`echo '__FreeBSD__' | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ .*//'`
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [SYSTEM_EXT_VAL], "$fbsd_ver",
Packit Service 8bf002
        [Define the version of FreeBSD.])
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
if test x$ac_cv_c_compiler_gnu = xyes; then
Packit Service 8bf002
Packit Service 8bf002
    AC_DEFINE( [HOST_COMPILER], [GNUC], [Define the host compiler.])
Packit Service 8bf002
Packit Service 8bf002
    AC_DEFINE( [HOST_CMP_NAME], "GCC", [Define the host compiler name.])
Packit Service 8bf002
Packit Service 8bf002
    AC_MSG_CHECKING( for value of __GNUC__)
Packit Service 8bf002
    gcc_maj_ver=`echo '__GNUC__' | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ *//'`
Packit Service 8bf002
    AC_MSG_RESULT( $gcc_maj_ver)
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [GCC_MAJOR_VERSION], "$gcc_maj_ver",
Packit Service 8bf002
        [Define gcc major version.])
Packit Service 8bf002
    AC_MSG_CHECKING( for value of __GNUC_MINOR__)
Packit Service 8bf002
    gcc_min_ver=`echo __GNUC_MINOR__ | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ *//'`
Packit Service 8bf002
    AC_MSG_RESULT( $gcc_min_ver)
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [GCC_MINOR_VERSION], "$gcc_min_ver",
Packit Service 8bf002
        [Define gcc minor version.])
Packit Service 8bf002
Packit Service 8bf002
    cw=`pwd`
Packit Service 8bf002
    if test x$srcdir = "x." || test x$srcdir = x; then
Packit Service 8bf002
        src_dir=$cw
Packit Service 8bf002
    else
Packit Service 8bf002
        src_dir=$srcdir
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test $ac_c_define_HOST_SYSTEM = SYS_CYGWIN; then
Packit Service 8bf002
        AC_CACHE_CHECK( the root directory,
Packit Service 8bf002
            ac_cv_cygwin_root,
Packit Service 8bf002
            [ac_cv_cygwin_root=`$src_dir/config/cygwin_root`]
Packit Service 8bf002
        )
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [CYGWIN_ROOT_DIRECTORY], "$ac_cv_cygwin_root",
Packit Service 8bf002
            [Define root directory of CYGWIN.])
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test $ac_c_define_HOST_SYSTEM = SYS_MINGW; then
Packit Service 8bf002
        AC_CACHE_CHECK( the root directory,
Packit Service 8bf002
            ac_cv_msys_root,
Packit Service 8bf002
            cd /tmp
Packit Service 8bf002
            cat > getcwd.c <<\_EOF
Packit Service 8bf002
#include <stdio.h>
Packit Service 8bf002
#include <unistd.h>
Packit Service 8bf002
#include <limits.h>
Packit Service 8bf002
int main( int argc, char ** argv)
Packit Service 8bf002
{   char    buf@<:@ PATH_MAX@:>@;
Packit Service 8bf002
    getcwd( buf, PATH_MAX);
Packit Service 8bf002
    puts( buf);
Packit Service 8bf002
    return 0;
Packit Service 8bf002
}
Packit Service 8bf002
_EOF
Packit Service 8bf002
            $CC getcwd.c
Packit Service 8bf002
            cd /
Packit Service 8bf002
            [ac_cv_msys_root=`$src_dir/config/mingw_root`]
Packit Service 8bf002
        )
Packit Service 8bf002
        AC_CACHE_CHECK( the /mingw directory,
Packit Service 8bf002
            ac_cv_mingw_dir,
Packit Service 8bf002
            cd /mingw
Packit Service 8bf002
            [ac_cv_mingw_dir=`$src_dir/config/mingw_root`]
Packit Service 8bf002
        )
Packit Service 8bf002
        cd $cw
Packit Service 8bf002
        rm -f /tmp/getcwd.c /tmp/a.exe
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [MSYS_ROOT_DIRECTORY], "$ac_cv_msys_root",
Packit Service 8bf002
            [Define root directory of MSYS.])
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [MINGW_DIRECTORY], "$ac_cv_mingw_dir",
Packit Service 8bf002
            [Define /mingw directory.])
Packit Service 8bf002
    fi
Packit Service 8bf002
Packit Service 8bf002
else    # not gcc
Packit Service 8bf002
Packit Service 8bf002
# mcpp_AC_C_DEFINE( SYSTEM | CPU | COMPILER, STD | OLD, $enableval)
Packit Service 8bf002
# Specify the target-specific predefined macro.
Packit Service 8bf002
AC_DEFUN([mcpp_AC_C_DEFINE], [
Packit Service 8bf002
    name=`echo $3 | sed 's/=.*//'`
Packit Service 8bf002
    mcpp_macro=$1_SP_$2
Packit Service 8bf002
    stripped_mcpp_macro=`echo $mcpp_macro | sed 's/STD//'`
Packit Service 8bf002
    if test x$stripped_mcpp_macro != x$mcpp_macro; then
Packit Service 8bf002
        stripped_name=`echo $name | sed 's/^_//'`
Packit Service 8bf002
        if test x$stripped_name = x$name; then
Packit Service 8bf002
            AC_MSG_ERROR( The macro name '$name' should begin with '_'.)
Packit Service 8bf002
        fi
Packit Service 8bf002
    else
Packit Service 8bf002
        stripped_name=`echo $name | sed 's/^@<:@A-Za-z@:>@//'`
Packit Service 8bf002
        if test x$stripped_name = x$name; then
Packit Service 8bf002
            AC_MSG_ERROR( The macro name '$name' should begin with an alphabetic letter.)
Packit Service 8bf002
        fi
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x$name = x$3; then
Packit Service 8bf002
        [replace=1]
Packit Service 8bf002
    else
Packit Service 8bf002
        [replace=`echo $3 | sed 's/^.*=//'`]
Packit Service 8bf002
    fi
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [$mcpp_macro], "$name")
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [${mcpp_macro}_VAL], "$replace")
Packit Service 8bf002
    mcpp_ac_c_define_$1_$2=$name
Packit Service 8bf002
])
Packit Service 8bf002
Packit Service 8bf002
# mcpp_AC_C_PREDEF( SYSTEM | CPU | COMPILER, STD | OLD, additional description)
Packit Service 8bf002
# Specify the target-specific predefined macro via mcpp_AC_C_DEFINE.
Packit Service 8bf002
AC_DEFUN([mcpp_AC_C_PREDEF], [
Packit Service 8bf002
    AC_ARG_ENABLE( $1-$2-macro,
Packit Service 8bf002
        AC_HELP_STRING( --enable-$1-$2-macro=name@<:@=replace@:>@,
Packit Service 8bf002
            [specify the $1-specific $2-style predefined macro.  $3]),
Packit Service 8bf002
        if test x$enableval = xyes || test x$enableval = xno; then
Packit Service 8bf002
            AC_MSG_ERROR( This option requires an argument as 'name@<:@=replace@:>@'.)
Packit Service 8bf002
        fi
Packit Service 8bf002
        mcpp_AC_C_DEFINE( $1, $2, $enableval)
Packit Service 8bf002
        AH_TEMPLATE( [$1_SP_$2],
Packit Service 8bf002
            [Define the name of $1-specific $2-style predefined macro.])
Packit Service 8bf002
        AH_TEMPLATE( [$1_SP_$2_VAL],
Packit Service 8bf002
            [Define the value of $1-specific $2-style predefined macro.])
Packit Service 8bf002
    )
Packit Service 8bf002
])
Packit Service 8bf002
Packit Service 8bf002
mcpp_AC_C_PREDEF( [SYSTEM], [STD],
Packit Service 8bf002
    [In all this and the following 5 options,
Packit Service 8bf002
    'STD'-style name begins with an '_',
Packit Service 8bf002
    'OLD'-style name begins with an alphabetic and
Packit Service 8bf002
    if '=replace' is missing the macro is defined as 1.]
Packit Service 8bf002
)
Packit Service 8bf002
mcpp_AC_C_PREDEF( [SYSTEM], [OLD])
Packit Service 8bf002
mcpp_AC_C_PREDEF( [CPU], [STD])
Packit Service 8bf002
mcpp_AC_C_PREDEF( [CPU], [OLD])
Packit Service 8bf002
mcpp_AC_C_PREDEF( [COMPILER], [STD])
Packit Service 8bf002
mcpp_AC_C_PREDEF( [COMPILER], [OLD])
Packit Service 8bf002
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
## MacOS has "framework" directories.
Packit Service 8bf002
if test $ac_c_define_HOST_SYSTEM = SYS_MAC; then
Packit Service 8bf002
    AC_MSG_CHECKING( for the MacOS-specific framework directory)
Packit Service 8bf002
    frameworks=`$CPP $CFLAGS $arch_opt -xc -v /dev/null 2>&1 | sed 's/^ *//' | sed 's/ .*$//' | $EGREP '/Frameworks$'`
Packit Service 8bf002
    n=1
Packit Service 8bf002
    for dir in $frameworks
Packit Service 8bf002
    do
Packit Service 8bf002
        case $n in
Packit Service 8bf002
        1)  framework1=$dir;;
Packit Service 8bf002
        2)  framework2=$dir;;
Packit Service 8bf002
        3)  framework3=$dir;;
Packit Service 8bf002
        esac
Packit Service 8bf002
        let n=n+1
Packit Service 8bf002
    done
Packit Service 8bf002
    if test x${framework1+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [FRAMEWORK1], "$framework1",
Packit Service 8bf002
            [Define MacOS-specific framework directory 1.])
Packit Service 8bf002
        AC_MSG_RESULT( $framework1)
Packit Service 8bf002
    else
Packit Service 8bf002
        AC_MSG_RESULT( none)
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x${framework2+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [FRAMEWORK2], "$framework2",
Packit Service 8bf002
            [Define MacOS-specific framework directory 2.])
Packit Service 8bf002
        AC_MSG_RESULT( $framework2)
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x${framework3+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [FRAMEWORK3], "$framework3",
Packit Service 8bf002
            [Define MacOS-specific framework directory 3.])
Packit Service 8bf002
        AC_MSG_RESULT( $framework3)
Packit Service 8bf002
    fi
Packit Service 8bf002
fi  ## SYS_MAC
Packit Service 8bf002
Packit Service 8bf002
## --enable-mcpplib option
Packit Service 8bf002
AC_ARG_ENABLE( mcpplib,
Packit Service 8bf002
    AC_HELP_STRING( [--enable-mcpplib],
Packit Service 8bf002
        [Build libmcpp rather than stand-alone mcpp])
Packit Service 8bf002
)
Packit Service 8bf002
Packit Service 8bf002
if test x$enable_mcpplib = xyes; then               ## mcpplib mode
Packit Service 8bf002
    AC_DEFINE( [MCPP_LIB], 1, [Define if build libmcpp])
Packit Service 8bf002
    if test x$enable_replace_cpp = xyes; then
Packit Service 8bf002
        AC_MSG_WARN( Ignores enable-replace-cpp option)
Packit Service 8bf002
        [enable_replace_cpp=no]
Packit Service 8bf002
    fi
Packit Service 8bf002
Packit Service 8bf002
else
Packit Service 8bf002
Packit Service 8bf002
if test x$enable_replace_cpp = xyes; then           ## replace-cpp mode
Packit Service 8bf002
Packit Service 8bf002
dnl Check the characteristics of target compiler.
Packit Service 8bf002
dnl Note: The following 3 hundred and more lines are for replace-cpp-mode.
Packit Service 8bf002
dnl Target-compiler-specific configuration need these lines.
Packit Service 8bf002
dnl These lines are not used in compiler-independent configuration.
Packit Service 8bf002
Packit Service 8bf002
dnl Check which header file CPP includes,
Packit Service 8bf002
dnl relative to CURRENT or SOURCE directory.
Packit Service 8bf002
Packit Service 8bf002
# AC_C_INCLUDE_PREF( CURRENT | SOURCE | NEXT)
Packit Service 8bf002
# Check the include preference ('NEXT' means CURRENT & SOURCE)
Packit Service 8bf002
AC_DEFUN([AC_C_INCLUDE_PREF], [
Packit Service 8bf002
    AC_EGREP_CPP( $1, [
Packit Service 8bf002
#include "../next/header.h"
Packit Service 8bf002
],
Packit Service 8bf002
        [ac_cv_c_include_pref=$1],
Packit Service 8bf002
    )
Packit Service 8bf002
])
Packit Service 8bf002
Packit Service 8bf002
AC_CACHE_CHECK( include preference - relative to current or source directory,
Packit Service 8bf002
    ac_cv_c_include_pref,
Packit Service 8bf002
    mkdir mcpp-tmp
Packit Service 8bf002
    cd mcpp-tmp
Packit Service 8bf002
    mkdir dir ../next ../next/dir
Packit Service 8bf002
    echo '#include "dir/what.h"'    > ../next/header.h
Packit Service 8bf002
    echo '#include "next.h"'        >> ../next/header.h
Packit Service 8bf002
    echo 'CURRENT'  > dir/what.h
Packit Service 8bf002
    echo 'SOURCE'   > ../next/dir/what.h
Packit Service 8bf002
    echo 'NEXT'     > ../next/next.h
Packit Service 8bf002
    AC_C_INCLUDE_PREF( [SOURCE])
Packit Service 8bf002
    if test x$ac_cv_c_include_pref != xSOURCE; then
Packit Service 8bf002
        AC_C_INCLUDE_PREF( [CURRENT])
Packit Service 8bf002
        if test x$ac_cv_c_include_pref = xCURRENT; then
Packit Service 8bf002
            AC_C_INCLUDE_PREF( [NEXT])
Packit Service 8bf002
            if test x$ac_cv_c_include_pref = xNEXT; then
Packit Service 8bf002
                [ac_cv_c_include_pref="(CURRENT & SOURCE)"]
Packit Service 8bf002
            fi
Packit Service 8bf002
        else
Packit Service 8bf002
            AC_MSG_ERROR( Failed to include header file.)
Packit Service 8bf002
        fi
Packit Service 8bf002
    fi
Packit Service 8bf002
    cd ..
Packit Service 8bf002
    rm -rf mcpp-tmp next
Packit Service 8bf002
    if test $ac_c_define_HOST_SYSTEM = SYS_CYGWIN \
Packit Service 8bf002
            || test $ac_c_define_HOST_SYSTEM = SYS_MINGW; then
Packit Service 8bf002
        sleep 1         # wait for cleanup
Packit Service 8bf002
    fi
Packit Service 8bf002
)
Packit Service 8bf002
AC_DEFINE_UNQUOTED( [SEARCH_INIT], $ac_cv_c_include_pref,
Packit Service 8bf002
    [Define include preference.])
Packit Service 8bf002
 
Packit Service 8bf002
AC_CACHE_CHECK( if the argument of pragma is macro expanded,
Packit Service 8bf002
    ac_cv_c_pragma_is_expanded,
Packit Service 8bf002
    AC_COMPILE_IFELSE( [[
Packit Service 8bf002
#define once
Packit Service 8bf002
#pragma once]],
Packit Service 8bf002
        [ac_cv_c_pragma_is_expanded=no],
Packit Service 8bf002
        [ac_cv_c_pragma_is_expanded=yes]
Packit Service 8bf002
    )
Packit Service 8bf002
)
Packit Service 8bf002
if test x$ac_cv_c_pragma_is_expanded = xyes; then
Packit Service 8bf002
    AC_DEFINE( [EXPAND_PRAGMA], 1,
Packit Service 8bf002
        [Define if the argument of pragma is macro expanded.])
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
AC_CACHE_CHECK( if digraphs can be used,
Packit Service 8bf002
    ac_cv_c_digraph,
Packit Service 8bf002
    [AC_PREPROC_IFELSE( [
Packit Service 8bf002
%:if 1
Packit Service 8bf002
%:endif],
Packit Service 8bf002
        [ac_cv_c_digraph=yes],
Packit Service 8bf002
        [ac_cv_c_digraph=no]
Packit Service 8bf002
    )]
Packit Service 8bf002
)
Packit Service 8bf002
if test x$ac_cv_c_digraph = xyes; then
Packit Service 8bf002
    AC_DEFINE( [HAVE_DIGRAPHS], 1, [Define if digraphs are available.])
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
AC_CACHE_CHECK( preprocessor output format of line directive,
Packit Service 8bf002
    ac_cv_c_line_format,
Packit Service 8bf002
    [ac_cv_c_line_format=\"`echo '#line 4321' | $CPP - | grep 432 | sed 's/432.*$//'`\"]
Packit Service 8bf002
## Note: the output line number may be 4320 on GCC 2.* or other preprocessors.
Packit Service 8bf002
)
Packit Service 8bf002
AC_DEFINE_UNQUOTED( [LINE_PREFIX], $ac_cv_c_line_format,
Packit Service 8bf002
    [Define output format of line directive.])
Packit Service 8bf002
if test "x$ac_cv_c_line_format" = "x\"#line \""; then
Packit Service 8bf002
    ac_cv_c_std_line_prefix=1
Packit Service 8bf002
else
Packit Service 8bf002
    ac_cv_c_std_line_prefix=0
Packit Service 8bf002
fi
Packit Service 8bf002
AC_DEFINE_UNQUOTED( [STD_LINE_PREFIX], $ac_cv_c_std_line_prefix,
Packit Service 8bf002
    [Define whether output format of line directive is C source style.])
Packit Service 8bf002
Packit Service 8bf002
AC_CACHE_CHECK( default value of __STDC__,
Packit Service 8bf002
    ac_cv_c_stdc,
Packit Service 8bf002
    [stdc=`echo '__STDC__' | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ .*//'`]
Packit Service 8bf002
    if test x"$stdc" = x"__STDC__"; then
Packit Service 8bf002
        [ac_cv_c_stdc=0]
Packit Service 8bf002
    else
Packit Service 8bf002
        [ac_cv_c_stdc=$stdc]
Packit Service 8bf002
    fi
Packit Service 8bf002
)
Packit Service 8bf002
AC_DEFINE_UNQUOTED( [STDC], $ac_cv_c_stdc,
Packit Service 8bf002
    [Define the default value of __STDC__.])
Packit Service 8bf002
Packit Service 8bf002
AC_CACHE_CHECK( default value of __STDC_VERSION__,
Packit Service 8bf002
    ac_cv_c_stdc_ver,
Packit Service 8bf002
    [stdc_ver=`echo '__STDC_VERSION__' | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ .*//'`]
Packit Service 8bf002
    if test x"$stdc_ver" = x"__STDC_VERSION__"; then
Packit Service 8bf002
        [ac_cv_c_stdc_ver=0]
Packit Service 8bf002
    else
Packit Service 8bf002
        [ac_cv_c_stdc_ver=$stdc_ver]
Packit Service 8bf002
    fi
Packit Service 8bf002
)
Packit Service 8bf002
AC_DEFINE_UNQUOTED( [STDC_VERSION], $ac_cv_c_stdc_ver,
Packit Service 8bf002
    [Define the default value of __STDC_VERSION__.])
Packit Service 8bf002
Packit Service 8bf002
if test x${ac_cv_c_compiler_gnu} != xyes; then
Packit Service 8bf002
Packit Service 8bf002
# Specify the compiler's name
Packit Service 8bf002
AC_ARG_WITH( compiler-name,
Packit Service 8bf002
    AC_HELP_STRING( [--with-compiler-name=NAME],
Packit Service 8bf002
        [specify the compiler name which is used as the definition of COMPILER macro]),
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [COMPILER], $compiler_name, [specify the compiler name]),
Packit Service 8bf002
    AC_MSG_ERROR( --with-compiler-name=NAME option should be specified to define [COMPILER] macro.)
Packit Service 8bf002
)
Packit Service 8bf002
Packit Service 8bf002
# Specify the C++ header file directory
Packit Service 8bf002
AC_ARG_WITH( cxx-include-dir,
Packit Service 8bf002
    AC_HELP_STRING( [--with-cxx-include-dir=directory],
Packit Service 8bf002
        [specify the C++ include directory by absolute path [[none]]]),
Packit Service 8bf002
    [case "${withval}" in
Packit Service 8bf002
    [\\/]* | [A-Za-z]:[\\/]*)
Packit Service 8bf002
        cxx_include_dir=`echo $withval | sed 's,/$,,'; 's,\\$,,'`
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [CPLUS_INCLUDE_DIR1], $cxx_include_dir,
Packit Service 8bf002
            [Define the C++ include directory.])
Packit Service 8bf002
        ;;
Packit Service 8bf002
    *)  AC_MSG_ERROR( $withval should be an absolute path.) ;;
Packit Service 8bf002
    esac]
Packit Service 8bf002
)
Packit Service 8bf002
Packit Service 8bf002
fi  # not gcc
Packit Service 8bf002
Packit Service 8bf002
dnl Define compiler specific elements.
Packit Service 8bf002
Packit Service 8bf002
AC_MSG_NOTICE( checking for some compiler specific elements)
Packit Service 8bf002
Packit Service 8bf002
# Define GCC specific elements.
Packit Service 8bf002
if test x$ac_cv_c_compiler_gnu = xyes; then
Packit Service 8bf002
Packit Service 8bf002
    AC_DEFINE( [COMPILER], [GNUC], [Define the target compiler.])
Packit Service 8bf002
Packit Service 8bf002
    cpp_call=`$CPP $CFLAGS $arch_opt -xc -v /dev/null 2>&1 | $EGREP '/cpp|/cc1' | sed 's/^ *//; s/ .*//'` 
Packit Service 8bf002
    AC_MSG_CHECKING( for the directory to install mcpp)
Packit Service 8bf002
    cpp_name=`expr $cpp_call : '.*/\(.*\)'`
Packit Service 8bf002
    bindir=`expr $cpp_call : "\(.*\)/$cpp_name"`
Packit Service 8bf002
    AC_MSG_RESULT( $bindir)
Packit Service 8bf002
Packit Service 8bf002
    AC_PATH_PROG( [gcc_path], [$CC], , [$PATH])
Packit Service 8bf002
    cc_path=`echo $CC | $EGREP "/"`
Packit Service 8bf002
    if test x$cc_path != x; then
Packit Service 8bf002
        AC_MSG_ERROR( [Environment variables CC and CXX for GCC-specific-build should not contain a directory part.]);
Packit Service 8bf002
    fi
Packit Service 8bf002
    ## force to set $prefix to GCC's prefix
Packit Service 8bf002
    ## (i.e. "/usr/local" of "/usr/local/bin/gcc")
Packit Service 8bf002
    gcc_prefix=`echo $gcc_path | $EGREP "/bin/$CC\$" | sed "s,/bin/$CC\$,,"`
Packit Service 8bf002
    if test "x$gcc_prefix" != xNONE; then
Packit Service 8bf002
        if test "x$prefix" != xNONE && "x$gcc_prefix" != "x$prefix"; then
Packit Service 8bf002
            AC_MSG_WARN( [Ignored --prefix option, since it conflicts with GCC path])
Packit Service 8bf002
        fi
Packit Service 8bf002
        prefix=$gcc_prefix
Packit Service 8bf002
    else
Packit Service 8bf002
        if test "x$prefix" = xNONE; then
Packit Service 8bf002
            prefix=$ac_default_prefix
Packit Service 8bf002
        fi
Packit Service 8bf002
    fi
Packit Service 8bf002
    lang_save=$LANG
Packit Service 8bf002
    export LANG=C
Packit Service 8bf002
Packit Service 8bf002
    AC_MSG_CHECKING( for the compiler-specific C include directory)
Packit Service 8bf002
    exclude="^/usr(/local|)/include\$|^${prefix}(/local|)/include\$|/Frameworks|End of search list"
Packit Service 8bf002
    c_include_dirs=`$CPP $CFLAGS $arch_opt -xc -v /dev/null 2>&1 | sed '1,/<...> search starts here/d' | sed '/End of search list/q' | sed 's/^ *//' | $EGREP -v "$exclude"`
Packit Service 8bf002
    n=1
Packit Service 8bf002
    for dir in $c_include_dirs
Packit Service 8bf002
    do
Packit Service 8bf002
        case $n in
Packit Service 8bf002
        1)  c_include_dir1=$dir;;
Packit Service 8bf002
        2)  c_include_dir2=$dir;;
Packit Service 8bf002
        3)  c_include_dir3=$dir;;
Packit Service 8bf002
        esac
Packit Service 8bf002
        let n=n+1
Packit Service 8bf002
    done
Packit Service 8bf002
    if test x${c_include_dir1+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [C_INCLUDE_DIR1], "$c_include_dir1",
Packit Service 8bf002
            [Define compiler-specific C include directory 1.])
Packit Service 8bf002
        AC_MSG_RESULT( $c_include_dir1)
Packit Service 8bf002
    else
Packit Service 8bf002
        AC_MSG_RESULT( none)
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x${c_include_dir2+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [C_INCLUDE_DIR2], "$c_include_dir2",
Packit Service 8bf002
            [Define compiler-specific C include directory 2.])
Packit Service 8bf002
        AC_MSG_RESULT( $c_include_dir2)
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x${c_include_dir3+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [C_INCLUDE_DIR3], "$c_include_dir3",
Packit Service 8bf002
            [Define compiler-specific C include directory 3.])
Packit Service 8bf002
        AC_MSG_RESULT( $c_include_dir3)
Packit Service 8bf002
    fi
Packit Service 8bf002
Packit Service 8bf002
    AC_PROG_CXX
Packit Service 8bf002
    AC_PROG_CXXCPP
Packit Service 8bf002
    AC_LANG_PUSH( C++)
Packit Service 8bf002
    AC_MSG_CHECKING( for the compiler-specific C++ include directory)
Packit Service 8bf002
    exclude="^/usr(/local|)/include\$|^${prefix}(/local|)/include\$|/Frameworks|^${c_include_dir1}\$|^${c_include_dir2}\$|^${c_include_dir3}\$"
Packit Service 8bf002
    cxx_include_dirs=`${CXXCPP} ${CXXFLAGS} $arch_opt -xc++ -v /dev/null 2>&1 | sed '1,/<...> search starts here/d' | sed '/End of search list/q' | sed '/End of search list/d' | sed 's/^ *//' | $EGREP -v "$exclude"`
Packit Service 8bf002
    n=1
Packit Service 8bf002
    for dir in ${cxx_include_dirs}
Packit Service 8bf002
    do
Packit Service 8bf002
        case $n in
Packit Service 8bf002
        1)  cxx_include_dir1=$dir;;
Packit Service 8bf002
        2)  cxx_include_dir2=$dir;;
Packit Service 8bf002
        3)  cxx_include_dir3=$dir;;
Packit Service 8bf002
        4)  cxx_include_dir4=$dir;;
Packit Service 8bf002
        esac
Packit Service 8bf002
        let n=n+1
Packit Service 8bf002
    done
Packit Service 8bf002
    if test x${cxx_include_dir1+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [CPLUS_INCLUDE_DIR1], "$cxx_include_dir1",
Packit Service 8bf002
            [Define compiler-specific C++ include directory 1.])
Packit Service 8bf002
        AC_MSG_RESULT( $cxx_include_dir1)
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x${cxx_include_dir2+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [CPLUS_INCLUDE_DIR2], "$cxx_include_dir2",
Packit Service 8bf002
            [Define compiler-specific C++ include directory 2.])
Packit Service 8bf002
        AC_MSG_RESULT( $cxx_include_dir2)
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x${cxx_include_dir3+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [CPLUS_INCLUDE_DIR3], "$cxx_include_dir3",
Packit Service 8bf002
            [Define compiler-specific C++ include directory 3.])
Packit Service 8bf002
        AC_MSG_RESULT( $cxx_include_dir3)
Packit Service 8bf002
    fi
Packit Service 8bf002
    if test x${cxx_include_dir4+set} = xset; then
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [CPLUS_INCLUDE_DIR4], "$cxx_include_dir4",
Packit Service 8bf002
            [Define compiler-specific C++ include directory 4.])
Packit Service 8bf002
        AC_MSG_RESULT( $cxx_include_dir4)
Packit Service 8bf002
    fi
Packit Service 8bf002
    AC_LANG_POP( C++)
Packit Service 8bf002
Packit Service 8bf002
    export LANG=$lang_save
Packit Service 8bf002
Packit Service 8bf002
    ## the directory into which mcpp_g*.h header files are generated
Packit Service 8bf002
    ## '/mcpp-gcc' will be appended to 'inc_dir'
Packit Service 8bf002
    if test $ac_c_define_HOST_SYSTEM = SYS_MINGW; then
Packit Service 8bf002
        inc_dir=$c_include_dir2
Packit Service 8bf002
    else
Packit Service 8bf002
        if test x${c_include_dir1+set} = xset; then
Packit Service 8bf002
            inc_dir=$c_include_dir1
Packit Service 8bf002
        else
Packit Service 8bf002
            inc_dir="$prefix"/include
Packit Service 8bf002
        fi
Packit Service 8bf002
    fi
Packit Service 8bf002
    AC_DEFINE_UNQUOTED( [INC_DIR], "$inc_dir",
Packit Service 8bf002
        [Define include directory to install mcpp_g*.h header files.])
Packit Service 8bf002
Packit Service 8bf002
    AC_SUBST( [CPPFLAGS])
Packit Service 8bf002
    AC_SUBST( [host_system])
Packit Service 8bf002
    AC_SUBST( [Target_Cpu])
Packit Service 8bf002
    AC_SUBST( [inc_dir])
Packit Service 8bf002
    AC_SUBST( [gcc_maj_ver])
Packit Service 8bf002
    AC_SUBST( [gcc_min_ver])
Packit Service 8bf002
    AC_SUBST( [cpp_call])
Packit Service 8bf002
    AC_PROG_LN_S
Packit Service 8bf002
Packit Service 8bf002
    if test x$gcc_maj_ver = x2; then
Packit Service 8bf002
Packit Service 8bf002
        AC_CACHE_CHECK( for value of predefined macro '__SIZE_TYPE__',
Packit Service 8bf002
            size_type,
Packit Service 8bf002
            [size_type=`echo '__SIZE_TYPE__' | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ *//'`]
Packit Service 8bf002
        )
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [COMPILER_SP1_VAL], "$size_type",
Packit Service 8bf002
            [Define the type of size_t.])
Packit Service 8bf002
Packit Service 8bf002
        AC_CACHE_CHECK( for value of predefined macro '__PTRDIFF_TYPE__',
Packit Service 8bf002
            ptrdiff_type,
Packit Service 8bf002
            [ptrdiff_type=`echo '__PTRDIFF_TYPE__' | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ *$//'`]
Packit Service 8bf002
        )
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [COMPILER_SP2_VAL], "$ptrdiff_type",
Packit Service 8bf002
            [Define the type of ptrdiff_t.])
Packit Service 8bf002
Packit Service 8bf002
        AC_CACHE_CHECK( for value of predefined macro '__WCHAR_TYPE__',
Packit Service 8bf002
            wchar_type,
Packit Service 8bf002
            [wchar_type=`echo '__WCHAR_TYPE__' | $CPP - | sed 's/^ *//' | $EGREP -v '^#|^$' | sed 's/ *$//'`]
Packit Service 8bf002
        )
Packit Service 8bf002
        AC_DEFINE_UNQUOTED( [COMPILER_SP3_VAL], "$wchar_type",
Packit Service 8bf002
        [Define the type of wchar_t.])
Packit Service 8bf002
Packit Service 8bf002
    fi
Packit Service 8bf002
fi
Packit Service 8bf002
Packit Service 8bf002
## Handling of multi-byte characters containing '0x5c' codes:
Packit Service 8bf002
## These tests cannot be executed without appropriate options for the
Packit Service 8bf002
## compiler.  So, here we define all of these macros as FALSE.
Packit Service 8bf002
## User should edit config.h by hand after executing this script.
Packit Service 8bf002
## These should be 0 for GCC at least upto V.4.1.
Packit Service 8bf002
    AC_DEFINE( [SJIS_IS_ESCAPE_FREE], 0,
Packit Service 8bf002
        [Define if '0x5c' in SJIS multi-byte character is safe.])
Packit Service 8bf002
    AC_DEFINE( [ISO2022_JP_IS_ESCAPE_FREE], 0,
Packit Service 8bf002
        [Define if '0x5c' in ISO2022-JP multi-byte character is safe.])
Packit Service 8bf002
    AC_DEFINE( [BIGFIVE_IS_ESCAPE_FREE], 0,
Packit Service 8bf002
        [Define if '0x5c' in BIG5 multi-byte character is safe.])
Packit Service 8bf002
Packit Service 8bf002
fi ## replace-cpp mode
Packit Service 8bf002
fi ## build-cpp mode or replace-cpp mode
Packit Service 8bf002
Packit Service 8bf002
AC_ARG_WITH( [gcc-testsuite-dir],
Packit Service 8bf002
    AC_HELP_STRING( [--with-gcc-testsuite-dir=directory],
Packit Service 8bf002
        [specify the gcc testsuite directory to do make check.
Packit Service 8bf002
        e.g. /usr/src/rpm/SOURCES/gcc-2.95.4/gcc/testsuite,
Packit Service 8bf002
        /usr/local/src/gcc-3.2/gcc/testsuite, etc.
Packit Service 8bf002
        The testsuite of mcpp uses gcc testsuite, hence needs gcc source
Packit Service 8bf002
        or at least gcc testsuite.
Packit Service 8bf002
        This option needs --enable-replace-cpp option.]),
Packit Service 8bf002
    if test x${withval+set} = xset; then
Packit Service 8bf002
        if test x$enable_replace_cpp = xyes; then
Packit Service 8bf002
            [gcc_testsuite_dir=`echo $withval | sed 's,/$,,'`]
Packit Service 8bf002
        else
Packit Service 8bf002
            AC_MSG_ERROR( [--with-gcc-testsuite-dir option requires --enable-replace-cpp option.])
Packit Service 8bf002
        fi
Packit Service 8bf002
    else
Packit Service 8bf002
        AC_MSG_ERROR( [--with-gcc-testsuite-dir option requires an argument.])
Packit Service 8bf002
    fi
Packit Service 8bf002
)
Packit Service 8bf002
AC_SUBST( [gcc_testsuite_dir])
Packit Service 8bf002
AM_CONDITIONAL( [GNUC], test x$ac_cv_c_compiler_gnu = xyes)
Packit Service 8bf002
AM_CONDITIONAL( [MCPP_LIB], test x$enable_mcpplib = xyes)
Packit Service 8bf002
AM_CONDITIONAL( [REPLACE_CPP], test x$enable_replace_cpp = xyes)
Packit Service 8bf002
AM_CONDITIONAL( [MINGW], test $ac_c_define_HOST_SYSTEM = SYS_MINGW)
Packit Service 8bf002
Packit Service 8bf002
dnl Final output.
Packit Service 8bf002
Packit Service 8bf002
AC_OUTPUT( Makefile src/Makefile tests/Makefile)