[867ab080] | 1 | dnl $Id$ |
---|
| 2 | |
---|
| 3 | ## HACK: Work-around to structural issue with RTEMS |
---|
| 4 | ## The macros below violate most autoconf and canonicalization standards |
---|
[9550125e] | 5 | AC_DEFUN([RTEMS_CONFIG_BUILD_SUBDIRS], |
---|
[867ab080] | 6 | [AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS]) |
---|
| 7 | RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]" |
---|
| 8 | ]) |
---|
| 9 | |
---|
| 10 | dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS |
---|
| 11 | AC_DEFUN([_RTEMS_OUTPUT_BUILD_SUBDIRS], |
---|
| 12 | [AC_CONFIG_COMMANDS([bsp-tools], |
---|
| 13 | [ |
---|
| 14 | # HACK: This is a blantant hack and breaks Canadian crosses |
---|
| 15 | build_alias="$build_alias" |
---|
| 16 | host_alias="$build_alias" |
---|
| 17 | if test "$no_recursion" != yes; then |
---|
| 18 | if test x"$build_alias" != x"$host_alias"; then |
---|
| 19 | target_subdir="$host_alias" |
---|
| 20 | else |
---|
| 21 | target_subdir="." |
---|
| 22 | fi |
---|
| 23 | RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args], |
---|
| 24 | [ |
---|
| 25 | -host* | --host* ) ;; |
---|
| 26 | --host ) ac_prev=host_alias;; |
---|
| 27 | -target* | --target* ) ;; |
---|
| 28 | -target ) ac_prev=target_alias ;; |
---|
| 29 | -build* | --build* ) ;; |
---|
| 30 | -build ) ac_prev_build_alias ;; |
---|
| 31 | *_alias=* ) ;; # HACK: Workaround to autoconf passing *_alias |
---|
| 32 | ], |
---|
| 33 | [rtems_configure_args]) |
---|
| 34 | |
---|
| 35 | for rtems_config_dir in $RTEMS_BUILD_SUBDIRS; do |
---|
| 36 | # Do not complain, so a configure script can configure whichever |
---|
| 37 | # parts of a large source tree are present. |
---|
| 38 | if test ! -d $srcdir/$rtems_config_dir; then |
---|
| 39 | continue |
---|
| 40 | fi |
---|
| 41 | |
---|
| 42 | _RTEMS_PUSH_BUILDDIR([$rtems_config_dir]) |
---|
| 43 | |
---|
| 44 | _RTEMS_SUB_SRCDIR([$rtems_config_dir]) |
---|
| 45 | |
---|
| 46 | # The recursion is here. |
---|
| 47 | if test -n "$ac_sub_configure"; then |
---|
| 48 | # ac_sub_cache_file=./config.cache |
---|
| 49 | ac_sub_cache_file=/dev/null |
---|
| 50 | _RTEMS_GIVEN_INSTALL |
---|
| 51 | |
---|
| 52 | echo "[running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file] --srcdir=$ac_sub_srcdir" |
---|
| 53 | # The eval makes quoting arguments work. |
---|
| 54 | if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure \ |
---|
| 55 | $ac_sub_configure_args \ |
---|
| 56 | --srcdir=$ac_sub_srcdir \ |
---|
| 57 | --with-target-subdir=$target_subdir \ |
---|
| 58 | --cache-file=$ac_sub_cache_file |
---|
| 59 | then : |
---|
| 60 | else |
---|
| 61 | AC_MSG_ERROR([$ac_sub_configure failed for $rtems_config_dir]) |
---|
| 62 | fi |
---|
| 63 | fi |
---|
| 64 | |
---|
| 65 | _RTEMS_POP_BUILDDIR |
---|
| 66 | done |
---|
| 67 | fi], |
---|
| 68 | [ |
---|
| 69 | RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS" |
---|
| 70 | rtems_configure_args="$ac_configure_args" |
---|
| 71 | ]) |
---|
| 72 | ]) |
---|
| 73 | |
---|
| 74 | dnl |
---|
| 75 | dnl Misc utility macros for subdir handling to work around missing abilities |
---|
| 76 | dnl in autoconf, automake and structural issues with RTEMS |
---|
| 77 | dnl |
---|
| 78 | dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus' |
---|
| 79 | dnl configure.in. |
---|
| 80 | dnl |
---|
| 81 | |
---|
| 82 | dnl |
---|
| 83 | dnl _RTEMS_PUSH_BUILDDIR(SUBDIR) |
---|
| 84 | dnl |
---|
[9550125e] | 85 | AC_DEFUN([_RTEMS_PUSH_BUILDDIR], |
---|
[867ab080] | 86 | [ |
---|
| 87 | # _RTEMS_PUSH_BUILDDIR |
---|
| 88 | echo configuring in $1 |
---|
| 89 | case "$srcdir" in |
---|
| 90 | .) ;; |
---|
| 91 | *) AS_MKDIR_P([$1]) |
---|
| 92 | ;; |
---|
| 93 | esac |
---|
| 94 | |
---|
| 95 | ac_popdir=`pwd` |
---|
| 96 | cd $1 |
---|
| 97 | ]) |
---|
| 98 | |
---|
| 99 | dnl |
---|
| 100 | dnl _RTEMS_POP_BUILDDIR |
---|
| 101 | dnl |
---|
[9550125e] | 102 | AC_DEFUN([_RTEMS_POP_BUILDDIR], |
---|
[867ab080] | 103 | [ |
---|
[0ad53a9] | 104 | cd "$ac_popdir" |
---|
[867ab080] | 105 | ]) |
---|
| 106 | |
---|
| 107 | dnl |
---|
| 108 | dnl _RTEMS_GIVEN_INSTALL |
---|
| 109 | dnl |
---|
[9550125e] | 110 | AC_DEFUN([_RTEMS_GIVEN_INSTALL], |
---|
[867ab080] | 111 | [ |
---|
| 112 | ifdef([AC_PROVIDE_AC_PROG_INSTALL],[ |
---|
| 113 | case "$ac_given_INSTALL" in |
---|
| 114 | [[\\/]]* | ?:[[\\/]]*) INSTALL="$ac_given_INSTALL" ;; |
---|
| 115 | *) INSTALL="$ac_dots$ac_given_INSTALL" ;; |
---|
| 116 | esac |
---|
| 117 | ])dnl |
---|
| 118 | ]) |
---|
| 119 | |
---|
| 120 | dnl |
---|
| 121 | dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR]) |
---|
| 122 | dnl |
---|
[9550125e] | 123 | AC_DEFUN([_RTEMS_SUB_SRCDIR],[ |
---|
[867ab080] | 124 | # _RTEMS_SUB_SRCDIR |
---|
| 125 | _RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2) |
---|
| 126 | |
---|
| 127 | # Check for configure |
---|
| 128 | if test -f $ac_sub_srcdir/configure; then |
---|
| 129 | ac_sub_configure=$ac_sub_srcdir/configure |
---|
| 130 | else |
---|
| 131 | AC_MSG_WARN([no configuration information is in $1]) |
---|
| 132 | ac_sub_configure= |
---|
| 133 | fi |
---|
| 134 | ]) |
---|