summaryrefslogtreecommitdiffstats
path: root/testsuites/aclocal/target.m4
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/aclocal/target.m4')
-rw-r--r--testsuites/aclocal/target.m4138
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
+])