mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-22 14:25:56 +08:00
New files missed in previous merge.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Set target tools
|
||||
dnl
|
||||
dnl 98/02/12 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])dnl
|
||||
if test "$rtems_cv_prog_gcc" = "yes" ; then
|
||||
dnl We are using gcc, now ask it about its tools
|
||||
dnl Necessary if gcc was configured to use the target's native tools
|
||||
dnl or uses prefixes for gnutools (e.g. gas instead of as)
|
||||
AR_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ar`
|
||||
AS_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=as`
|
||||
LD_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ld`
|
||||
NM_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=nm`
|
||||
RANLIB_FOR_TARGET=`$CC_FOR_TARGET --print-prog-name=ranlib`
|
||||
fi
|
||||
|
||||
dnl check whether the tools exist
|
||||
dnl FIXME: What shall be done if they don't exist?
|
||||
|
||||
dnl NOTE: CC_FOR_TARGET should always be valid at this point,
|
||||
dnl cf. RTEMS_PROG_CC
|
||||
AC_PATH_PROG(CC_FOR_TARGET,"$program_prefix"gcc,no)
|
||||
|
||||
dnl FIXME: This may fail if the compiler has not been recognized as gcc
|
||||
dnl and uses tools with different names
|
||||
AC_PATH_PROG(AR_FOR_TARGET,"$program_prefix"ar,no)
|
||||
AC_PATH_PROG(AS_FOR_TARGET,"$program_prefix"as,no)
|
||||
AC_PATH_PROG(NM_FOR_TARGET,"$program_prefix"nm,no)
|
||||
AC_PATH_PROG(LD_FOR_TARGET,"$program_prefix"ld,no)
|
||||
|
||||
dnl NOTE: This is doubtful, but should not disturb all current rtems'
|
||||
dnl targets (remark: solaris fakes ranlib!!)
|
||||
AC_PATH_PROG(RANLIB_FOR_TARGET,"$program_prefix"ranlib,no)
|
||||
|
||||
dnl NOTE: These may not be available, if not using gnutools
|
||||
AC_PATH_PROG(OBJCOPY_FOR_TARGET,"$program_prefix"objcopy,no)
|
||||
AC_PATH_PROG(SIZE_FOR_TARGET,"$program_prefix"size,no)
|
||||
])
|
||||
@@ -0,0 +1,20 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -pipe
|
||||
dnl
|
||||
dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_GCC_PIPE,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe,
|
||||
[
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC_FOR_TARGET} --pipe -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_pipe=yes
|
||||
else
|
||||
rtems_cv_gcc_pipe=no
|
||||
fi
|
||||
rm -f conftest*
|
||||
])])
|
||||
@@ -0,0 +1,20 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -specs
|
||||
dnl
|
||||
dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_GCC_SPECS,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts -specs,rtems_cv_gcc_specs,
|
||||
[touch confspec
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC_FOR_TARGET} -specs confspec -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_specs=yes
|
||||
else
|
||||
rtems_cv_gcc_specs=no
|
||||
fi
|
||||
rm -f confspec conftest*
|
||||
])])
|
||||
@@ -0,0 +1,76 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check for target gcc
|
||||
dnl
|
||||
dnl Adaptation of autoconf-2.12's AC_PROG_CC to rtems
|
||||
dnl
|
||||
dnl 98/02/10 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_PROG_CC,
|
||||
[
|
||||
AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
||||
AC_BEFORE([$0], [AC_PROG_CC])dnl
|
||||
AC_CHECK_PROG(CC, gcc, gcc)
|
||||
if test -z "$CC"; then
|
||||
AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
|
||||
test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
fi
|
||||
|
||||
RTEMS_PROG_CC_WORKS
|
||||
AC_PROG_CC_GNU
|
||||
|
||||
if test $ac_cv_prog_gcc = yes; then
|
||||
GCC=yes
|
||||
dnl Check whether -g works, even if CFLAGS is set, in case the package
|
||||
dnl plays around with CFLAGS (such as to build both debugging and
|
||||
dnl normal versions of a library), tasteless as that idea is.
|
||||
ac_test_CFLAGS="${CFLAGS+set}"
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS=
|
||||
AC_PROG_CC_G
|
||||
if test "$ac_test_CFLAGS" = set; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
elif test $ac_cv_prog_cc_g = yes; then
|
||||
CFLAGS="-g -O2"
|
||||
else
|
||||
CFLAGS="-O2"
|
||||
fi
|
||||
else
|
||||
GCC=
|
||||
test "${CFLAGS+set}" = set || CFLAGS="-g"
|
||||
fi
|
||||
|
||||
CC_FOR_TARGET=$CC
|
||||
rtems_cv_prog_gcc=$ac_cv_prog_gcc
|
||||
rtems_cv_prog_cc_g=$ac_cv_prog_cc_g
|
||||
|
||||
dnl restore initial values
|
||||
unset CC
|
||||
unset ac_cv_prog_gcc
|
||||
unset ac_cv_prog_cc_g
|
||||
unset ac_cv_prog_CC
|
||||
])
|
||||
|
||||
|
||||
dnl Almost identical to AC_PROG_CC_WORKS
|
||||
dnl added malloc to program fragment, because rtems has its own malloc
|
||||
dnl which is not available while bootstrapping rtems
|
||||
|
||||
AC_DEFUN(RTEMS_PROG_CC_WORKS,
|
||||
[AC_MSG_CHECKING([whether the target C compiler ($CC $CFLAGS $LDFLAGS) works])
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_C
|
||||
AC_TRY_COMPILER(
|
||||
[void *malloc() { return 0; }
|
||||
main(){return(0);}],
|
||||
rtems_cv_prog_cc_works, rtems_cv_prog_cc_cross)
|
||||
AC_LANG_RESTORE
|
||||
AC_MSG_RESULT($rtems_cv_prog_cc_works)
|
||||
if test $rtems_cv_prog_cc_works = no; then
|
||||
AC_MSG_ERROR([installation or configuration problem: target C compiler cannot create executables.])
|
||||
fi
|
||||
AC_MSG_CHECKING([whether the target C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler])
|
||||
AC_MSG_RESULT($rtems_cv_prog_cc_cross)
|
||||
])
|
||||
@@ -0,0 +1,76 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check for target g++
|
||||
dnl
|
||||
dnl Adaptation of autoconf-2.12's AC_PROG_CXX to rtems
|
||||
dnl
|
||||
dnl 98/02/10 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_PROG_CXX,
|
||||
[
|
||||
AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
|
||||
AC_BEFORE([$0], [AC_PROG_CXX])dnl
|
||||
AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
|
||||
|
||||
RTEMS_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
|
||||
CXX_FOR_TARGET=$CXX
|
||||
|
||||
dnl restore initial values
|
||||
unset CXX
|
||||
unset ac_cv_prog_gxx
|
||||
])
|
||||
|
||||
|
||||
dnl Almost identical to AC_PROG_CXX_WORKS
|
||||
dnl Additional handling of malloc
|
||||
dnl NOTE: using newlib with a native compiler is cross-compiling, indeed.
|
||||
AC_DEFUN(RTEMS_PROG_CXX_WORKS,
|
||||
[AC_MSG_CHECKING([whether the target C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
|
||||
AC_LANG_SAVE
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
||||
dnl this fails if rtems uses newlib, because rtems has its own malloc which
|
||||
dnl is not available at bootstrap
|
||||
AC_TRY_COMPILER(
|
||||
[main(){return(0);}],
|
||||
rtems_cv_prog_cxx_works, rtems_cv_prog_cxx_cross)
|
||||
if test "$rtems_cv_prog_cxx_works" = "no"; then
|
||||
dnl now retry with our own version of malloc
|
||||
AC_TRY_COMPILER(
|
||||
[extern "C" void *malloc();
|
||||
void *malloc() { return (0); }
|
||||
main(){return(0);}],
|
||||
rtems_cv_prog_cxx_works, rtems_cv_prog_cxx_cross)
|
||||
fi
|
||||
AC_LANG_RESTORE
|
||||
AC_MSG_RESULT($rtems_cv_prog_cxx_works)
|
||||
if test $rtems_cv_prog_cxx_works = no; then
|
||||
AC_MSG_ERROR([installation or configuration problem: target C++ compiler cannot create executables.])
|
||||
fi
|
||||
AC_MSG_CHECKING([whether the target C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
|
||||
AC_MSG_RESULT($rtems_cv_prog_cxx_cross)
|
||||
])
|
||||
Reference in New Issue
Block a user