diff options
Diffstat (limited to 'testsuites/aclocal/target.m4')
-rw-r--r-- | testsuites/aclocal/target.m4 | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/testsuites/aclocal/target.m4 b/testsuites/aclocal/target.m4 new file mode 100644 index 0000000000..d6c2de9fd2 --- /dev/null +++ b/testsuites/aclocal/target.m4 @@ -0,0 +1,138 @@ +dnl $Id$ + +## HACK: Work-around to structural issue with RTEMS +## The macros below violate most autoconf and canonicalization standards +AC_DEFUN(RTEMS_CONFIG_BUILD_SUBDIRS, +[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS]) +RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]" +]) + +dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS +AC_DEFUN([_RTEMS_OUTPUT_BUILD_SUBDIRS], +[AC_CONFIG_COMMANDS([bsp-tools], +[ +# HACK: This is a blantant hack and breaks Canadian crosses +build_alias="$build_alias" +host_alias="$build_alias" +if test "$no_recursion" != yes; then + if test x"$build_alias" != x"$host_alias"; then + target_subdir="$host_alias" + else + target_subdir="." + fi + RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args], + [ + -host* | --host* ) ;; + --host ) ac_prev=host_alias;; + -target* | --target* ) ;; + -target ) ac_prev=target_alias ;; + -build* | --build* ) ;; + -build ) ac_prev_build_alias ;; + *_alias=* ) ;; # HACK: Workaround to autoconf passing *_alias + ], + [rtems_configure_args]) + + for rtems_config_dir in $RTEMS_BUILD_SUBDIRS; do + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + if test ! -d $srcdir/$rtems_config_dir; then + continue + fi + + _RTEMS_PUSH_BUILDDIR([$rtems_config_dir]) + + _RTEMS_SUB_SRCDIR([$rtems_config_dir]) + + # The recursion is here. + if test -n "$ac_sub_configure"; then +# ac_sub_cache_file=./config.cache + ac_sub_cache_file=/dev/null + _RTEMS_GIVEN_INSTALL + + echo "[running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file] --srcdir=$ac_sub_srcdir" + # The eval makes quoting arguments work. + if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure \ + $ac_sub_configure_args \ + --srcdir=$ac_sub_srcdir \ + --with-target-subdir=$target_subdir \ + --cache-file=$ac_sub_cache_file + then : + else + AC_MSG_ERROR([$ac_sub_configure failed for $rtems_config_dir]) + fi + fi + + _RTEMS_POP_BUILDDIR + done +fi], +[ +RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS" +rtems_configure_args="$ac_configure_args" +]) +]) + +## FIXME: This is obsolete. Only kept for backward compatibility +AU_DEFUN([RTEMS_OUTPUT_BUILD_SUBDIRS],[]) + + +dnl +dnl Misc utility macros for subdir handling to work around missing abilities +dnl in autoconf, automake and structural issues with RTEMS +dnl +dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus' +dnl configure.in. +dnl + +dnl +dnl _RTEMS_PUSH_BUILDDIR(SUBDIR) +dnl +AC_DEFUN(_RTEMS_PUSH_BUILDDIR, +[ +# _RTEMS_PUSH_BUILDDIR + echo configuring in $1 + case "$srcdir" in + .) ;; + *) AS_MKDIR_P([$1]) + ;; + esac + + ac_popdir=`pwd` + cd $1 +]) + +dnl +dnl _RTEMS_POP_BUILDDIR +dnl +AC_DEFUN(_RTEMS_POP_BUILDDIR, +[ + cd $ac_popdir +]) + +dnl +dnl _RTEMS_GIVEN_INSTALL +dnl +AC_DEFUN(_RTEMS_GIVEN_INSTALL, +[ +ifdef([AC_PROVIDE_AC_PROG_INSTALL],[ + case "$ac_given_INSTALL" in + [[\\/]]* | ?:[[\\/]]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac +])dnl +]) + +dnl +dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR]) +dnl +AC_DEFUN(_RTEMS_SUB_SRCDIR,[ +# _RTEMS_SUB_SRCDIR + _RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2) + + # Check for configure + if test -f $ac_sub_srcdir/configure; then + ac_sub_configure=$ac_sub_srcdir/configure + else + AC_MSG_WARN([no configuration information is in $1]) + ac_sub_configure= + fi +]) |