summaryrefslogtreecommitdiffstats
path: root/c/src/tests/tools/generic/aclocal.m4
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/tests/tools/generic/aclocal.m4')
-rw-r--r--c/src/tests/tools/generic/aclocal.m4276
1 files changed, 235 insertions, 41 deletions
diff --git a/c/src/tests/tools/generic/aclocal.m4 b/c/src/tests/tools/generic/aclocal.m4
index 2cdbc762bf..59b2d047d9 100644
--- a/c/src/tests/tools/generic/aclocal.m4
+++ b/c/src/tests/tools/generic/aclocal.m4
@@ -19,6 +19,9 @@ dnl $1 .. relative path from this configure.in to the toplevel configure.in
dnl
AC_DEFUN(RTEMS_TOP,
[dnl
+AC_BEFORE([$0], [AC_CONFIG_AUX_DIR])dnl
+AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
+
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=DIR],
TARGET_SUBDIR="$withval",
@@ -44,47 +47,6 @@ fi
AC_MSG_RESULT($RTEMS_VERSION)
])dnl
-dnl
-dnl $Id$
-dnl
-
-dnl canonicalize target cpu
-dnl NOTE: Most rtems targets do not fullfil autoconf's
-dnl target naming conventions "processor-vendor-os"
-dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
-dnl and we have to fix it for rtems ourselves
-
-AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
-[
-AC_CANONICAL_SYSTEM
-AC_MSG_CHECKING(rtems target cpu)
-changequote(,)dnl
-case "${target}" in
- # hpux unix port should go here
- i[3456]86-go32-rtems*)
- RTEMS_CPU=i386
- ;;
- i[3456]86-pc-linux*) # unix "simulator" port
- RTEMS_CPU=unix
- ;;
- i[3456]86-*freebsd2*) # unix "simulator" port
- RTEMS_CPU=unix
- ;;
- no_cpu-*rtems*)
- RTEMS_CPU=no_cpu
- ;;
- sparc-sun-solaris*) # unix "simulator" port
- RTEMS_CPU=unix
- ;;
- *)
- RTEMS_CPU=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
- ;;
-esac
-changequote([,])dnl
-AC_SUBST(RTEMS_CPU)
-AC_MSG_RESULT($RTEMS_CPU)
-])
-
# Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
@@ -179,6 +141,47 @@ else
fi
AC_SUBST($1)])
+dnl
+dnl $Id$
+dnl
+
+dnl canonicalize target cpu
+dnl NOTE: Most rtems targets do not fullfil autoconf's
+dnl target naming conventions "processor-vendor-os"
+dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
+dnl and we have to fix it for rtems ourselves
+
+AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
+[
+AC_CANONICAL_SYSTEM
+AC_MSG_CHECKING(rtems target cpu)
+changequote(,)dnl
+case "${target}" in
+ # hpux unix port should go here
+ i[3456]86-go32-rtems*)
+ RTEMS_CPU=i386
+ ;;
+ i[3456]86-pc-linux*) # unix "simulator" port
+ RTEMS_CPU=unix
+ ;;
+ i[3456]86-*freebsd2*) # unix "simulator" port
+ RTEMS_CPU=unix
+ ;;
+ no_cpu-*rtems*)
+ RTEMS_CPU=no_cpu
+ ;;
+ sparc-sun-solaris*) # unix "simulator" port
+ RTEMS_CPU=unix
+ ;;
+ *)
+ RTEMS_CPU=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
+ ;;
+esac
+changequote([,])dnl
+AC_SUBST(RTEMS_CPU)
+AC_MSG_RESULT($RTEMS_CPU)
+])
+
# Add --enable-maintainer-mode option to configure.
# From Jim Meyering
@@ -219,6 +222,7 @@ dnl used by the toplevel configure script
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
AC_DEFUN(RTEMS_ENABLE_RTEMSBSP,
[
+AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])dnl
AC_ARG_ENABLE(rtemsbsp,
[ --enable-rtemsbsp=bsp1 bsp2 .. BSPs to include in build],
[case "${enableval}" in
@@ -231,6 +235,12 @@ dnl Pass a single BSP via an environment variable
dnl used by per BSP configure scripts
AC_DEFUN(RTEMS_ENV_RTEMSBSP,
[dnl
+AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
+AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
+AC_BEFORE([$0], [RTEMS_CHECK_CUSTOM_BSP])dnl
+AC_BEFORE([$0], [RTEMS_CHECK_MULTIPROCESSING])dnl
+AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
+
AC_MSG_CHECKING([for RTEMS_BSP])
AC_CACHE_VAL(rtems_cv_RTEMS_BSP,
[dnl
@@ -271,6 +281,190 @@ AC_SUBST(PACKHEX)
dnl $Id$
+dnl Report all available bsps for a target,
+dnl check if a bsp-subdirectory is present for all bsps found
+dnl
+dnl RTEMS_CHECK_BSPS(bsp_list)
+AC_DEFUN(RTEMS_CHECK_BSPS,
+[
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
+AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
+AC_MSG_CHECKING([for bsps])
+case "${target}" in
+changequote(,)dnl
+ i[3456]86-go32-rtems*)
+changequote([,])dnl
+ $1="go32 go32_p5"
+ ;;
+ *)
+ files=`ls $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU`
+ for file in $files; do
+ case $file in
+ shared*);;
+ Makefile*);;
+ READ*);;
+ CVS*);;
+ pxfl*);;
+ go32*);; # so the i386 port can pick up the other Makefiles
+ # Now account for BSPs with build variants
+ gen68360) rtems_bsp="$rtems_bsp gen68360 gen68360_040";;
+ p4000) rtems_bsp="$rtems_bsp p4600 p4650";;
+ mvme162) rtems_bsp="$rtems_bsp mvme162 mvme162lx";;
+ *) $1="[$]$1 $file";;
+ esac;
+ done
+ ;;
+esac
+AC_MSG_RESULT([[$]$1 .. done])
+])dnl
+
+AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,
+[dnl
+AC_REQUIRE([RTEMS_TOP])
+
+AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
+if test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"; then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_ERROR([no])
+fi
+])dnl
+
+dnl $Id$
+
+dnl check if RTEMS support a cpu
+AC_DEFUN(RTEMS_CHECK_CPU,
+[dnl
+AC_REQUIRE([RTEMS_TOP])
+AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
+AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
+
+# Is this a supported CPU?
+AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
+if test -d "$srcdir/$RTEMS_TOPdir/c/src/exec/score/cpu/$RTEMS_CPU"; then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_ERROR(no)
+fi
+])dnl
+
+
+dnl $Id$
+dnl
+AC_DEFUN(RTEMS_CHECK_POSIX_API,
+[dnl
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl
+AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
+
+AC_CACHE_CHECK([whether BSP supports libposix],
+ rtems_cv_HAS_POSIX_API,
+ [dnl
+ case "$RTEMS_CPU" in
+ unix*)
+ rtems_cv_HAS_POSIX_API="no"
+ ;;
+ *)
+ if test "${RTEMS_HAS_POSIX_API}" = "yes"; then
+ rtems_cv_HAS_POSIX_API="yes";
+ else
+ rtems_cv_HAS_POSIX_API="disabled";
+ fi
+ ;;
+ esac])
+if test "$rtems_cv_HAS_POSIX_API" = "yes"; then
+ HAS_POSIX_API="yes";
+else
+ HAS_POSIX_API="no";
+fi
+AC_SUBST(HAS_POSIX_API)dnl
+])
+
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_POSIX,
+[
+AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
+
+AC_ARG_ENABLE(posix,
+[ --enable-posix enable posix interface],
+[case "${enableval}" in
+ yes) RTEMS_HAS_POSIX_API=yes ;;
+ no) RTEMS_HAS_POSIX_API=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-posix option) ;;
+esac],[RTEMS_HAS_POSIX_API=yes])
+AC_SUBST(RTEMS_HAS_POSIX_API)
+
+changequote(,)dnl
+case "${target}" in
+ # hpux unix port should go here
+ i[3456]86-go32-rtems*)
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ i[3456]86-pc-linux*) # unix "simulator" port
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ i[3456]86-*freebsd2*) # unix "simulator" port
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ no_cpu-*rtems*)
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ sparc-sun-solaris*) # unix "simulator" port
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ *)
+ ;;
+esac
+changequote([,])dnl
+AC_SUBST(RTEMS_HAS_POSIX_API)
+])
+
+dnl
+dnl $Id$
+dnl
+
+AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
+[dnl
+AC_REQUIRE([RTEMS_TOP])dnl
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl
+AC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnl
+
+AC_CACHE_CHECK([whether BSP supports multiprocessing],
+ rtems_cv_HAS_MP,
+ [dnl
+ if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${$1}/shmsupp"; then
+ if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then
+ rtems_cv_HAS_MP="yes" ;
+ else
+ rtems_cv_HAS_MP="disabled";
+ fi
+ else
+ rtems_cv_HAS_MP="no";
+ fi])
+if test "$rtems_cv_HAS_MP" = "yes"; then
+HAS_MP="yes"
+else
+HAS_MP="no"
+fi
+AC_SUBST(HAS_MP)
+])
+
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
+[
+AC_ARG_ENABLE(multiprocessing,
+[ --enable-multiprocessing enable multiprocessing interface],
+[case "${enableval}" in
+ yes) RTEMS_HAS_MULTIPROCESSING=yes ;;
+ no) RTEMS_HAS_MULTIPROCESSING=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
+esac],[RTEMS_HAS_MULTIPROCESSING=no])
+AC_SUBST(RTEMS_HAS_MULTIPROCESSING)dnl
+])
+
+dnl $Id$
+
AC_DEFUN(RTEMS_PATH_KSH,
[
dnl NOTE: prefer bash over ksh over sh