1 | dnl $Id$ |
---|
2 | |
---|
3 | ## HACK: Work-around to structural issue with RTEMS |
---|
4 | ## The macros below violate most autoconf and canonicalization standards |
---|
5 | AC_DEFUN([RTEMS_CONFIG_BUILD_SUBDIRS], |
---|
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 | ## FIXME: This is obsolete. Only kept for backward compatibility |
---|
75 | AU_DEFUN([RTEMS_OUTPUT_BUILD_SUBDIRS],[]) |
---|
76 | |
---|
77 | |
---|
78 | dnl |
---|
79 | dnl Misc utility macros for subdir handling to work around missing abilities |
---|
80 | dnl in autoconf, automake and structural issues with RTEMS |
---|
81 | dnl |
---|
82 | dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus' |
---|
83 | dnl configure.in. |
---|
84 | dnl |
---|
85 | |
---|
86 | dnl |
---|
87 | dnl _RTEMS_PUSH_BUILDDIR(SUBDIR) |
---|
88 | dnl |
---|
89 | AC_DEFUN([_RTEMS_PUSH_BUILDDIR], |
---|
90 | [ |
---|
91 | # _RTEMS_PUSH_BUILDDIR |
---|
92 | echo configuring in $1 |
---|
93 | case "$srcdir" in |
---|
94 | .) ;; |
---|
95 | *) AS_MKDIR_P([$1]) |
---|
96 | ;; |
---|
97 | esac |
---|
98 | |
---|
99 | ac_popdir=`pwd` |
---|
100 | cd $1 |
---|
101 | ]) |
---|
102 | |
---|
103 | dnl |
---|
104 | dnl _RTEMS_POP_BUILDDIR |
---|
105 | dnl |
---|
106 | AC_DEFUN([_RTEMS_POP_BUILDDIR], |
---|
107 | [ |
---|
108 | cd "$ac_popdir" |
---|
109 | ]) |
---|
110 | |
---|
111 | dnl |
---|
112 | dnl _RTEMS_GIVEN_INSTALL |
---|
113 | dnl |
---|
114 | AC_DEFUN([_RTEMS_GIVEN_INSTALL], |
---|
115 | [ |
---|
116 | ifdef([AC_PROVIDE_AC_PROG_INSTALL],[ |
---|
117 | case "$ac_given_INSTALL" in |
---|
118 | [[\\/]]* | ?:[[\\/]]*) INSTALL="$ac_given_INSTALL" ;; |
---|
119 | *) INSTALL="$ac_dots$ac_given_INSTALL" ;; |
---|
120 | esac |
---|
121 | ])dnl |
---|
122 | ]) |
---|
123 | |
---|
124 | dnl |
---|
125 | dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR]) |
---|
126 | dnl |
---|
127 | AC_DEFUN([_RTEMS_SUB_SRCDIR],[ |
---|
128 | # _RTEMS_SUB_SRCDIR |
---|
129 | _RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2) |
---|
130 | |
---|
131 | # Check for configure |
---|
132 | if test -f $ac_sub_srcdir/configure; then |
---|
133 | ac_sub_configure=$ac_sub_srcdir/configure |
---|
134 | else |
---|
135 | AC_MSG_WARN([no configuration information is in $1]) |
---|
136 | ac_sub_configure= |
---|
137 | fi |
---|
138 | ]) |
---|