Files
rtems/aclocal/prog-cxx.m4
Joel Sherrill 2efdd08b40 Patch from Ralf Corseipus to fix latent configure problems suddenly triggered:
The breakdown:
        * CC_FOR_TARGET and CXX_FOR_TARGET were not correctly re-read
          from autoconf's configuration cache (config.cache)

        * If <target>-[gcc|g++] was not found while running configure,
          the config macros tried to use other (wrong) compilers (e.g. cc).

    Changes:
        * New RTEMS_PROG_CC macro (aclocal/prog-cc.m4).
        * New RTEMS_PROG_CXX macro (aclocal/prog-cxx.m4)
        * Moved a shell script fragment from configure.in to a
          new m4-autoconf macro (New file: aclocal/tool-prefix.m4)
        * Minor changes to configure.in

    I tested it with linux/posix (native gcc/primary libc) and
    sh-rtems/gensh1 on a linux host and didn't notice any bugs
    related to the problems mentioned above.  There seem to be
    more bugs with the posix bsp, but I consider them minor as
    the build run completed successfully. It is just too late
    for me to attempt to fix them now.
1998-05-20 17:06:57 +00:00

66 lines
1.5 KiB
Plaintext

dnl
dnl $Id$
dnl
dnl Check for target g++
dnl
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
dnl Completely reworked
AC_DEFUN(RTEMS_PROG_CXX,
[
AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
AC_BEFORE([$0], [AC_PROG_CXX])dnl
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
dnl Only accept g++ and c++
dnl NOTE: This might be too restrictive for native compilation
AC_PATH_PROGS(CXX_FOR_TARGET, "$program_prefix"g++ "$program_prefix"c++)
test -z "$CXX_FOR_TARGET" \
&& AC_MSG_ERROR([no acceptable c++ found in \$PATH])
dnl backup
rtems_save_CXX=$CXX
rtems_save_CXXFLAGS=$CXXFLAGS
dnl temporarily set CXX
CXX=$CXX_FOR_TARGET
AC_PROG_CXX_WORKS
AC_PROG_CXX_GNU
if test $ac_cv_prog_gxx = yes; then
GXX=yes
dnl Check whether -g works, even if CXXFLAGS is set, in case the package
dnl plays around with CXXFLAGS (such as to build both debugging and
dnl normal versions of a library), tasteless as that idea is.
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
AC_PROG_CXX_G
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
elif test $ac_cv_prog_cxx_g = yes; then
CXXFLAGS="-g -O2"
else
CXXFLAGS="-O2"
fi
else
GXX=
test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
fi
rtems_cv_prog_gxx=$ac_cv_prog_gxx
rtems_cv_prog_cxx_g=$ac_cv_prog_cxx_g
rtems_cv_prog_cxx_works=$ac_cv_prog_cxx_works
rtems_cv_prog_cxx_cross=$ac_cv_prog_cxx_cross
CXX=$rtems_save_CXX
CXXFLAGS=$rtems_save_CXXFLAGS
dnl restore initial values
unset ac_cv_prog_gxx
unset ac_cv_prog_cc_g
unset ac_cv_prog_cxx_works
unset ac_cv_prog_cxx_cross
])