summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-10-18 13:14:49 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-10-18 13:14:49 +0000
commitaac7fdd28cf1ffbce75e88a1174e75bf5dfa0f30 (patch)
treec738bfae54c1916b7637adb784317dc20e3d32b7
parent2000-10-18 Joel Sherrill <joel@OARcorp.com> (diff)
downloadrtems-aac7fdd28cf1ffbce75e88a1174e75bf5dfa0f30.tar.bz2
2000-09-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* macros: New directory. * macros/bsp-alias.m4: new file. * macros/canonical-host.m4: new file. * macros/canonical-target-name.m4: new file. * macros/canonicalize-tools.m4: new file. * macros/check-bsp-cache.m4: new file. * macros/check-bsps.m4: new file. * macros/check-cpu.m4: new file. * macros/rtems-debug.m4: new file. * macros/check-cxx.m4: new file. * macros/check-itron.m4: new file. * macros/check-multiprocessing.m4: new file. * macros/check-networking.m4: new file. * macros/check-newlib.m4: new file. * macros/check-posix.m4: new file. * macros/check-rdbg.m4: new file. * macros/enable-bare.m4: new file. * macros/enable-cxx.m4: new file. * macros/enable-gcc28.m4: new file. * macros/enable-inlines.m4: new file. * macros/enable-itron.m4: new file. * macros/enable-libcdir.m4: new file. * macros/enable-multiprocessing.m4: new file. * macros/enable-networking.m4: new file. * macros/enable-posix.m4: new file. * macros/enable-rdbg.m4: new file. * macros/enable-rtemsbsp.m4: new file. * macros/enable-tests.m4: new file. * macros/gcc-pipe.m4: new file. * macros/gcc-specs.m4: new file. * macros/i386-gas-code16.m4: new file. * macros/path-ksh.m4: new file. * macros/path-perl.m4: new file. * macros/prog-cc.m4: new file. * macros/prog-cxx.m4: new file. * macros/project-root.m4: new file. * macros/rtems-top.m4: new file. * macros/sysv-ipc.m4: new file. * macros/target.m4: new file. * macros/rtems-test-no-pause.m4: new file. * macros/multilib.m4: new file. * macros/tool-paths.m4: new file. * macros/tool-prefix.m4: new file.
-rw-r--r--ChangeLog46
-rw-r--r--macros/bsp-alias.m433
-rw-r--r--macros/canonical-host.m427
-rw-r--r--macros/canonical-target-name.m440
-rw-r--r--macros/canonicalize-tools.m475
-rw-r--r--macros/check-bsp-cache.m417
-rw-r--r--macros/check-bsps.m450
-rw-r--r--macros/check-cpu.m417
-rw-r--r--macros/check-cxx.m426
-rw-r--r--macros/check-itron.m437
-rw-r--r--macros/check-multiprocessing.m446
-rw-r--r--macros/check-networking.m429
-rw-r--r--macros/check-newlib.m436
-rw-r--r--macros/check-posix.m437
-rw-r--r--macros/check-rdbg.m424
-rw-r--r--macros/enable-bare.m421
-rw-r--r--macros/enable-cxx.m413
-rw-r--r--macros/enable-gcc28.m412
-rw-r--r--macros/enable-hwapi.m415
-rw-r--r--macros/enable-inlines.m422
-rw-r--r--macros/enable-itron.m435
-rw-r--r--macros/enable-libcdir.m410
-rw-r--r--macros/enable-multiprocessing.m413
-rw-r--r--macros/enable-networking.m415
-rw-r--r--macros/enable-posix.m435
-rw-r--r--macros/enable-rdbg.m415
-rw-r--r--macros/enable-rtemsbsp.m458
-rw-r--r--macros/enable-tests.m415
-rw-r--r--macros/gcc-pipe.m421
-rw-r--r--macros/gcc-specs.m420
-rw-r--r--macros/i386-gas-code16.m428
-rw-r--r--macros/multilib.m459
-rw-r--r--macros/path-ksh.m414
-rw-r--r--macros/path-perl.m412
-rw-r--r--macros/prog-cc.m450
-rw-r--r--macros/prog-cxx.m432
-rw-r--r--macros/project-root.m447
-rw-r--r--macros/rtems-debug.m421
-rw-r--r--macros/rtems-test-no-pause.m418
-rw-r--r--macros/rtems-top.m444
-rw-r--r--macros/sysv-ipc.m4133
-rw-r--r--macros/target.m4127
-rw-r--r--macros/tool-paths.m423
-rw-r--r--macros/tool-prefix.m422
44 files changed, 1490 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2fa643b4ee..5272113846 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,49 @@
+2000-09-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * macros: New directory.
+ * macros/bsp-alias.m4: new file.
+ * macros/canonical-host.m4: new file.
+ * macros/canonical-target-name.m4: new file.
+ * macros/canonicalize-tools.m4: new file.
+ * macros/check-bsp-cache.m4: new file.
+ * macros/check-bsps.m4: new file.
+ * macros/check-cpu.m4: new file.
+ * macros/rtems-debug.m4: new file.
+ * macros/check-cxx.m4: new file.
+ * macros/check-itron.m4: new file.
+ * macros/check-multiprocessing.m4: new file.
+ * macros/check-networking.m4: new file.
+ * macros/check-newlib.m4: new file.
+ * macros/check-posix.m4: new file.
+ * macros/check-rdbg.m4: new file.
+ * macros/enable-bare.m4: new file.
+ * macros/enable-cxx.m4: new file.
+ * macros/enable-gcc28.m4: new file.
+ * macros/enable-inlines.m4: new file.
+ * macros/enable-itron.m4: new file.
+ * macros/enable-libcdir.m4: new file.
+ * macros/enable-multiprocessing.m4: new file.
+ * macros/enable-networking.m4: new file.
+ * macros/enable-posix.m4: new file.
+ * macros/enable-rdbg.m4: new file.
+ * macros/enable-rtemsbsp.m4: new file.
+ * macros/enable-tests.m4: new file.
+ * macros/gcc-pipe.m4: new file.
+ * macros/gcc-specs.m4: new file.
+ * macros/i386-gas-code16.m4: new file.
+ * macros/path-ksh.m4: new file.
+ * macros/path-perl.m4: new file.
+ * macros/prog-cc.m4: new file.
+ * macros/prog-cxx.m4: new file.
+ * macros/project-root.m4: new file.
+ * macros/rtems-top.m4: new file.
+ * macros/sysv-ipc.m4: new file.
+ * macros/target.m4: new file.
+ * macros/rtems-test-no-pause.m4: new file.
+ * macros/multilib.m4: new file.
+ * macros/tool-paths.m4: new file.
+ * macros/tool-prefix.m4: new file.
+
2000-09-14 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Referenceed aclocal/enable-hwapi.m4 that was removed.
diff --git a/macros/bsp-alias.m4 b/macros/bsp-alias.m4
new file mode 100644
index 0000000000..cbf86363c2
--- /dev/null
+++ b/macros/bsp-alias.m4
@@ -0,0 +1,33 @@
+dnl
+dnl $Id$
+dnl
+
+dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
+dnl Internal subroutine to RTEMS_BSP_ALIAS
+AC_DEFUN(_RTEMS_BSP_ALIAS,
+[# account for "aliased" bsps which share source code
+ case $1 in
+ simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
+ c3xsim) $2=c4xsim ;; # TI C3x Simulator in gdb
+ mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
+ mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
+ mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
+ gen68360_040) $2=gen68360 ;; # m68k - 68360 in companion mode
+ p4600) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4600
+ p4650) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4650
+ mbx8*) $2=mbx8xx ;; # MBX821/MBX860 board
+ pc486) $2=pc386 ;; # i386 - PC with i486DX
+ pc586) $2=pc386 ;; # i386 - PC with Pentium
+ pc686) $2=pc386 ;; # i386 - PC with PentiumPro
+ pck6) $2=pc386 ;; # i386 - PC with K6
+ bare*) $2=bare ;; # EXP: bare-aliases
+ *) $2=$1;;
+ esac]
+)
+
+dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
+dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILY
+AC_DEFUN(RTEMS_BSP_ALIAS,
+[_RTEMS_BSP_ALIAS(ifelse([$1],,[$RTEMS_BSP],[$1]),
+ ifelse([$2],,[RTEMS_BSP_FAMILY],[$2]))]
+)
diff --git a/macros/canonical-host.m4 b/macros/canonical-host.m4
new file mode 100644
index 0000000000..99b5fb07da
--- /dev/null
+++ b/macros/canonical-host.m4
@@ -0,0 +1,27 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_CANONICAL_HOST,
+[dnl
+AC_REQUIRE([AC_CANONICAL_HOST])
+RTEMS_HOST=$host_os
+changequote(,)dnl
+case "${target}" in
+ # hpux unix port should go here
+ i[34567]86-*linux*) # unix "simulator" port
+ RTEMS_HOST=Linux
+ ;;
+ i[34567]86-*freebsd*) # unix "simulator" port
+ RTEMS_HOST=FreeBSD
+ ;;
+ i[34567]86-pc-cygwin*) # Cygwin is just enough unix like :)
+ RTEMS_HOST=Cygwin
+ ;;
+ sparc-sun-solaris*) # unix "simulator" port
+ RTEMS_HOST=Solaris
+ ;;
+ *)
+ ;;
+esac
+changequote([,])dnl
+AC_SUBST(RTEMS_HOST)
+])dnl
diff --git a/macros/canonical-target-name.m4 b/macros/canonical-target-name.m4
new file mode 100644
index 0000000000..53d1a2962c
--- /dev/null
+++ b/macros/canonical-target-name.m4
@@ -0,0 +1,40 @@
+dnl
+dnl $Id$
+dnl
+
+dnl canonicalize target cpu
+dnl NOTE: Most rtems targets do not fullfil autoconf's
+dnl target naming conventions "processor-vendor-os"
+dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
+dnl and we have to fix it for rtems ourselves
+
+AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
+[
+AC_CANONICAL_SYSTEM
+AC_MSG_CHECKING(rtems target cpu)
+changequote(,)dnl
+case "${target}" in
+ # hpux unix port should go here
+ i[34567]86-*linux*) # unix "simulator" port
+ RTEMS_CPU=unix
+ ;;
+ i[34567]86-*freebsd*) # unix "simulator" port
+ RTEMS_CPU=unix
+ ;;
+ i[34567]86-pc-cygwin*) # Cygwin is just enough unix like :)
+ RTEMS_CPU=unix
+ ;;
+ no_cpu-*rtems*)
+ RTEMS_CPU=no_cpu
+ ;;
+ sparc-sun-solaris*) # unix "simulator" port
+ RTEMS_CPU=unix
+ ;;
+ *)
+ RTEMS_CPU=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
+ ;;
+esac
+changequote([,])dnl
+AC_SUBST(RTEMS_CPU)
+AC_MSG_RESULT($RTEMS_CPU)
+])
diff --git a/macros/canonicalize-tools.m4 b/macros/canonicalize-tools.m4
new file mode 100644
index 0000000000..811825b538
--- /dev/null
+++ b/macros/canonicalize-tools.m4
@@ -0,0 +1,75 @@
+dnl
+dnl $Id$
+dnl
+dnl Set target tools
+dnl
+
+AC_DEFUN(RTEMS_HOST_AR,
+[AC_CHECK_TOOL(AR,ar,no)])
+
+AC_DEFUN(RTEMS_HOST_RANLIB,
+[AC_CHECK_TOOL(RANLIB,ranlib,:)])
+
+AC_DEFUN(RTEMS_GCC_PRINT,
+[
+ $1=`$CC --print-prog-name=$2`
+])
+
+AC_DEFUN(RTEMS_PATH_TOOL,
+[
+AC_MSG_CHECKING([target's $2])
+AC_CACHE_VAL(ac_cv_path_$1,:)
+AC_MSG_RESULT([$ac_cv_path_$1])
+
+if test -n "$ac_cv_path_$1"; then
+ dnl retrieve the value from the cache
+ $1=$ac_cv_path_$1
+else
+ dnl the cache was not set
+ if test -z "[$]$1" ; then
+ if test "$ac_cv_prog_gcc" = "yes"; then
+ # We are using gcc, ask it about its tool
+ # NOTE: Necessary if gcc was configured to use the target's
+ # native tools or uses prefixes for gnutools (e.g. gas instead of as)
+ RTEMS_GCC_PRINT($1,$2)
+ fi
+ else
+ # The user set an environment variable.
+ # Check whether it is an absolute path, otherwise AC_PATH_PROG
+ # will override the environment variable, which isn't what the user
+ # intends
+ AC_MSG_CHECKING([whether environment variable $1 is an absolute path])
+ case "[$]$1" in
+ /*) # valid
+ AC_MSG_RESULT("yes")
+ ;;
+ *) # invalid for AC_PATH_PROG
+ AC_MSG_RESULT("no")
+ AC_MSG_ERROR([***]
+ [Environment variable $1 should either]
+ [be unset (preferred) or contain an absolute path])
+ ;;
+ esac
+ fi
+
+ AC_PATH_PROG($1,"$program_prefix"$2,$3)
+fi
+])
+
+AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
+[AC_REQUIRE([RTEMS_PROG_CC])dnl
+
+dnl FIXME: What shall be done if these tools are not available?
+ RTEMS_HOST_AR(AR,ar,no)
+ RTEMS_PATH_TOOL(AS,as,no)
+ RTEMS_PATH_TOOL(LD,ld,no)
+ RTEMS_PATH_TOOL(NM,nm,no)
+
+dnl special treatment of ranlib
+ RTEMS_HOST_RANLIB
+
+dnl NOTE: These may not be available if not using gnutools
+ AC_CHECK_TOOL(OBJCOPY,objcopy,no)
+ AC_CHECK_TOOL(SIZE,size,no)
+ AC_CHECK_TOOL(STRIP,strip,:)
+])
diff --git a/macros/check-bsp-cache.m4 b/macros/check-bsp-cache.m4
new file mode 100644
index 0000000000..1eb077026b
--- /dev/null
+++ b/macros/check-bsp-cache.m4
@@ -0,0 +1,17 @@
+dnl $Id$
+
+dnl RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
+AC_DEFUN(RTEMS_CHECK_BSP_CACHE,
+[
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
+AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl set RTEMS_BSP
+AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
+AC_CACHE_CHECK("for RTEMS_CPU_MODEL", rtems_cv_RTEMS_CPU_MODEL,
+. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache)
+RTEMS_CPU_MODEL=$rtems_cv_RTEMS_CPU_MODEL
+AC_SUBST(RTEMS_CPU_MODEL)
+AC_CACHE_CHECK("for RTEMS_BSP_FAMILY", rtems_cv_RTEMS_BSP_FAMILY,
+. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache)
+RTEMS_BSP_FAMILY=$rtems_cv_RTEMS_BSP_FAMILY
+AC_SUBST(RTEMS_BSP_FAMILY)
+])dnl
diff --git a/macros/check-bsps.m4 b/macros/check-bsps.m4
new file mode 100644
index 0000000000..36d8164e29
--- /dev/null
+++ b/macros/check-bsps.m4
@@ -0,0 +1,50 @@
+dnl $Id$
+
+dnl Report all available bsps for a target,
+dnl check if a bsp-subdirectory is present for all bsps found
+dnl
+dnl RTEMS_CHECK_BSPS(bsp_list)
+AC_DEFUN(RTEMS_CHECK_BSPS,
+[
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
+AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
+AC_MSG_CHECKING([for bsps])
+ files=`ls $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU`
+ for file in $files; do
+ case $file in
+ ChangeLog*);;
+ shared*);;
+ Makefile*);;
+ READ*);;
+ CVS*);;
+ pxfl*);;
+ ac*);;
+ config*);;
+ # Now account for BSPs with build variants
+ c4xsim) rtems_bsp="$rtems_bsp c4xsim c3xsim";;
+ gen68360) rtems_bsp="$rtems_bsp gen68360 gen68360_040";;
+ p4000) rtems_bsp="$rtems_bsp p4600 p4650";;
+ mvme162) rtems_bsp="$rtems_bsp mvme162 mvme162lx";;
+ mbx8xx) rtems_bsp="$rtems_bsp mbx821_001 mbx860_002";;
+ motorola_powerpc) rtems_bsp="$rtems_bsp mvme2307 mcp750";;
+ pc386) rtems_bsp="$rtems_bsp pc386 pc486 pc586 pc686 pck6";;
+ sim68000) rtems_bsp="$rtems_bsp sim68000 simcpu32";;
+ *) $1="[$]$1 $file";;
+ esac;
+ done
+dnl ;;
+dnl esac
+AC_MSG_RESULT([[$]$1 .. done])
+])dnl
+
+AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,
+[dnl
+AC_REQUIRE([RTEMS_TOP])
+
+AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
+if test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"; then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_ERROR([no])
+fi
+])dnl
diff --git a/macros/check-cpu.m4 b/macros/check-cpu.m4
new file mode 100644
index 0000000000..b0b01117d1
--- /dev/null
+++ b/macros/check-cpu.m4
@@ -0,0 +1,17 @@
+dnl $Id$
+
+dnl check if RTEMS support a cpu
+AC_DEFUN(RTEMS_CHECK_CPU,
+[dnl
+AC_REQUIRE([RTEMS_TOP])
+AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
+
+# Is this a supported CPU?
+AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
+if test -d "$srcdir/$RTEMS_TOPdir/c/src/exec/score/cpu/$RTEMS_CPU"; then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_ERROR(no)
+fi
+])dnl
+
diff --git a/macros/check-cxx.m4 b/macros/check-cxx.m4
new file mode 100644
index 0000000000..aa51596de5
--- /dev/null
+++ b/macros/check-cxx.m4
@@ -0,0 +1,26 @@
+dnl $Id$
+dnl
+AC_DEFUN(RTEMS_CHECK_CXX,
+[dnl
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl
+AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
+AC_REQUIRE([RTEMS_PROG_CXX_FOR_TARGET])dnl
+AC_CACHE_CHECK([whether to build rtems++],
+ rtems_cv_HAS_CPLUSPLUS,
+ [ if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
+ if test -n "$CXX"; then
+ rtems_cv_HAS_CPLUSPLUS="yes"
+ else
+ rtems_cv_HAS_CPLUSPLUS="no"
+ fi
+ else
+ rtems_cv_HAS_CPLUSPLUS="no"
+ fi])
+HAS_CPLUSPLUS="$rtems_cv_HAS_CPLUSPLUS";
+AC_SUBST(HAS_CPLUSPLUS)dnl
+
+if test "$HAS_CPLUSPLUS" = "yes"; then
+CPLUS_LD_LIBS='$(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA)'
+fi
+AC_SUBST(CPLUS_LD_LIBS)
+])
diff --git a/macros/check-itron.m4 b/macros/check-itron.m4
new file mode 100644
index 0000000000..4c4dbf0042
--- /dev/null
+++ b/macros/check-itron.m4
@@ -0,0 +1,37 @@
+dnl $Id$
+dnl
+AC_DEFUN(RTEMS_CHECK_ITRON_API,
+[dnl
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl
+AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
+
+AC_CACHE_CHECK([whether CPU supports libitron],
+ rtems_cv_HAS_ITRON_API,
+ [dnl
+ case "$RTEMS_CPU" in
+ unix*)
+ rtems_cv_HAS_ITRON_API="no"
+ ;;
+ *)
+ if test "${RTEMS_HAS_ITRON_API}" = "yes"; then
+ rtems_cv_HAS_ITRON_API="yes";
+ else
+ rtems_cv_HAS_ITRON_API="disabled";
+ fi
+ ;;
+ esac])
+if test "$rtems_cv_HAS_ITRON_API" = "yes"; then
+ HAS_ITRON_API="yes";
+else
+ HAS_ITRON_API="no";
+fi
+AC_SUBST(HAS_ITRON_API)dnl
+])
+
+AC_DEFUN(RTEMS_DEFINE_ITRON_API,
+[AC_REQUIRE([RTEMS_CHECK_ITRON_API])dnl
+if test x"${HAS_ITRON_API}" = x"yes";
+then
+ AC_DEFINE_UNQUOTED(RTEMS_ITRON_API,1,[if itron api is supported])
+fi
+])
diff --git a/macros/check-multiprocessing.m4 b/macros/check-multiprocessing.m4
new file mode 100644
index 0000000000..6e99a38afa
--- /dev/null
+++ b/macros/check-multiprocessing.m4
@@ -0,0 +1,46 @@
+dnl
+dnl $Id$
+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
+AC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnl
+AC_REQUIRE([RTEMS_BSP_ALIAS])dnl
+
+AC_CACHE_CHECK([whether BSP supports multiprocessing],
+ rtems_cv_HAS_MP,
+ [dnl
+ 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="no";
+ fi
+ fi])
+if test "$rtems_cv_HAS_MP" = "yes"; then
+HAS_MP="yes"
+else
+HAS_MP="no"
+fi
+AC_SUBST(HAS_MP)
+])
+
+AC_DEFUN(RTEMS_DEFINE_MULTIPROCESSING,
+[AC_REQUIRE([RTEMS_CHECK_MULTIPROCESSING])dnl
+if test x"${HAS_MP}" = x"yes";
+then
+ AC_DEFINE_UNQUOTED(RTEMS_MULTIPROCESSING,1,[if multiprocessing is supported])
+fi
+])
diff --git a/macros/check-networking.m4 b/macros/check-networking.m4
new file mode 100644
index 0000000000..db3a0c60d3
--- /dev/null
+++ b/macros/check-networking.m4
@@ -0,0 +1,29 @@
+dnl $Id$
+dnl
+AC_DEFUN(RTEMS_CHECK_NETWORKING,
+[dnl
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl
+AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
+
+AC_CACHE_CHECK([whether BSP supports networking],
+ rtems_cv_HAS_NETWORKING,
+ [dnl
+ case "$RTEMS_CPU" in
+ unix*)
+ rtems_cv_HAS_NETWORKING="no"
+ ;;
+ *)
+ if test "${RTEMS_HAS_NETWORKING}" = "yes"; then
+ rtems_cv_HAS_NETWORKING="yes";
+ else
+ rtems_cv_HAS_NETWORKING="disabled";
+ fi
+ ;;
+ esac])
+if test "$rtems_cv_HAS_NETWORKING" = "yes"; then
+ HAS_NETWORKING="yes";
+else
+ HAS_NETWORKING="no";
+fi
+AC_SUBST(HAS_NETWORKING)dnl
+])
diff --git a/macros/check-newlib.m4 b/macros/check-newlib.m4
new file mode 100644
index 0000000000..1984001dc8
--- /dev/null
+++ b/macros/check-newlib.m4
@@ -0,0 +1,36 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_CHECK_NEWLIB,
+[dnl
+AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
+AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
+AC_CACHE_CHECK([for newlib],
+ rtems_cv_use_newlib,
+ [
+ rtems_save_CC=$CC
+
+dnl some versions of newlib provide not_required_by_rtems
+ AC_TRY_LINK(
+ [extern void not_required_by_rtems() ;],
+ [not_required_by_rtems()],
+ rtems_cv_use_newlib="yes")
+
+dnl some versions of newlib provide rtems_provides_crt0()
+ if test -z "$rtems_cv_use_newlib"; then
+ AC_TRY_LINK(
+ [extern void rtems_provides_crt0() ;],
+ [rtems_provides_crt0()],
+ rtems_cv_use_newlib="yes",
+ rtems_cv_use_newlib="no")
+ fi
+ CC=$rtems_save_CC])
+RTEMS_USE_NEWLIB="$rtems_cv_use_newlib"
+AC_SUBST(RTEMS_USE_NEWLIB)
+
+if test x"${RTEMS_USE_NEWLIB}" = x"yes";
+then
+ AC_DEFINE_UNQUOTED(RTEMS_NEWLIB,1,[if using newlib])
+ AC_DEFINE_UNQUOTED(MALLOC_PROVIDED,1,[if malloc is provided])
+fi
+])
+
diff --git a/macros/check-posix.m4 b/macros/check-posix.m4
new file mode 100644
index 0000000000..b98f382165
--- /dev/null
+++ b/macros/check-posix.m4
@@ -0,0 +1,37 @@
+dnl $Id$
+dnl
+AC_DEFUN(RTEMS_CHECK_POSIX_API,
+[dnl
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl
+AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
+
+AC_CACHE_CHECK([whether CPU supports libposix],
+ rtems_cv_HAS_POSIX_API,
+ [dnl
+ case "$RTEMS_CPU" in
+ unix*)
+ rtems_cv_HAS_POSIX_API="no"
+ ;;
+ *)
+ if test "${RTEMS_HAS_POSIX_API}" = "yes"; then
+ rtems_cv_HAS_POSIX_API="yes";
+ else
+ rtems_cv_HAS_POSIX_API="disabled";
+ fi
+ ;;
+ esac])
+if test "$rtems_cv_HAS_POSIX_API" = "yes"; then
+ HAS_POSIX_API="yes";
+else
+ HAS_POSIX_API="no";
+fi
+AC_SUBST(HAS_POSIX_API)dnl
+])
+
+AC_DEFUN(RTEMS_DEFINE_POSIX_API,
+[AC_REQUIRE([RTEMS_CHECK_POSIX_API])dnl
+if test x"${HAS_POSIX_API}" = x"yes";
+then
+ AC_DEFINE_UNQUOTED(RTEMS_POSIX_API,1,[if posix api is supported])
+fi
+])
diff --git a/macros/check-rdbg.m4 b/macros/check-rdbg.m4
new file mode 100644
index 0000000000..2ea5919c36
--- /dev/null
+++ b/macros/check-rdbg.m4
@@ -0,0 +1,24 @@
+dnl $Id$
+dnl
+AC_DEFUN(RTEMS_CHECK_RDBG,
+[dnl
+AC_REQUIRE([RTEMS_TOP])dnl
+AC_REQUIRE([RTEMS_CHECK_CPU])dnl
+AC_REQUIRE([RTEMS_CHECK_NETWORKING])dnl
+AC_REQUIRE([RTEMS_ENABLE_RDBG])dnl
+AC_CACHE_CHECK([whether BSP supports librdbg],
+ rtems_cv_HAS_RDBG,
+ [
+ if test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/${$1}";
+ then
+ rtems_cv_HAS_RDBG="yes" ;
+ elif test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/any";
+ then
+ rtems_cv_HAS_RDBG="yes" ;
+ else
+ rtems_cv_HAS_RDBG="no";
+ fi
+ ])
+HAS_RDBG="$rtems_cv_HAS_RDBG"
+AC_SUBST(HAS_RDBG)
+])
diff --git a/macros/enable-bare.m4 b/macros/enable-bare.m4
new file mode 100644
index 0000000000..fbe2e8de6d
--- /dev/null
+++ b/macros/enable-bare.m4
@@ -0,0 +1,21 @@
+AC_DEFUN(RTEMS_ENABLE_BARE,
+[
+AC_ARG_ENABLE(bare-cpu-cflags,
+[ --enable-bare-cpu-cflags specify a particular cpu cflag]
+[ (bare bsp specific)],
+[case "${enableval}" in
+ no) BARE_CPU_CFLAGS="" ;;
+ *) BARE_CPU_CFLAGS="${enableval}" ;;
+esac],
+[BARE_CPU_CFLAGS=""])
+
+AC_ARG_ENABLE(bare-cpu-model,
+[ --enable-bare-cpu-model specify a particular cpu model]
+[ (bare bsp specific)],
+[case "${enableval}" in
+ no) BARE_CPU_MODEL="" ;;
+ *) BARE_CPU_MODEL="${enableval}" ;;
+esac],
+[BARE_CPU_MODEL=""])
+])
+
diff --git a/macros/enable-cxx.m4 b/macros/enable-cxx.m4
new file mode 100644
index 0000000000..68cad702a1
--- /dev/null
+++ b/macros/enable-cxx.m4
@@ -0,0 +1,13 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_CXX,
+[
+AC_ARG_ENABLE(cxx,
+[ --enable-cxx enable C++ support,]
+[ and build the rtems++ library],
+[case "${enableval}" in
+ yes) RTEMS_HAS_CPLUSPLUS=yes ;;
+ no) RTEMS_HAS_CPLUSPLUS=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;;
+esac], [RTEMS_HAS_CPLUSPLUS=no])
+])
diff --git a/macros/enable-gcc28.m4 b/macros/enable-gcc28.m4
new file mode 100644
index 0000000000..5f2496f53d
--- /dev/null
+++ b/macros/enable-gcc28.m4
@@ -0,0 +1,12 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_GCC28,
+[
+AC_ARG_ENABLE(gcc28,
+[ --enable-gcc28 enable use of gcc 2.8.x features],
+[case "${enableval}" in
+ yes) RTEMS_USE_GCC272=no ;;
+ no) RTEMS_USE_GCC272=yes ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for gcc-28 option) ;;
+esac],[RTEMS_USE_GCC272=no])
+])
diff --git a/macros/enable-hwapi.m4 b/macros/enable-hwapi.m4
new file mode 100644
index 0000000000..ce6ef3f3a1
--- /dev/null
+++ b/macros/enable-hwapi.m4
@@ -0,0 +1,15 @@
+dnl $Id$
+dnl
+dnl FIXME: this needs to be reworked
+
+AC_DEFUN(RTEMS_ENABLE_HWAPI,
+[dnl
+AC_ARG_ENABLE(hwapi, \
+[ --enable-hwapi enable hardware API library],
+[case "${enableval}" in
+ yes) RTEMS_HAS_HWAPI=yes ;;
+ no) RTEMS_HAS_HWAPI=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for hwapi option) ;;
+ esac],[RTEMS_HAS_HWAPI=no])
+AC_SUBST(RTEMS_HAS_HWAPI)dnl
+])dnl
diff --git a/macros/enable-inlines.m4 b/macros/enable-inlines.m4
new file mode 100644
index 0000000000..259697f825
--- /dev/null
+++ b/macros/enable-inlines.m4
@@ -0,0 +1,22 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_INLINES,
+[AC_ARG_ENABLE(rtems-inlines,
+[ --enable-rtems-inlines enable RTEMS inline functions]
+[ (default:enabled, disable to use macros)],
+[case "${enableval}" in
+ yes) RTEMS_USE_MACROS=no ;;
+ no) RTEMS_USE_MACROS=yes ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for disable-rtems-inlines option) ;;
+esac],[RTEMS_USE_MACROS=no])
+AC_SUBST(RTEMS_USE_MACROS)dnl
+
+if test x"${RTEMS_USE_MACROS}" = x"yes";
+then
+ AC_DEFINE_UNQUOTED(USE_MACROS,1,[if using macros])
+else
+ AC_DEFINE_UNQUOTED(USE_INLINES,1,[if using inlines])
+fi
+
+
+])
diff --git a/macros/enable-itron.m4 b/macros/enable-itron.m4
new file mode 100644
index 0000000000..bb622079e9
--- /dev/null
+++ b/macros/enable-itron.m4
@@ -0,0 +1,35 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_ITRON,
+[
+## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
+
+AC_ARG_ENABLE(itron,
+[ --enable-itron enable itron interface],
+[case "${enableval}" in
+ yes) RTEMS_HAS_ITRON_API=yes ;;
+ no) RTEMS_HAS_ITRON_API=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-itron option) ;;
+esac],[RTEMS_HAS_ITRON_API=yes])
+
+changequote(,)dnl
+case "${target}" in
+ # hpux unix port should go here
+ i[34567]86-pc-linux*) # unix "simulator" port
+ RTEMS_HAS_ITRON_API=no
+ ;;
+ i[34567]86-*freebsd*) # unix "simulator" port
+ RTEMS_HAS_ITRON_API=no
+ ;;
+ no_cpu-*rtems*)
+ RTEMS_HAS_ITRON_API=no
+ ;;
+ sparc-sun-solaris*) # unix "simulator" port
+ RTEMS_HAS_ITRON_API=no
+ ;;
+ *)
+ ;;
+esac
+changequote([,])dnl
+AC_SUBST(RTEMS_HAS_ITRON_API)
+])
diff --git a/macros/enable-libcdir.m4 b/macros/enable-libcdir.m4
new file mode 100644
index 0000000000..892070522b
--- /dev/null
+++ b/macros/enable-libcdir.m4
@@ -0,0 +1,10 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_LIBCDIR,
+[
+AC_ARG_ENABLE(libcdir,
+[ --enable-libcdir=directory set the directory for the C library],
+[ RTEMS_LIBC_DIR="${enableval}" ; \
+test -d ${enableval} || AC_MSG_ERROR("$enableval is not a directory" ) ] )
+AC_SUBST(RTEMS_LIBC_DIR)dnl
+])
diff --git a/macros/enable-multiprocessing.m4 b/macros/enable-multiprocessing.m4
new file mode 100644
index 0000000000..b04b7ee524
--- /dev/null
+++ b/macros/enable-multiprocessing.m4
@@ -0,0 +1,13 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
+[
+AC_ARG_ENABLE(multiprocessing,
+[ --enable-multiprocessing enable multiprocessing interface],
+[case "${enableval}" in
+ yes) RTEMS_HAS_MULTIPROCESSING=yes ;;
+ no) RTEMS_HAS_MULTIPROCESSING=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
+esac],[RTEMS_HAS_MULTIPROCESSING=no])
+AC_SUBST(RTEMS_HAS_MULTIPROCESSING)dnl
+])
diff --git a/macros/enable-networking.m4 b/macros/enable-networking.m4
new file mode 100644
index 0000000000..958f03030d
--- /dev/null
+++ b/macros/enable-networking.m4
@@ -0,0 +1,15 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_NETWORKING,
+[
+## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
+
+AC_ARG_ENABLE(networking,
+[ --enable-networking enable TCP/IP stack],
+[case "${enableval}" in
+ yes) RTEMS_HAS_NETWORKING=yes ;;
+ no) RTEMS_HAS_NETWORKING=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-networking option) ;;
+esac],[RTEMS_HAS_NETWORKING=yes])
+AC_SUBST(RTEMS_HAS_NETWORKING)dnl
+])
diff --git a/macros/enable-posix.m4 b/macros/enable-posix.m4
new file mode 100644
index 0000000000..bbf2889b63
--- /dev/null
+++ b/macros/enable-posix.m4
@@ -0,0 +1,35 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_POSIX,
+[
+## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
+
+AC_ARG_ENABLE(posix,
+[ --enable-posix enable posix interface],
+[case "${enableval}" in
+ yes) RTEMS_HAS_POSIX_API=yes ;;
+ no) RTEMS_HAS_POSIX_API=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-posix option) ;;
+esac],[RTEMS_HAS_POSIX_API=yes])
+
+changequote(,)dnl
+case "${target}" in
+ # hpux unix port should go here
+ i[34567]86-pc-linux*) # unix "simulator" port
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ i[34567]86-*freebsd*) # unix "simulator" port
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ no_cpu-*rtems*)
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ sparc-sun-solaris*) # unix "simulator" port
+ RTEMS_HAS_POSIX_API=no
+ ;;
+ *)
+ ;;
+esac
+changequote([,])dnl
+AC_SUBST(RTEMS_HAS_POSIX_API)
+])
diff --git a/macros/enable-rdbg.m4 b/macros/enable-rdbg.m4
new file mode 100644
index 0000000000..a10294a06c
--- /dev/null
+++ b/macros/enable-rdbg.m4
@@ -0,0 +1,15 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_RDBG,
+[
+AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
+
+AC_ARG_ENABLE(rdbg,
+[ --enable-rdbg enable remote debugger],
+[case "${enableval}" in
+ yes) RTEMS_HAS_RDBG=yes ;;
+ no) RTEMS_HAS_RDBG=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-rdbg option) ;;
+esac],[RTEMS_HAS_RDBG=no])
+AC_SUBST(RTEMS_HAS_RDBG)dnl
+])
diff --git a/macros/enable-rtemsbsp.m4 b/macros/enable-rtemsbsp.m4
new file mode 100644
index 0000000000..fd31997d3c
--- /dev/null
+++ b/macros/enable-rtemsbsp.m4
@@ -0,0 +1,58 @@
+dnl $Id$
+
+dnl Override the set of BSPs to be built.
+dnl used by the toplevel configure script
+dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
+AC_DEFUN(RTEMS_ENABLE_RTEMSBSP,
+[
+AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])dnl
+AC_ARG_ENABLE(rtemsbsp,
+[ --enable-rtemsbsp=bsp1 bsp2 .. BSPs to include in build],
+[case "${enableval}" in
+ yes|no) AC_MSG_ERROR([missing argument to --enable-rtemsbsp=\"bsp1 bsp2\"]);;
+ *) $1=$enableval;;
+esac],[$1=""])
+])
+
+dnl Pass a single BSP via an environment variable
+dnl used by per BSP configure scripts
+AC_DEFUN(RTEMS_ENV_RTEMSBSP,
+[dnl
+AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
+AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
+AC_BEFORE([$0], [RTEMS_CHECK_CUSTOM_BSP])dnl
+
+AC_MSG_CHECKING([for RTEMS_BSP])
+AC_CACHE_VAL(rtems_cv_RTEMS_BSP,
+[dnl
+ test -n "${RTEMS_BSP}" && rtems_cv_RTEMS_BSP="$RTEMS_BSP";
+])dnl
+if test -z "$rtems_cv_RTEMS_BSP"; then
+ AC_MSG_ERROR([Missing RTEMS_BSP])
+fi
+RTEMS_BSP="$rtems_cv_RTEMS_BSP"
+AC_MSG_RESULT(${RTEMS_BSP})
+AC_SUBST(RTEMS_BSP)
+
+RTEMS_ENABLE_BARE
+AC_SUBST(BARE_CPU_MODEL)
+AC_SUBST(BARE_CPU_CFLAGS)
+
+## RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c/$RTEMS_BSP
+## AC_SUBST(RTEMS_ROOT)
+])
+
+AC_DEFUN(RTEMS_ENV_RTEMSCPU,
+[AC_REQUIRE([RTEMS_ENABLE_MULTILIB])
+
+if test x"$multilib" = x"no"; then
+ RTEMS_ENV_RTEMSBSP
+ RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
+else
+ rtems_cv_RTEMS_BSP="multilib"
+ RTEMS_BSP="$rtems_cv_RTEMS_BSP"
+ AC_SUBST(RTEMS_BSP)
+## RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c
+## AC_SUBST(RTEMS_ROOT)
+fi
+])
diff --git a/macros/enable-tests.m4 b/macros/enable-tests.m4
new file mode 100644
index 0000000000..31419f597a
--- /dev/null
+++ b/macros/enable-tests.m4
@@ -0,0 +1,15 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_TESTS,
+[
+# If the tests are enabled, then find all the test suite Makefiles
+AC_MSG_CHECKING([if the test suites are enabled? ])
+AC_ARG_ENABLE(tests,
+[ --enable-tests enable tests (default:disabled)],
+ [case "${enableval}" in
+ yes) tests_enabled=yes ;;
+ no) tests_enabled=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for tests option) ;;
+ esac], [tests_enabled=no])
+AC_MSG_RESULT([$tests_enabled])
+])
diff --git a/macros/gcc-pipe.m4 b/macros/gcc-pipe.m4
new file mode 100644
index 0000000000..dd3a9581d4
--- /dev/null
+++ b/macros/gcc-pipe.m4
@@ -0,0 +1,21 @@
+dnl
+dnl $Id$
+dnl
+dnl Check whether the target compiler accepts -pipe
+dnl
+
+AC_DEFUN(RTEMS_GCC_PIPE,
+[AC_REQUIRE([RTEMS_PROG_CC])
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_CACHE_CHECK(whether $CC accepts --pipe,rtems_cv_gcc_pipe,
+[
+rtems_cv_gcc_pipe=no
+if test "$ac_cv_prog_gcc" = "yes"; then
+ echo 'void f(){}' >conftest.c
+ if test -z "`${CC} --pipe -c conftest.c 2>&1`";then
+ rtems_cv_gcc_pipe=yes
+ fi
+ rm -f conftest*
+fi
+])
+])
diff --git a/macros/gcc-specs.m4 b/macros/gcc-specs.m4
new file mode 100644
index 0000000000..7d90d24644
--- /dev/null
+++ b/macros/gcc-specs.m4
@@ -0,0 +1,20 @@
+dnl
+dnl $Id$
+dnl
+dnl Check whether the target compiler accepts -specs
+dnl
+
+AC_DEFUN(RTEMS_GCC_SPECS,
+[AC_REQUIRE([RTEMS_PROG_CC])
+AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
+[
+rtems_cv_gcc_specs=no
+if test "$ac_cv_prog_gcc" = "yes"; then
+ touch confspec
+ echo 'void f(){}' >conftest.c
+ if test -z "`${CC} -specs confspec -c conftest.c 2>&1`";then
+ rtems_cv_gcc_specs=yes
+ fi
+fi
+rm -f confspec conftest*
+])])
diff --git a/macros/i386-gas-code16.m4 b/macros/i386-gas-code16.m4
new file mode 100644
index 0000000000..8bfb2a5859
--- /dev/null
+++ b/macros/i386-gas-code16.m4
@@ -0,0 +1,28 @@
+dnl
+dnl $Id$
+dnl
+
+dnl check for i386 gas supporting 16 bit mode
+dnl - binutils 2.9.1.0.7 and higher
+
+AC_DEFUN(RTEMS_I386_GAS_CODE16,
+[ if test "${host_cpu}" = "i386"; then
+ AC_CACHE_CHECK([for 16 bit mode assembler support],
+ rtems_cv_prog_gas_code16,
+ [cat > conftest.s << EOF
+ .code16
+ data32
+ addr32
+ lgdt 0
+EOF
+ if AC_TRY_COMMAND($AS -o conftest.o conftest.s); then
+ rtems_cv_prog_gas_code16=yes
+ else
+ rtems_cv_prog_gas_code16=no
+ fi])
+ RTEMS_GAS_CODE16="$rtems_cv_prog_gas_code16"
+ fi
+ AC_SUBST(RTEMS_GAS_CODE16)
+ AC_DEFINE_UNQUOTED(NEW_GAS,1,[if using 16 bit mode assembler support])
+])
+
diff --git a/macros/multilib.m4 b/macros/multilib.m4
new file mode 100644
index 0000000000..1d11561f0a
--- /dev/null
+++ b/macros/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=no])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}")
+])
diff --git a/macros/path-ksh.m4 b/macros/path-ksh.m4
new file mode 100644
index 0000000000..881dd0c9ec
--- /dev/null
+++ b/macros/path-ksh.m4
@@ -0,0 +1,14 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_PATH_KSH,
+[
+dnl NOTE: prefer bash over ksh over sh
+AC_PATH_PROGS(KSH,bash ksh sh)
+if test -z "$KSH"; then
+dnl NOTE: This cannot happen -- /bin/sh must always exist
+AC_MSG_ERROR(
+[***]
+[ Cannot determine a usable shell bash/ksh/sh]
+[ Please contact your system administrator] );
+fi
+])
diff --git a/macros/path-perl.m4 b/macros/path-perl.m4
new file mode 100644
index 0000000000..e0e7dbb1f0
--- /dev/null
+++ b/macros/path-perl.m4
@@ -0,0 +1,12 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_PATH_PERL,
+[
+AC_PATH_PROG(PERL,perl)
+if test -z "$PERL" ; then
+AC_MSG_WARN(
+[***]
+[ perl was not found]
+[ Note: Some tools will not be built.])
+fi
+])
diff --git a/macros/prog-cc.m4 b/macros/prog-cc.m4
new file mode 100644
index 0000000000..f3cf4a70df
--- /dev/null
+++ b/macros/prog-cc.m4
@@ -0,0 +1,50 @@
+dnl
+dnl $Id$
+dnl
+dnl Check for target gcc
+dnl
+
+AC_DEFUN(RTEMS_PROG_CC,
+[
+AC_BEFORE([$0], [AC_PROG_CPP])dnl
+AC_BEFORE([$0], [AC_PROG_CC])dnl
+AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
+AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
+AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
+AC_REQUIRE([RTEMS_ENABLE_GCC28])dnl
+
+AC_CHECK_TOOL(CC,gcc)
+AC_PROG_CC
+
+AM_CONDITIONAL(RTEMS_USE_GCC,test x"$ac_cv_prog_gcc" = x"yes")
+])
+
+AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
+[
+dnl check target cc
+RTEMS_PROG_CC
+dnl check if the compiler supports --specs
+RTEMS_GCC_SPECS
+dnl check if the target compiler may use --pipe
+RTEMS_GCC_PIPE
+dnl check if the compiler supports --specs if gcc28 is requested
+if test "$RTEMS_USE_GCC272" != "yes" ; then
+ if test "$rtems_cv_gcc_specs" = "no"; then
+ AC_MSG_WARN([*** disabling --enable-gcc28])
+ RTEMS_USE_GCC272=yes
+ fi
+fi
+test "$rtems_cv_gcc_pipe" = "yes" && CC_FOR_TARGET="$CC_FOR_TARGET --pipe"
+
+## Conditional for automake files
+AM_CONDITIONAL(RTEMS_USE_GCC272, test x"$RTEMS_USE_GCC272" = x"yes")
+## Make variable for autoconf fragments (*.cfg)
+AC_SUBST(RTEMS_USE_GCC272)
+
+dnl FIXME: HACK for egcs/cygwin mixing '\\' and '/' in gcc -print-*
+case $host_os in
+*cygwin*) GCCSED="| sed 's%\\\\%/%g'" ;;
+*) ;;
+esac
+AC_SUBST(GCCSED)
+])
diff --git a/macros/prog-cxx.m4 b/macros/prog-cxx.m4
new file mode 100644
index 0000000000..72d3a20957
--- /dev/null
+++ b/macros/prog-cxx.m4
@@ -0,0 +1,32 @@
+dnl
+dnl $Id$
+dnl
+dnl Check for target g++
+dnl
+
+AC_DEFUN(RTEMS_PROG_CXX,
+[
+AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
+AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
+AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
+AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
+
+dnl Only accept g++
+dnl NOTE: This might be too restrictive
+AC_CHECK_TOOL(CXX,g++)
+AC_PROG_CXX
+test -z "$CXX" \
+ && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
+])
+
+AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
+[
+ RTEMS_PROG_CXX
+ if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then
+ AC_MSG_ERROR([***]
+ [Inconsistency in compiler configuration:]
+ [Target C compiler and target C++ compiler]
+ [must both either be cross compilers or native compilers]
+ [Hint: If building a posix bsp: LD_LIBRARY_PATH?] )
+ fi
+])
diff --git a/macros/project-root.m4 b/macros/project-root.m4
new file mode 100644
index 0000000000..35fd15b7aa
--- /dev/null
+++ b/macros/project-root.m4
@@ -0,0 +1,47 @@
+dnl
+dnl $Id$
+dnl
+
+dnl
+dnl PROJECT_TOPdir .. relative path to the top of the build-tree
+dnl PROJECT_ROOT .. relative path to the top of the temporary
+dnl installation directory inside the build-tree
+dnl RTEMS_TOPdir .. relative path of a subpackage's configure.in to the
+dnl toplevel configure.in of the source-tree
+dnl RTEMS_ROOT .. path to the top of a bsp's build directory
+dnl [Applied by custom/*.cfg, depredicated otherwise]
+dnl
+
+AC_DEFUN(RTEMS_PROJECT_ROOT,
+[dnl
+AC_REQUIRE([RTEMS_TOP])
+if test "$TARGET_SUBDIR" = "." ; then
+# Native
+PROJECT_TOPdir=${RTEMS_TOPdir}/'$(top_builddir)'
+PROJECT_ROOT=${RTEMS_TOPdir}/'$(top_builddir)';
+else
+# FIXME: Moving the build-tree
+# PROJECT_TOPdir=../${RTEMS_TOPdir}/'$(top_builddir)'
+# PROJECT_ROOT=${RTEMS_TOPdir}/'$(top_builddir)'
+
+# FIXME: Old, per-bsp building style
+PROJECT_TOPdir=../${RTEMS_TOPdir}/'$(top_builddir)'
+PROJECT_ROOT=../${RTEMS_TOPdir}/'$(top_builddir)'
+fi
+AC_SUBST(PROJECT_ROOT)
+AC_SUBST(PROJECT_TOPdir)
+
+# FIXME: This should not be here
+RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c/$RTEMS_BSP
+AC_SUBST(RTEMS_ROOT)
+
+PACKHEX="\$(PROJECT_TOPdir)/tools/build/packhex"
+AC_SUBST(PACKHEX)
+
+PROJECT_INCLUDE="\$(PROJECT_ROOT)/$RTEMS_BSP/lib/include"
+AC_SUBST(PROJECT_INCLUDE)
+
+PROJECT_RELEASE="\$(PROJECT_ROOT)/$RTEMS_BSP"
+AC_SUBST(PROJECT_RELEASE)
+])
+
diff --git a/macros/rtems-debug.m4 b/macros/rtems-debug.m4
new file mode 100644
index 0000000000..d895b921b0
--- /dev/null
+++ b/macros/rtems-debug.m4
@@ -0,0 +1,21 @@
+## $Id$
+
+AC_DEFUN(RTEMS_ENABLE_RTEMS_DEBUG,
+[
+AC_ARG_ENABLE(rtems-debug,
+[ --disable-rtems-debug disable RTEMS_DEBUG],
+[case "${enableval}" in
+ yes) RTEMS_DEBUG=yes ;;
+ no) RTEMS_DEBUG=no ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for RTEMS_DEBUG]) ;;
+esac],[RTEMS_DEBUG=no])
+])
+
+AC_DEFUN(RTEMS_CHECK_RTEMS_DEBUG,
+[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
+if test x"${RTEMS_DEBUG}" = x"yes";
+then
+ AC_DEFINE_UNQUOTED(RTEMS_DEBUG,1,[if RTEMS_DEBUG is enabled])
+fi
+])
+
diff --git a/macros/rtems-test-no-pause.m4 b/macros/rtems-test-no-pause.m4
new file mode 100644
index 0000000000..edf9dea25b
--- /dev/null
+++ b/macros/rtems-test-no-pause.m4
@@ -0,0 +1,18 @@
+AC_DEFUN(RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE,
+[AC_ARG_ENABLE(test-no-pause,
+[ --disable-test-no-pause disable RTEMS_TEST_NO_PAUSE],
+[case "${enableval}" in
+ yes) RTEMS_TEST_NO_PAUSE=yes ;;
+ no) RTEMS_TEST_NO_PAUSE=no ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for RTEMS_TEST_NO_PAUSE]) ;;
+esac],[RTEMS_TEST_NO_PAUSE=yes])
+])
+
+AC_DEFUN(RTEMS_CHECK_RTEMS_TEST_NO_PAUSE,
+[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
+if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
+then
+ AC_DEFINE_UNQUOTED(RTEMS_TEST_NO_PAUSE,1,[if RTEMS_TEST_NO_PAUSE is enabled])
+fi
+])
+
diff --git a/macros/rtems-top.m4 b/macros/rtems-top.m4
new file mode 100644
index 0000000000..26abdf330d
--- /dev/null
+++ b/macros/rtems-top.m4
@@ -0,0 +1,44 @@
+dnl $Id$
+
+dnl
+dnl RTEMS_TOP($1)
+dnl
+dnl $1 .. relative path from this configure.in to the toplevel configure.in
+dnl
+AC_DEFUN(RTEMS_TOP,
+[dnl
+AC_CHECK_PROGS(MAKE, gmake make)
+AC_BEFORE([$0], [AC_CONFIG_AUX_DIR])dnl
+AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
+
+## HACK to allow gnu-make conditionals in automake-Makefiles.
+ENDIF=endif
+AC_SUBST(ENDIF)
+
+## HACK to destinguish between using GNU and RTEMS canonicalization
+AM_CONDITIONAL(RTEMS_CANONICALIZATION,test "x" = "y")
+
+AC_ARG_WITH(target-subdir,
+[ --with-target-subdir=DIR],
+TARGET_SUBDIR="$withval",
+TARGET_SUBDIR=".")
+
+RTEMS_TOPdir="$1";
+AC_SUBST(RTEMS_TOPdir)
+
+dnl Determine RTEMS Version string from the VERSION file
+dnl Hopefully, Joel never changes its format ;-
+AC_MSG_CHECKING([for RTEMS Version])
+if test -r "${srcdir}/${RTEMS_TOPdir}/VERSION"; then
+changequote(,)dnl
+RTEMS_VERSION=`grep 'RTEMS Version' ${srcdir}/${RTEMS_TOPdir}/VERSION | \
+sed -e 's%RTEMS[ ]*Version[ ]*\(.*\)[ ]*%\1%g'`
+changequote([,])dnl
+else
+AC_MSG_ERROR(Unable to find ${RTEMS_TOPdir}/VERSION)
+fi
+if test -z "$RTEMS_VERSION"; then
+AC_MSG_ERROR(Unable to determine version)
+fi
+AC_MSG_RESULT($RTEMS_VERSION)
+])dnl
diff --git a/macros/sysv-ipc.m4 b/macros/sysv-ipc.m4
new file mode 100644
index 0000000000..883921e2c8
--- /dev/null
+++ b/macros/sysv-ipc.m4
@@ -0,0 +1,133 @@
+dnl
+dnl $Id$
+dnl
+dnl Check for System V IPC calls used by Unix simulators
+dnl
+dnl 98/07/17 Dario Alcocer alcocer@netcom.com
+dnl Ralf Corsepius corsepiu@faw.uni-ulm.de
+dnl
+dnl Note: $host_os should probably *not* ever be used here to
+dnl determine if host supports System V IPC calls, since some
+dnl (e.g. FreeBSD 2.x) are configured by default to include only
+dnl a subset of the System V IPC calls. Therefore, to make sure
+dnl all of the required calls are found, test for each call explicitly.
+dnl
+dnl All of the calls use IPC_PRIVATE, so tests will not unintentionally
+dnl modify any existing key sets. See the man pages for semget, shmget,
+dnl msgget, semctl, shmctl and msgctl for details.
+
+AC_DEFUN(RTEMS_UNION_SEMUN,
+[
+AC_CACHE_CHECK([whether $RTEMS_HOST defines union semun],
+ rtems_cv_HAS_UNION_SEMUN,
+ [AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>],
+[union semun arg ;],
+[rtems_cv_HAS_UNION_SEMUN="yes"],
+[rtems_cv_HAS_UNION_SEMUN="no"])
+
+if test "$rtems_cv_HAS_UNION_SEMUN" = "yes"; then
+ AC_DEFINE(HAS_UNION_SEMUN)
+fi])
+])
+
+AC_DEFUN(RTEMS_SYSV_SEM,
+[AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([RTEMS_CANONICAL_HOST])
+AC_CACHE_CHECK(whether $RTEMS_HOST supports System V semaphores,
+rtems_cv_sysv_sem,
+[
+AC_TRY_RUN(
+[
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
+#if !HAS_UNION_SEMUN
+ union semun {
+ int val;
+ struct semid_ds *buf;
+ ushort *array;
+ } ;
+#endif
+int main () {
+ union semun arg ;
+
+ int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
+ if (id == -1)
+ exit(1);
+ arg.val = 0; /* avoid implicit type cast to union */
+ if (semctl(id, 0, IPC_RMID, arg) == -1)
+ exit(1);
+ exit(0);
+}
+],
+rtems_cv_sysv_sem="yes", rtems_cv_sysv_sem="no", :)
+])
+])
+
+AC_DEFUN(RTEMS_SYSV_SHM,
+[AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([RTEMS_CANONICAL_HOST])
+AC_CACHE_CHECK(whether $RTEMS_HOST supports System V shared memory,
+rtems_cv_sysv_shm,
+[
+AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+int main () {
+ int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400);
+ if (id == -1)
+ exit(1);
+ if (shmctl(id, IPC_RMID, 0) == -1)
+ exit(1);
+ exit(0);
+}
+],
+rtems_cv_sysv_shm="yes", rtems_cv_sysv_shm="no", :)
+])
+])
+
+AC_DEFUN(RTEMS_SYSV_MSG,
+[AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([RTEMS_CANONICAL_HOST])
+AC_CACHE_CHECK(whether $RTEMS_HOST supports System V messages,
+rtems_cv_sysv_msg,
+[
+AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/msg.h>
+int main () {
+ int id=msgget(IPC_PRIVATE,IPC_CREAT|0400);
+ if (id == -1)
+ exit(1);
+ if (msgctl(id, IPC_RMID, 0) == -1)
+ exit(1);
+ exit(0);
+}
+],
+rtems_cv_sysv_msg="yes", rtems_cv_sysv_msg="no", :)
+])
+])
+
+AC_DEFUN(RTEMS_CHECK_SYSV_UNIX,
+[AC_REQUIRE([RTEMS_CANONICAL_HOST])
+if test "$RTEMS_CPU" = "unix" ; then
+ RTEMS_UNION_SEMUN
+ RTEMS_SYSV_SEM
+ if test "$rtems_cv_sysv_sem" != "yes" ; then
+ AC_MSG_ERROR([System V semaphores don't work, required by simulator])
+ fi
+ RTEMS_SYSV_SHM
+ if test "$rtems_cv_sysv_shm" != "yes" ; then
+ AC_MSG_ERROR([System V shared memory doesn't work, required by simulator])
+ fi
+ RTEMS_SYSV_MSG
+ if test "$rtems_cv_sysv_msg" != "yes" ; then
+ AC_MSG_ERROR([System V messages don't work, required by simulator])
+ fi
+fi
+])
diff --git a/macros/target.m4 b/macros/target.m4
new file mode 100644
index 0000000000..517811d51b
--- /dev/null
+++ b/macros/target.m4
@@ -0,0 +1,127 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_CONFIG_SUBDIRS,
+[
+define([RTEMS_TGT_SUBDIRS],
+ifdef([RTEMS_TGT_SUBDIRS], [RTEMS_TGT_SUBDIRS ],)[$1])dnl
+target_subdirs="RTEMS_TGT_SUBDIRS"
+AC_SUBST(target_subdirs)
+])
+
+dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS
+AC_DEFUN(RTEMS_OUTPUT_SUBDIRS,
+[
+if test "$no_recursion" != yes; then
+ if test $target_alias != $host_alias; then
+ target_subdir="$target_alias"
+ else
+ target_subdir="."
+ fi
+ # Remove --cache-file and --srcdir arguments so they do not pile up.
+ ac_sub_configure_args=
+ ac_prev=
+ for ac_arg in $ac_configure_args; do
+ if test -n "$ac_prev"; then
+ ac_prev=
+ continue
+ fi
+ case "$ac_arg" in
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ ;;
+ -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 -d $target_subdir || mkdir $target_subdir
+ for ac_config_dir in $1; 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
+
+ echo configuring in $target_subdir/$ac_config_dir
+
+ case "$srcdir" in
+## .) ;;
+ *)
+ if test -d $target_subdir/$ac_config_dir || mkdir $target_subdir/$ac_config_dir; then :;
+ else
+ AC_MSG_ERROR(can not create `pwd`/$target_subdir/$ac_config_dir)
+ fi
+ ;;
+ esac
+
+ ac_popdir=`pwd`
+ cd $target_subdir/$ac_config_dir
+
+changequote(, )dnl
+ # A "../" for each directory in /$ac_config_dir.
+ ac_dots=`echo $target_subdir/$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 guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_sub_srcdir/configure; then
+ ac_sub_configure=$ac_sub_srcdir/configure
+ elif test -f $ac_sub_srcdir/configure.in; then
+ ac_sub_configure=$ac_configure
+ else
+ AC_MSG_WARN(no configuration information is in $ac_config_dir)
+ ac_sub_configure=
+ fi
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+
+ # Make the cache file name correct relative to the subdirectory.
+ if test "$target_alias" != "$host_alias"; then
+ ac_sub_cache_file=$cache_file
+ else
+ case "$cache_file" in
+ /*) ac_sub_cache_file=$cache_file ;;
+ *) # Relative path.
+ ac_sub_cache_file="$ac_dots$cache_file" ;;
+ esac
+ fi
+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
+
+ 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 $ac_config_dir)
+ fi
+ fi
+
+ cd $ac_popdir
+ done
+fi
+])
diff --git a/macros/tool-paths.m4 b/macros/tool-paths.m4
new file mode 100644
index 0000000000..cb61747afd
--- /dev/null
+++ b/macros/tool-paths.m4
@@ -0,0 +1,23 @@
+AC_DEFUN(RTEMS_TOOLPATHS,
+[
+# tooldir='$(exec_prefix)/'$target_alias
+# Temporary work-around until building in source tree is supported
+AC_REQUIRE([RTEMS_PROJECT_ROOT])
+
+tooldir='$(PROJECT_ROOT)'
+AC_SUBST(tooldir)
+
+project_includedir='$(tooldir)'/include
+AC_SUBST(project_includedir)
+
+project_libdir='$(tooldir)/lib$(MULTISUBDIR)'
+AC_SUBST(project_libdir)
+
+project_bindir='$(tooldir)/bin'
+AC_SUBST(project_bindir)
+
+rtems_bspdir='$(prefix)/${RTEMS_BSP}'
+AC_SUBST(rtems_bspdir)
+rtems_makedir='$(prefix)/make'
+AC_SUBST(rtems_makedir)
+])
diff --git a/macros/tool-prefix.m4 b/macros/tool-prefix.m4
new file mode 100644
index 0000000000..563cca8e8f
--- /dev/null
+++ b/macros/tool-prefix.m4
@@ -0,0 +1,22 @@
+dnl
+dnl $Id$
+dnl
+dnl Set program_prefix
+dnl
+dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
+dnl Extracted from configure
+
+AC_DEFUN(RTEMS_TOOL_PREFIX,
+[AC_REQUIRE([AC_CANONICAL_TARGET])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+
+changequote(,)dnl
+if [ "${program_prefix}" = "NONE" ] ; then
+ if [ "${target}" = "${host}" ] ; then
+ program_prefix=
+ else
+ program_prefix=${target}-
+ fi
+fi
+changequote([,])dnl
+])