summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--aclocal/check-multiprocessing.m419
-rw-r--r--aclocal/multilib.m459
3 files changed, 73 insertions, 7 deletions
diff --git a/Makefile.am b/Makefile.am
index 83561efa43..9d03bf5f6d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,7 +29,7 @@ ACLOCAL_FILES += aclocal/ar-s.m4 aclocal/bsp-alias.m4 \
aclocal/i386-gas-code16.m4 aclocal/path-ksh.m4 aclocal/path-perl.m4 \
aclocal/prog-cc.m4 aclocal/prog-cxx.m4 aclocal/project-root.m4 \
aclocal/rtems-top.m4 aclocal/sysv-ipc.m4 aclocal/target.m4 \
- aclocal/tool-paths.m4 aclocal/tool-prefix.m4
+ aclocal/tool-paths.m4 aclocal/tool-prefix.m4 aclocal/multilib.m4
noinst_SCRIPTS = bootstrap
diff --git a/aclocal/check-multiprocessing.m4 b/aclocal/check-multiprocessing.m4
index 7ee1b6d7d6..e2bbe80b48 100644
--- a/aclocal/check-multiprocessing.m4
+++ b/aclocal/check-multiprocessing.m4
@@ -4,6 +4,7 @@ dnl
AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
[dnl
+AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
AC_REQUIRE([RTEMS_TOP])dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
@@ -13,14 +14,20 @@ AC_REQUIRE([RTEMS_BSP_ALIAS])dnl
AC_CACHE_CHECK([whether BSP supports multiprocessing],
rtems_cv_HAS_MP,
[dnl
- if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then
- if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then
- rtems_cv_HAS_MP="yes" ;
+ if test x"$multilib" = x"yes"; then
+ # FIXME: Currently, multilibs and multiprocessing can not be
+ # build simultaneously
+ rtems_cv_HAS_MP="disabled"
+ else
+ if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then
+ if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then
+ rtems_cv_HAS_MP="yes" ;
+ else
+ rtems_cv_HAS_MP="disabled";
+ fi
else
- rtems_cv_HAS_MP="disabled";
+ rtems_cv_HAS_MP="no";
fi
- else
- rtems_cv_HAS_MP="no";
fi])
if test "$rtems_cv_HAS_MP" = "yes"; then
HAS_MP="yes"
diff --git a/aclocal/multilib.m4 b/aclocal/multilib.m4
new file mode 100644
index 0000000000..2c975c8fbd
--- /dev/null
+++ b/aclocal/multilib.m4
@@ -0,0 +1,59 @@
+dnl This provides configure definitions used for multilib support
+
+dnl parts of these macros are derived from newlib-1.8.2's multilib support
+
+AC_DEFUN(RTEMS_ENABLE_MULTILIB,
+[
+AC_ARG_ENABLE(multilib,
+[ --enable-multilib build many library versions (default)],
+[case "${enableval}" in
+ yes) multilib=yes ;;
+ no) multilib=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
+ esac], [multilib=yes])dnl
+
+AM_CONDITIONAL(MULTILIB,test x"${multilib}" = x"yes")
+])
+
+AC_DEFUN(RTEMS_ENABLE_MULTILIB_MASTER,
+[
+AC_REQUIRE([RTEMS_ENABLE_MULTILIB])
+
+dnl We may get other options which we don't document:
+dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
+
+test -z "[$]{with_target_subdir}" && with_target_subdir=.
+
+if test "[$]{srcdir}" = "."; then
+ if test "[$]{with_target_subdir}" != "."; then
+ multilib_basedir="[$]{srcdir}/[$]{with_multisrctop}../ifelse([$2],,,[$2])"
+ else
+ multilib_basedir="[$]{srcdir}/[$]{with_multisrctop}ifelse([$2],,,[$2])"
+ fi
+else
+ multilib_basedir="[$]{srcdir}/ifelse([$2],,,[$2])"
+fi
+AC_SUBST(multilib_basedir)
+
+if test "${multilib}" = "yes"; then
+ multilib_arg="--enable-multilib"
+else
+ multilib_arg=
+fi
+
+AC_OUTPUT_COMMANDS(
+ if test -n "$CONFIG_FILES"; do
+ $ac_file" = ifelse([$1],,Makefile,[$1]) \
+ . ${multilib_basedir}/../config-ml.in
+ fi,
+ srcdir=${srcdir}
+ host=${host}
+ target=${target}
+# with_multisrctop="${with_multisrctop}"
+# with_target_subdir="${with_target_subdir}"
+ with_multisubdir="${with_multisubdir}"
+ ac_configure_args="${multilib_arg} ${ac_configure_args}"
+ CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ multilib_basedir=${multilib_basedir}
+ CC="${CC}")
+])