summaryrefslogtreecommitdiffstats
path: root/aclocal
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2001-02-05 18:04:57 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2001-02-05 18:04:57 +0000
commitf5c583619c80e98f0366f32ba40853ad881ffe8e (patch)
tree5d397d4a764504faf30e36087e69c214d5b4a87c /aclocal
parent2001-02-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff)
downloadrtems-f5c583619c80e98f0366f32ba40853ad881ffe8e.tar.bz2
2001-02-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* aclocal/config-subdirs.m4: New file. * aclocal/target.m4: Use macros from config-subdirs.m4.
Diffstat (limited to 'aclocal')
-rw-r--r--aclocal/config-subdirs.m4249
-rw-r--r--aclocal/target.m450
2 files changed, 254 insertions, 45 deletions
diff --git a/aclocal/config-subdirs.m4 b/aclocal/config-subdirs.m4
new file mode 100644
index 0000000000..0dbcc5f63b
--- /dev/null
+++ b/aclocal/config-subdirs.m4
@@ -0,0 +1,249 @@
+dnl $Id$
+
+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
+## We use mkinstalldirs below as a workaround to mkdir -p not being
+## available everywhere, but us wanting to support deep directories.
+ case "$srcdir" in
+ .) ;;
+ *)
+ if ${ac_aux_dir}/mkinstalldirs $1;
+ then :;
+ else
+ AC_MSG_ERROR([can not create `pwd`/$1])
+ fi
+ ;;
+ 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
+changequote(, )dnl
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+changequote([, ])dnl
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+])dnl
+])
+
+dnl
+dnl _AC_DOTS(PATH)
+dnl
+AC_DEFUN(_AC_DOTS,[
+# A "../" for each directory in $1.
+ ac_dots=`echo $1 | \
+ sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
+])
+
+dnl
+dnl _RTEMS_ADJUST_SRCDIR(REVAR,CONFIG_DIR[,TARGET_SUBDIR])
+dnl
+AC_DEFUN(_RTEMS_ADJUST_SRCDIR,[
+ _AC_DOTS(ifelse([$3], ,[$2],[$3/$2]))
+
+ case "$srcdir" in
+ .) # No --srcdir option. We are building in place.
+ $1=$srcdir ;;
+ /*) # Absolute path.
+ $1=$srcdir/$2 ;;
+ *) # Relative path.
+ $1=$ac_dots$srcdir/$2 ;;
+ esac
+])
+
+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
+])
+
+AC_DEFUN(RTEMS_TARGET_CONFIG_PREPARE,[
+# Record target_configdirs and the configure arguments in Makefile.
+targargs=`echo "${ac_configure_args}" | \
+ sed -e 's/--no[[^ ]]*//' \
+ -e 's/--cache[[a-z-]]*=[[^ ]]*//' \
+ -e 's/--ho[[a-z-]]*=[[^ ]]*//' \
+ -e 's/--bu[[a-z-]]*=[[^ ]]*//' \
+ -e 's/--ta[[a-z-]]*=[[^ ]]*//'`;
+
+targargs="--host=${target_alias} --build=${build} ${targargs}"
+AC_SUBST(targargs)
+])
+
+AC_DEFUN(RTEMS_TARGET_CONFIG_SUBDIRS,[
+#
+# TARGET_CONFIG_SUBDIRS
+#
+if test "$no_recursion" != yes; then
+ if test $target != $build; then
+ # Remove --srcdir arguments so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ for ac_arg in $targargs; do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case "$ac_arg" in
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+ esac
+ done
+
+ test -n "$target_configdirs" && test -d $target_subdir || mkdir $target_subdir
+
+ for ac_config_dir in $target_configdirs; do
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ if test ! -d $srcdir/$ac_config_dir; then
+ continue
+ fi
+
+ _RTEMS_PUSH_BUILDDIR([$target_subdir/$ac_config_dir])
+
+ _RTEMS_SUB_SRCDIR([$ac_config_dir],[$target_subdir])
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+
+ # Make the cache file name correct relative to the subdirectory.
+ ac_sub_cache_file=$cache_file
+ _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.
+ CC=${CC_FOR_TARGET}; export CC;
+ 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 \
+ --exec-prefix="\${prefix}/$target_subdir"
+ then :
+ else
+ AC_MSG_ERROR([$ac_sub_configure failed for $ac_config_dir])
+ fi
+ fi
+
+ _RTEMS_POP_BUILDDIR
+ done
+ fi
+fi
+])
+
+AC_DEFUN(RTEMS_HOST_CONFIG_PREPARE,[
+# Record host_configdirs and the configure arguments in Makefile.
+hostargs=`echo "${ac_configure_args}" | \
+ sed -e 's/--no[[^ ]]*//' \
+ -e 's/--cache[[a-z-]]*=[[^ ]]*//' \
+ -e 's/--ho[[a-z-]]*=[[^ ]]*//' \
+ -e 's/--bu[[a-z-]]*=[[^ ]]*//' \
+ -e 's/--ta[[a-z-]]*=[[^ ]]*//'`;
+
+hostargs="--host=${host_alias} --build=${build} --target=${target_alias} ${hostargs}"
+AC_SUBST(hostargs)
+])
+
+AC_DEFUN(RTEMS_HOST_CONFIG_SUBDIRS,[
+#
+# HOST_CONFIG_SUBDIRS
+#
+if test "$no_recursion" != yes; then
+
+ if test $build != $host; then
+ # Remove --srcdir arguments so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ for ac_arg in $hostargs; do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case "$ac_arg" in
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+ esac
+ done
+
+ test -n "$host_configdirs" && test -d $host_subdir || mkdir $host_subdir
+
+ for ac_config_dir in $host_configdirs; do
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ if test ! -d $srcdir/$ac_config_dir; then
+ continue
+ fi
+
+ _RTEMS_PUSH_BUILDDIR([$host_subdir/$ac_config_dir])
+
+ _RTEMS_SUB_SRCDIR([$ac_config_dir],[$host_subdir])
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+
+ # Make the cache file name correct relative to the subdirectory.
+ ac_sub_cache_file=$cache_file
+ _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"
+ CC=${CC_FOR_HOST}; export CC;
+ # 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=$host_subdir \
+ --cache-file=$ac_sub_cache_file
+ then :
+ else
+ AC_MSG_ERROR([$ac_sub_configure failed for $ac_config_dir])
+ fi
+ fi
+
+ _RTEMS_POP_BUILDDIR
+ done
+ fi
+fi
+])
diff --git a/aclocal/target.m4 b/aclocal/target.m4
index 9c84490880..d72122d4d0 100644
--- a/aclocal/target.m4
+++ b/aclocal/target.m4
@@ -53,54 +53,14 @@ if test "$no_recursion" != yes; then
continue
fi
- echo configuring in $ac_config_dir
+ _RTEMS_PUSH_BUILDDIR([$ac_config_dir])
- case "$srcdir" in
-## .) ;;
- *)
- if test -d $ac_config_dir || mkdir $ac_config_dir; then :;
- else
- AC_MSG_ERROR(can not create `pwd`/$ac_config_dir)
- fi
- ;;
- esac
-
- ac_popdir=`pwd`
- cd $ac_config_dir
-
-changequote(, )dnl
- # A "../" for each directory in /$ac_config_dir.
- ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
-changequote([, ])dnl
-
- case "$srcdir" in
-## .) # No --srcdir option. We are building in place.
-## ac_sub_srcdir=$srcdir ;;
- /*) # Absolute path.
- ac_sub_srcdir=$srcdir/$ac_config_dir ;;
- *) # Relative path.
- ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
- esac
-
- # 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 $ac_config_dir)
- ac_sub_configure=
- fi
+ _RTEMS_SUB_SRCDIR([$ac_config_dir])
# The recursion is here.
if test -n "$ac_sub_configure"; then
ac_sub_cache_file=./config.cache
-ifdef([AC_PROVIDE_AC_PROG_INSTALL],
- [ case "$ac_given_INSTALL" in
-changequote(, )dnl
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
-changequote([, ])dnl
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- esac
-])dnl
+ _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.
@@ -111,11 +71,11 @@ changequote([, ])dnl
--cache-file=$ac_sub_cache_file
then :
else
- AC_MSG_ERROR($ac_sub_configure failed for $ac_config_dir)
+ AC_MSG_ERROR([$ac_sub_configure failed for $ac_config_dir])
fi
fi
- cd $ac_popdir
+ _RTEMS_POP_BUILDDIR
done
fi
])