diff options
Diffstat (limited to 'c/src/tests/tools/generic/aclocal.m4')
-rw-r--r-- | c/src/tests/tools/generic/aclocal.m4 | 276 |
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 |