summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2003-08-18 06:35:41 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2003-08-18 06:35:41 +0000
commit867ab080e00abc47c3c64ca46b6a6ad62eaeab3d (patch)
tree241b76d298fd37ee4b490b352e7b93e719436af7 /c
parentFix broken ChangeLog entries. (diff)
downloadrtems-867ab080e00abc47c3c64ca46b6a6ad62eaeab3d.tar.bz2
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* aclocal/bsp-alias.m4: New (Copied from ../../aclocal). * aclocal/bsp-arg-enable.m4: New (Copied from ../../aclocal). * aclocal/bsp-configure.m4: New (Copied from ../../aclocal). * aclocal/bspopts.m4: New (Copied from ../../aclocal). * aclocal/canonical-host.m4: New (Copied from ../../aclocal). * aclocal/canonicalize-tools.m4: New (Copied from ../../aclocal). * aclocal/canonical-target-name.m4: New (Copied from ../../aclocal). * aclocal/check-cpu.m4: New (Copied from ../../aclocal). * aclocal/check-custom-bsp.m4: New (Copied from ../../aclocal). * aclocal/check-cxx.m4: New (Copied from ../../aclocal). * aclocal/check-itron.m4: New (Copied from ../../aclocal). * aclocal/check-multiprocessing.m4: New (Copied from ../../aclocal). * aclocal/check-networking.m4: New (Copied from ../../aclocal). * aclocal/check-posix.m4: New (Copied from ../../aclocal). * aclocal/check-rdbg.m4: New (Copied from ../../aclocal). * aclocal/check-tool.m4: New (Copied from ../../aclocal). * aclocal/config-subdirs.m4: New (Copied from ../../aclocal). * aclocal/enable-bare.m4: New (Copied from ../../aclocal). * aclocal/enable-cxx.m4: New (Copied from ../../aclocal). * aclocal/enable-inlines.m4: New (Copied from ../../aclocal). * aclocal/enable-itron.m4: New (Copied from ../../aclocal). * aclocal/enable-multiprocessing.m4: New (Copied from ../../aclocal). * aclocal/enable-networking.m4: New (Copied from ../../aclocal). * aclocal/enable-posix.m4: New (Copied from ../../aclocal). * aclocal/enable-rdbg.m4: New (Copied from ../../aclocal). * aclocal/enable-rtemsbsp.m4: New (Copied from ../../aclocal). * aclocal/env-rtemsbsp.m4: New (Copied from ../../aclocal). * aclocal/gcc-isystem.m4: New (Copied from ../../aclocal). * aclocal/gcc-pipe.m4: New (Copied from ../../aclocal). * aclocal/gcc-specs.m4: New (Copied from ../../aclocal). * aclocal/i386-gas-code16.m4: New (Copied from ../../aclocal). * aclocal/multilib.m4: New (Copied from ../../aclocal). * aclocal/path-ksh.m4: New (Copied from ../../aclocal). * aclocal/path-perl.m4: New (Copied from ../../aclocal). * aclocal/ppc.m4: New (Copied from ../../aclocal). * aclocal/prog-ccas.m4: New (Copied from ../../aclocal). * aclocal/prog-cc.m4: New (Copied from ../../aclocal). * aclocal/prog-cxx.m4: New (Copied from ../../aclocal). * aclocal/project-root.m4: New (Copied from ../../aclocal). * aclocal/quoting.m4: New (Copied from ../../aclocal). * aclocal/rtems-cpu-subdirs.m4: New (Copied from ../../aclocal). * aclocal/rtems-flags.m4: New (Copied from ../../aclocal). * aclocal/rtems-top.m4: New (Copied from ../../aclocal). * aclocal/target.m4: New (Copied from ../../aclocal). * aclocal/tool-paths.m4: New (Copied from ../../aclocal). * aclocal/version.m4: New (Copied from ../../aclocal).
Diffstat (limited to 'c')
-rw-r--r--c/src/ChangeLog49
-rw-r--r--c/src/aclocal/bsp-alias.m440
-rw-r--r--c/src/aclocal/bsp-arg-enable.m418
-rw-r--r--c/src/aclocal/bsp-configure.m435
-rw-r--r--c/src/aclocal/bspopts.m466
-rw-r--r--c/src/aclocal/canonical-host.m425
-rw-r--r--c/src/aclocal/canonical-target-name.m441
-rw-r--r--c/src/aclocal/canonicalize-tools.m423
-rw-r--r--c/src/aclocal/check-cpu.m418
-rw-r--r--c/src/aclocal/check-custom-bsp.m410
-rw-r--r--c/src/aclocal/check-cxx.m426
-rw-r--r--c/src/aclocal/check-itron.m437
-rw-r--r--c/src/aclocal/check-multiprocessing.m442
-rw-r--r--c/src/aclocal/check-networking.m429
-rw-r--r--c/src/aclocal/check-posix.m436
-rw-r--r--c/src/aclocal/check-rdbg.m441
-rw-r--r--c/src/aclocal/check-tool.m411
-rw-r--r--c/src/aclocal/config-subdirs.m434
-rw-r--r--c/src/aclocal/enable-bare.m421
-rw-r--r--c/src/aclocal/enable-cxx.m413
-rw-r--r--c/src/aclocal/enable-inlines.m417
-rw-r--r--c/src/aclocal/enable-itron.m433
-rw-r--r--c/src/aclocal/enable-multiprocessing.m413
-rw-r--r--c/src/aclocal/enable-networking.m415
-rw-r--r--c/src/aclocal/enable-posix.m433
-rw-r--r--c/src/aclocal/enable-rdbg.m415
-rw-r--r--c/src/aclocal/enable-rtemsbsp.m416
-rw-r--r--c/src/aclocal/env-rtemsbsp.m456
-rw-r--r--c/src/aclocal/gcc-isystem.m425
-rw-r--r--c/src/aclocal/gcc-pipe.m421
-rw-r--r--c/src/aclocal/gcc-specs.m420
-rw-r--r--c/src/aclocal/i386-gas-code16.m431
-rw-r--r--c/src/aclocal/multilib.m417
-rw-r--r--c/src/aclocal/path-ksh.m414
-rw-r--r--c/src/aclocal/path-perl.m412
-rw-r--r--c/src/aclocal/ppc.m487
-rw-r--r--c/src/aclocal/prog-cc.m448
-rw-r--r--c/src/aclocal/prog-ccas.m48
-rw-r--r--c/src/aclocal/prog-cxx.m435
-rw-r--r--c/src/aclocal/project-root.m422
-rw-r--r--c/src/aclocal/quoting.m441
-rw-r--r--c/src/aclocal/rtems-cpu-subdirs.m430
-rw-r--r--c/src/aclocal/rtems-flags.m411
-rw-r--r--c/src/aclocal/rtems-top.m446
-rw-r--r--c/src/aclocal/target.m4138
-rw-r--r--c/src/aclocal/tool-paths.m423
-rw-r--r--c/src/aclocal/version.m42
47 files changed, 1444 insertions, 0 deletions
diff --git a/c/src/ChangeLog b/c/src/ChangeLog
index 3b71fef9b1..a7e7557b48 100644
--- a/c/src/ChangeLog
+++ b/c/src/ChangeLog
@@ -1,3 +1,52 @@
+2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * aclocal/bsp-alias.m4: New (Copied from ../../aclocal).
+ * aclocal/bsp-arg-enable.m4: New (Copied from ../../aclocal).
+ * aclocal/bsp-configure.m4: New (Copied from ../../aclocal).
+ * aclocal/bspopts.m4: New (Copied from ../../aclocal).
+ * aclocal/canonical-host.m4: New (Copied from ../../aclocal).
+ * aclocal/canonicalize-tools.m4: New (Copied from ../../aclocal).
+ * aclocal/canonical-target-name.m4: New (Copied from ../../aclocal).
+ * aclocal/check-cpu.m4: New (Copied from ../../aclocal).
+ * aclocal/check-custom-bsp.m4: New (Copied from ../../aclocal).
+ * aclocal/check-cxx.m4: New (Copied from ../../aclocal).
+ * aclocal/check-itron.m4: New (Copied from ../../aclocal).
+ * aclocal/check-multiprocessing.m4: New (Copied from ../../aclocal).
+ * aclocal/check-networking.m4: New (Copied from ../../aclocal).
+ * aclocal/check-posix.m4: New (Copied from ../../aclocal).
+ * aclocal/check-rdbg.m4: New (Copied from ../../aclocal).
+ * aclocal/check-tool.m4: New (Copied from ../../aclocal).
+ * aclocal/config-subdirs.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-bare.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-cxx.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-inlines.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-itron.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-multiprocessing.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-networking.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-posix.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-rdbg.m4: New (Copied from ../../aclocal).
+ * aclocal/enable-rtemsbsp.m4: New (Copied from ../../aclocal).
+ * aclocal/env-rtemsbsp.m4: New (Copied from ../../aclocal).
+ * aclocal/gcc-isystem.m4: New (Copied from ../../aclocal).
+ * aclocal/gcc-pipe.m4: New (Copied from ../../aclocal).
+ * aclocal/gcc-specs.m4: New (Copied from ../../aclocal).
+ * aclocal/i386-gas-code16.m4: New (Copied from ../../aclocal).
+ * aclocal/multilib.m4: New (Copied from ../../aclocal).
+ * aclocal/path-ksh.m4: New (Copied from ../../aclocal).
+ * aclocal/path-perl.m4: New (Copied from ../../aclocal).
+ * aclocal/ppc.m4: New (Copied from ../../aclocal).
+ * aclocal/prog-ccas.m4: New (Copied from ../../aclocal).
+ * aclocal/prog-cc.m4: New (Copied from ../../aclocal).
+ * aclocal/prog-cxx.m4: New (Copied from ../../aclocal).
+ * aclocal/project-root.m4: New (Copied from ../../aclocal).
+ * aclocal/quoting.m4: New (Copied from ../../aclocal).
+ * aclocal/rtems-cpu-subdirs.m4: New (Copied from ../../aclocal).
+ * aclocal/rtems-flags.m4: New (Copied from ../../aclocal).
+ * aclocal/rtems-top.m4: New (Copied from ../../aclocal).
+ * aclocal/target.m4: New (Copied from ../../aclocal).
+ * aclocal/tool-paths.m4: New (Copied from ../../aclocal).
+ * aclocal/version.m4: New (Copied from ../../aclocal).
+
2003-08-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Remove stray comments.
diff --git a/c/src/aclocal/bsp-alias.m4 b/c/src/aclocal/bsp-alias.m4
new file mode 100644
index 0000000000..85b5fbbef3
--- /dev/null
+++ b/c/src/aclocal/bsp-alias.m4
@@ -0,0 +1,40 @@
+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
+ mtx603e) $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
+ pc386dx) $2=pc386 ;; # i386 - PC w/o FPU
+ 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
+ erc32nfp) $2=erc32 ;; # erc32 without fpu
+ leon1) $2=leon ;; # leon without fpu
+ leon2) $2=leon ;; # leon with fpu
+ simsh7032) $2=shsim ;; # SH7032 simulator
+ simsh7045) $2=shsim ;; # SH7045 simulator
+ *) $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(m4_if([$1],,[$RTEMS_BSP],[$1]),
+ m4_if([$2],,[RTEMS_BSP_FAMILY],[$2]))]
+)
diff --git a/c/src/aclocal/bsp-arg-enable.m4 b/c/src/aclocal/bsp-arg-enable.m4
new file mode 100644
index 0000000000..91972a5303
--- /dev/null
+++ b/c/src/aclocal/bsp-arg-enable.m4
@@ -0,0 +1,18 @@
+dnl $Id$
+dnl
+dnl RTEMS_BSP_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
+dnl
+dnl Accept --enable-FEATURE=<RTEMS_BSP>:<bsp-value> and
+dnl --enable-FEATURE=<value> in BSP-configure scripts.
+dnl
+dnl Configure scripts will receive <bsp-value> if <RTEMS_BSP> matches the
+dnl actual value of the shell variable RTEMS_BSP (cf. RTEMS_ENV_RTEMSBSP),
+dnl and the raw value passed to --enable-FEATURE otherwise.
+dnl
+AC_DEFUN(RTEMS_BSP_ARG_ENABLE,
+[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
+AC_ARG_ENABLE([$1],[$2],
+[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"`
+ eval "[enable_]patsubst([$1], -, _)='$enableval'"
+$3],[$4])
+])
diff --git a/c/src/aclocal/bsp-configure.m4 b/c/src/aclocal/bsp-configure.m4
new file mode 100644
index 0000000000..5f123e5903
--- /dev/null
+++ b/c/src/aclocal/bsp-configure.m4
@@ -0,0 +1,35 @@
+dnl $Id$
+
+dnl RTEMS_BSP_CONFIGURE
+dnl Common macro to be included by all bsp-configure.acs
+AC_DEFUN([RTEMS_BSP_CONFIGURE],
+[
+ AC_PREREQ([2.52])
+ AM_MAINTAINER_MODE
+ RTEMS_ENV_RTEMSBSP
+
+ RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
+
+ RTEMS_CANONICAL_HOST
+ AM_CONFIG_HEADER([include/bspopts.tmp:include/bspopts.h.in],[
+echo "/* BSP dependent options file */" >$tmp/config.h
+echo "/* automatically generated -- DO NOT EDIT!! */" >>$tmp/config.h
+echo >>$tmp/config.h
+echo "#ifndef __BSP_OPTIONS_h" >>$tmp/config.h
+echo "#define __BSP_OPTIONS_h" >>$tmp/config.h
+echo >>$tmp/config.h
+sed -e '/.*PACKAGE.*/d' include/bspopts.tmp >> $tmp/config.h
+echo >>$tmp/config.h
+echo "#endif" >>$tmp/config.h
+ AS_IF([cmp -s include/bspopts.h $tmp/config.h 2>/dev/null],[
+ AC_MSG_NOTICE([include/bspopts.h is unchanged])
+ rm -f $tmp/config.h],[
+ AC_MSG_NOTICE([creating include/bspopts.h])
+ rm -f include/bspopts.h
+ mv $tmp/config.h include/bspopts.h
+ ])
+])
+ RTEMS_PROJECT_ROOT
+
+ RTEMS_CHECK_MULTIPROCESSING
+])
diff --git a/c/src/aclocal/bspopts.m4 b/c/src/aclocal/bspopts.m4
new file mode 100644
index 0000000000..e7ba131ae5
--- /dev/null
+++ b/c/src/aclocal/bspopts.m4
@@ -0,0 +1,66 @@
+dnl $Id$
+dnl
+
+dnl RTEMS_BSPOPTS_* - some autoconf voodoo to handle default values and
+dnl help-strings for per-BSP-environment variables.
+
+dnl To be used in bsp-configure scripts
+
+
+dnl Example:
+dnl
+dnl RTEMS_BSPOPTS_SET([foo],[bar],[0])
+dnl RTEMS_BSPOPTS_SET([foo],[baz*],[hello])
+dnl RTEMS_BSPOPTS_SET([foo],[*],[])
+dnl RTEMS_BSPOPTS_HELP([foo],[env. variable foo])
+dnl -> Add "0" as default value of variable "foo" for BSP "bar"
+dnl -> Add "hello" as default value of variable "foo" for all BSPs starting
+dnl with "baz" in their name.
+dnl -> Undefine foo as default clause for all BSP's.
+dnl
+dnl All this basically expands to a /bin/shell "case"-statement with
+dnl accompanying autoconf magic to propagate VAR to bspopts.h.
+
+
+dnl RTEMS_BSPOPTS_HELP(VAR,HELP-STRING)
+dnl Set up printing the HELP-STRING for bspopts.h's variable VAR and add
+dnl appropriate /bin/sh-magic to "configure" to have VAR set up.
+
+AC_DEFUN([RTEMS_BSPOPTS_HELP],[
+RTEMS_ARG_VAR([$1],[$2])
+m4_ifdef([_$1],[
+case ${RTEMS_BSP} in
+_$1[]dnl
+esac],[])
+if test -n "[$]{$1}"; then[]dnl
+AC_DEFINE_UNQUOTED([$1],
+ [[$]$1],
+ [$2])dnl
+fi
+])
+
+dnl RTEMS_BSPOPTS_SET(VAR,BSP,DEFAULT)
+dnl Set up a value DEFAULT to be used as default value for variable VAR for
+dnl BSP in RTEMS_BSPOPTS_HELP.
+
+dnl MUST be use in front of exactly _one_ corresponding RTEMS_BSPOPTS_HELP
+
+AC_DEFUN([RTEMS_BSPOPTS_SET],[dnl
+m4_append([_$1],
+[$2 )
+ $1=[$]{$1-$3} ;;
+])
+])
+
+
+dnl RTEMS_ARG_VAR(VAR,HELP-STRING)
+dnl An internal macros to have RTEMS_BSPOPTS_HELP's help string pretty
+dnl printed with configure --help.
+dnl Stripped down version of autoconf-2.52's AC_ARG_VAR.
+
+AC_DEFUN([RTEMS_ARG_VAR],
+[
+m4_expand_once([m4_divert_once([HELP_VAR],
+[AC_HELP_STRING([$1], [$2], [ ])])],
+ [$0($1)])dnl
+])
diff --git a/c/src/aclocal/canonical-host.m4 b/c/src/aclocal/canonical-host.m4
new file mode 100644
index 0000000000..7077ab31c5
--- /dev/null
+++ b/c/src/aclocal/canonical-host.m4
@@ -0,0 +1,25 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_CANONICAL_HOST,
+[dnl
+AC_REQUIRE([AC_CANONICAL_HOST])
+RTEMS_HOST=$host_os
+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
+AC_SUBST(RTEMS_HOST)
+])dnl
diff --git a/c/src/aclocal/canonical-target-name.m4 b/c/src/aclocal/canonical-target-name.m4
new file mode 100644
index 0000000000..ab710dc722
--- /dev/null
+++ b/c/src/aclocal/canonical-target-name.m4
@@ -0,0 +1,41 @@
+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_TARGET
+AC_MSG_CHECKING(rtems target cpu)
+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
+ ;;
+ tic4x-*rtems*) # gcc changed the name
+ RTEMS_CPU=c4x
+ ;;
+ *)
+ RTEMS_CPU=`echo $target | sed 's%^\([[^-]]*\)-\(.*\)$%\1%'`
+ ;;
+esac
+AC_SUBST(RTEMS_CPU)
+AC_MSG_RESULT($RTEMS_CPU)
+])
diff --git a/c/src/aclocal/canonicalize-tools.m4 b/c/src/aclocal/canonicalize-tools.m4
new file mode 100644
index 0000000000..4d37fa9c69
--- /dev/null
+++ b/c/src/aclocal/canonicalize-tools.m4
@@ -0,0 +1,23 @@
+dnl
+dnl $Id$
+dnl
+dnl Set target tools
+dnl
+
+AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
+[AC_REQUIRE([RTEMS_PROG_CC])dnl
+
+dnl FIXME: What shall be done if these tools are not available?
+ RTEMS_CHECK_TOOL(AR,ar,no)
+ RTEMS_CHECK_TOOL(AS,as,no)
+ RTEMS_CHECK_TOOL(LD,ld,no)
+ RTEMS_CHECK_TOOL(NM,nm,no)
+
+dnl special treatment of ranlib
+ RTEMS_CHECK_TOOL(RANLIB,ranlib,:)
+
+dnl NOTE: These may not be available if not using gnutools
+ RTEMS_CHECK_TOOL(OBJCOPY,objcopy,no)
+ RTEMS_CHECK_TOOL(SIZE,size,no)
+ RTEMS_CHECK_TOOL(STRIP,strip,:)
+])
diff --git a/c/src/aclocal/check-cpu.m4 b/c/src/aclocal/check-cpu.m4
new file mode 100644
index 0000000000..f3bc2141ae
--- /dev/null
+++ b/c/src/aclocal/check-cpu.m4
@@ -0,0 +1,18 @@
+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])
+# FIXME: Temporary hack
+if test -d "$srcdir/$RTEMS_TOPdir/cpukit/score/cpu/$RTEMS_CPU"; then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_ERROR(no)
+fi
+])dnl
+
diff --git a/c/src/aclocal/check-custom-bsp.m4 b/c/src/aclocal/check-custom-bsp.m4
new file mode 100644
index 0000000000..de9d61b79e
--- /dev/null
+++ b/c/src/aclocal/check-custom-bsp.m4
@@ -0,0 +1,10 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,[
+AC_REQUIRE([RTEMS_TOP])
+
+AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
+AS_IF([test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_ERROR([no])])
+])
diff --git a/c/src/aclocal/check-cxx.m4 b/c/src/aclocal/check-cxx.m4
new file mode 100644
index 0000000000..a780c3a8de
--- /dev/null
+++ b/c/src/aclocal/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++$(LIB_VARIANT).a'
+fi
+AC_SUBST(CPLUS_LD_LIBS)
+])
diff --git a/c/src/aclocal/check-itron.m4 b/c/src/aclocal/check-itron.m4
new file mode 100644
index 0000000000..4c4dbf0042
--- /dev/null
+++ b/c/src/aclocal/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/c/src/aclocal/check-multiprocessing.m4 b/c/src/aclocal/check-multiprocessing.m4
new file mode 100644
index 0000000000..355635ce54
--- /dev/null
+++ b/c/src/aclocal/check-multiprocessing.m4
@@ -0,0 +1,42 @@
+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([if wanting multiprocessing],
+ [rtems_cv_want_multiprocessing],
+ [
+ AS_IF([test x"$multilib" = x"no"],
+ [# no cpukit
+ rtems_cv_want_multiprocessing="$enable_multiprocessing"
+ ],[
+#HACK: Should check for RTEMS_MULTIPROCESSING in cpuopts.h, instead
+ rtems_cv_want_multiprocessing="$enable_multiprocessing"
+ ])
+ ])
+
+AS_IF([test "$rtems_cv_want_multiprocessing" = "yes"],
+[
+ AC_CACHE_CHECK([whether BSP supports multiprocessing],
+ [rtems_cv_HAS_MP],[
+ if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then
+ rtems_cv_HAS_MP="yes" ;
+ else
+ rtems_cv_HAS_MP="no";
+ fi
+ ])
+if test $rtems_cv_HAS_MP = "no"; then
+AC_MSG_ERROR([multiprocessing requested but not supported])
+fi
+],[rtems_cv_HAS_MP="no";])
+
+AC_SUBST(HAS_MP,[$rtems_cv_HAS_MP])
+])
diff --git a/c/src/aclocal/check-networking.m4 b/c/src/aclocal/check-networking.m4
new file mode 100644
index 0000000000..db3a0c60d3
--- /dev/null
+++ b/c/src/aclocal/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/c/src/aclocal/check-posix.m4 b/c/src/aclocal/check-posix.m4
new file mode 100644
index 0000000000..7512f663f5
--- /dev/null
+++ b/c/src/aclocal/check-posix.m4
@@ -0,0 +1,36 @@
+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
+AS_IF(
+ [test x"${HAS_POSIX_API}" = x"yes"],
+ [AC_DEFINE_UNQUOTED(RTEMS_POSIX_API,1,[if posix api is supported])])
+])
diff --git a/c/src/aclocal/check-rdbg.m4 b/c/src/aclocal/check-rdbg.m4
new file mode 100644
index 0000000000..0e38b59593
--- /dev/null
+++ b/c/src/aclocal/check-rdbg.m4
@@ -0,0 +1,41 @@
+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" ;
+ elif test "${RTEMS_CPU}" = "powerpc";
+ then
+ A=`grep -l RTEMS_PPC_EXCEPTION_PROCESSING_MODEL $srcdir/${RTEMS_TOPdir}/make/custom/* 2>/dev/null`;
+ C=""
+ for i in ${A} ;
+ do
+ B=`basename ${i} .cfg`;
+ C="${C} ${B}";
+ done
+ rtems_cv_HAS_RDBG="no";
+ for j in ${C} ;
+ do
+ if test "${$1}" = "${j}" ;
+ then
+ rtems_cv_HAS_RDBG="yes";
+ fi
+ done
+ else
+ rtems_cv_HAS_RDBG="no";
+ fi
+ ])
+HAS_RDBG="$rtems_cv_HAS_RDBG"
+AC_SUBST(HAS_RDBG)
+])
diff --git a/c/src/aclocal/check-tool.m4 b/c/src/aclocal/check-tool.m4
new file mode 100644
index 0000000000..5a91490e74
--- /dev/null
+++ b/c/src/aclocal/check-tool.m4
@@ -0,0 +1,11 @@
+dnl $Id$
+
+## Check for a cross tool, similar to AC_CHECK_TOOL, but do not fall back to
+## the un-prefixed version of PROG-TO-CHECK-FOR.
+dnl RTEMS_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN(RTEMS_CHECK_TOOL,
+[
+ AS_IF([test "x$build_alias" != "x$host_alias"],
+ [rtems_tool_prefix=${ac_tool_prefix}])
+ AC_CHECK_PROG($1, ${rtems_tool_prefix}$2, ${rtems_tool_prefix}$2, $3, $4)
+])
diff --git a/c/src/aclocal/config-subdirs.m4 b/c/src/aclocal/config-subdirs.m4
new file mode 100644
index 0000000000..6f9360bc80
--- /dev/null
+++ b/c/src/aclocal/config-subdirs.m4
@@ -0,0 +1,34 @@
+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 _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
+])
diff --git a/c/src/aclocal/enable-bare.m4 b/c/src/aclocal/enable-bare.m4
new file mode 100644
index 0000000000..43219461f8
--- /dev/null
+++ b/c/src/aclocal/enable-bare.m4
@@ -0,0 +1,21 @@
+AC_DEFUN(RTEMS_ENABLE_BARE,
+[
+AC_ARG_ENABLE(bare-cpu-cflags,
+[AC_HELP_STRING([--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,
+[AC_HELP_STRING([--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/c/src/aclocal/enable-cxx.m4 b/c/src/aclocal/enable-cxx.m4
new file mode 100644
index 0000000000..cde862d39f
--- /dev/null
+++ b/c/src/aclocal/enable-cxx.m4
@@ -0,0 +1,13 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_CXX,
+[
+AC_ARG_ENABLE(cxx,
+[AC_HELP_STRING([--enable-cxx],
+[enable C++ support and build the rtems++ library])],
+[case "${enable_cxx}" 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/c/src/aclocal/enable-inlines.m4 b/c/src/aclocal/enable-inlines.m4
new file mode 100644
index 0000000000..4e0eb80d24
--- /dev/null
+++ b/c/src/aclocal/enable-inlines.m4
@@ -0,0 +1,17 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_INLINES,
+[AC_ARG_ENABLE(rtems-inlines,
+[AC_HELP_STRING([--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
+
+AS_IF([test x"${RTEMS_USE_MACROS}" = x"yes"],
+ [AC_DEFINE_UNQUOTED(USE_MACROS,1,[if using macros])],
+ [AC_DEFINE_UNQUOTED(USE_INLINES,1,[if using inlines])])
+])
diff --git a/c/src/aclocal/enable-itron.m4 b/c/src/aclocal/enable-itron.m4
new file mode 100644
index 0000000000..3157ce0641
--- /dev/null
+++ b/c/src/aclocal/enable-itron.m4
@@ -0,0 +1,33 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_ITRON,
+[
+## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
+
+AC_ARG_ENABLE(itron,
+[AC_HELP_STRING([--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])
+
+case "${host}" 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
+AC_SUBST(RTEMS_HAS_ITRON_API)
+])
diff --git a/c/src/aclocal/enable-multiprocessing.m4 b/c/src/aclocal/enable-multiprocessing.m4
new file mode 100644
index 0000000000..129de0a735
--- /dev/null
+++ b/c/src/aclocal/enable-multiprocessing.m4
@@ -0,0 +1,13 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
+[
+AC_ARG_ENABLE(multiprocessing,
+[AC_HELP_STRING([--enable-multiprocessing],
+[enable multiprocessing interface])],
+[case "${enable_multiprocessing}" in
+ yes) ;;
+ no) ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
+esac],[enable_multiprocessing=no])
+])
diff --git a/c/src/aclocal/enable-networking.m4 b/c/src/aclocal/enable-networking.m4
new file mode 100644
index 0000000000..47801fff7c
--- /dev/null
+++ b/c/src/aclocal/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,
+[AC_HELP_STRING([--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/c/src/aclocal/enable-posix.m4 b/c/src/aclocal/enable-posix.m4
new file mode 100644
index 0000000000..13be1417dd
--- /dev/null
+++ b/c/src/aclocal/enable-posix.m4
@@ -0,0 +1,33 @@
+dnl $Id$
+
+AC_DEFUN(RTEMS_ENABLE_POSIX,
+[
+## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
+
+AC_ARG_ENABLE(posix,
+[AC_HELP_STRING([--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])
+
+case "${host}" 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
+AC_SUBST(RTEMS_HAS_POSIX_API)
+])
diff --git a/c/src/aclocal/enable-rdbg.m4 b/c/src/aclocal/enable-rdbg.m4
new file mode 100644
index 0000000000..8fa0cc8532
--- /dev/null
+++ b/c/src/aclocal/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,
+[AC_HELP_STRING([--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/c/src/aclocal/enable-rtemsbsp.m4 b/c/src/aclocal/enable-rtemsbsp.m4
new file mode 100644
index 0000000000..10ffcf6827
--- /dev/null
+++ b/c/src/aclocal/enable-rtemsbsp.m4
@@ -0,0 +1,16 @@
+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])
+AC_ARG_ENABLE(rtemsbsp,
+[AC_HELP_STRING([--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=""])
+])
diff --git a/c/src/aclocal/env-rtemsbsp.m4 b/c/src/aclocal/env-rtemsbsp.m4
new file mode 100644
index 0000000000..705df4d4dc
--- /dev/null
+++ b/c/src/aclocal/env-rtemsbsp.m4
@@ -0,0 +1,56 @@
+dnl $Id$
+
+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_ARG_VAR([CPU_CFLAGS],[CFLAGS specifying CPU-dependent features])
+AC_ARG_VAR([CFLAGS_OPTIMIZE_V],[CFLAGS for building the OPTIMIZE variant])
+AC_ARG_VAR([CFLAGS_DEBUG_V],[CFLAGS for building the DEBUG variant])
+AC_ARG_VAR([RTEMS_BSP_FAMILY],[RTEMS's BSP directory])
+AC_ARG_VAR([RTEMS_CPU_MODEL],[RTEMS's cpu model])
+
+AC_ARG_VAR([RTEMS_BSP],[RTEMS_BSP to build])
+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_BSP_SPECS="-specs bsp_specs -qrtems"
+AC_SUBST(RTEMS_BSP_SPECS)
+
+GCC_SPECS="-B\$(PROJECT_ROOT)/lib/ -B\$(PROJECT_ROOT)/$RTEMS_BSP/lib/"
+AC_SUBST(GCC_SPECS)
+
+PROJECT_INCLUDE="\$(PROJECT_ROOT)/$RTEMS_BSP/lib/include"
+AC_SUBST(PROJECT_INCLUDE)
+
+PROJECT_RELEASE="\$(PROJECT_ROOT)/$RTEMS_BSP"
+AC_SUBST(PROJECT_RELEASE)
+
+RTEMS_ROOT="\$(PROJECT_ROOT)/c/$RTEMS_BSP"
+AC_SUBST(RTEMS_ROOT)
+
+RTEMS_ENABLE_BARE
+AC_SUBST(BARE_CPU_MODEL)
+AC_SUBST(BARE_CPU_CFLAGS)
+
+AM_CONDITIONAL([MULTILIB],[false])
+
+includedir="\${exec_prefix}/${RTEMS_BSP}/lib/include"
+libdir="\${exec_prefix}/${RTEMS_BSP}/lib"
+
+bsplibdir="\${exec_prefix}/${RTEMS_BSP}/lib"
+AC_SUBST(bsplibdir)
+])
diff --git a/c/src/aclocal/gcc-isystem.m4 b/c/src/aclocal/gcc-isystem.m4
new file mode 100644
index 0000000000..c230508208
--- /dev/null
+++ b/c/src/aclocal/gcc-isystem.m4
@@ -0,0 +1,25 @@
+dnl
+dnl $Id$
+dnl
+dnl Check whether the gcc accepts -isystem
+dnl
+
+AC_DEFUN(RTEMS_GCC_ISYSTEM,
+[AC_REQUIRE([RTEMS_PROG_CC])
+AC_CACHE_CHECK(whether $CC accepts -isystem,rtems_cv_gcc_isystem,
+[
+rtems_cv_gcc_isystem=no
+if test x"$GCC" = x"yes"; then
+cat << EOF > conftest.h
+int conftest123();
+EOF
+cat << EOF > conftest.c
+#include <conftest.h>
+int conftest123() {}
+EOF
+ if test -z "`${CC} -isystem./ -c conftest.c 2>&1`";then
+ rtems_cv_gcc_isystem=yes
+ fi
+fi
+rm -f conftest*
+])])
diff --git a/c/src/aclocal/gcc-pipe.m4 b/c/src/aclocal/gcc-pipe.m4
new file mode 100644
index 0000000000..093ea2edf4
--- /dev/null
+++ b/c/src/aclocal/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 x"$GCC" = x"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/c/src/aclocal/gcc-specs.m4 b/c/src/aclocal/gcc-specs.m4
new file mode 100644
index 0000000000..ca0271424f
--- /dev/null
+++ b/c/src/aclocal/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 x"$GCC" = x"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/c/src/aclocal/i386-gas-code16.m4 b/c/src/aclocal/i386-gas-code16.m4
new file mode 100644
index 0000000000..9bb0030d94
--- /dev/null
+++ b/c/src/aclocal/i386-gas-code16.m4
@@ -0,0 +1,31 @@
+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)
+ if test x"${RTEMS_GAS_CODE16}" = x"yes";
+ then
+ AC_DEFINE_UNQUOTED(NEW_GAS,1,[if using 16 bit mode assembler support])
+ fi
+])
+
diff --git a/c/src/aclocal/multilib.m4 b/c/src/aclocal/multilib.m4
new file mode 100644
index 0000000000..66896f9ce5
--- /dev/null
+++ b/c/src/aclocal/multilib.m4
@@ -0,0 +1,17 @@
+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,
+AC_HELP_STRING([--enable-multilib],
+[build many library versions (default=no)]),
+[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")
+])
diff --git a/c/src/aclocal/path-ksh.m4 b/c/src/aclocal/path-ksh.m4
new file mode 100644
index 0000000000..881dd0c9ec
--- /dev/null
+++ b/c/src/aclocal/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/c/src/aclocal/path-perl.m4 b/c/src/aclocal/path-perl.m4
new file mode 100644
index 0000000000..e0e7dbb1f0
--- /dev/null
+++ b/c/src/aclocal/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/c/src/aclocal/ppc.m4 b/c/src/aclocal/ppc.m4
new file mode 100644
index 0000000000..3626e5c42c
--- /dev/null
+++ b/c/src/aclocal/ppc.m4
@@ -0,0 +1,87 @@
+# $Id$
+#
+# Some hacks for handling powerpc-exception subdirectories
+#
+# Note: Consider this file a temporary band-aid until a better, more general
+# subdirectory handling solution is introduced to RTEMS.
+
+AC_DEFUN([RTEMS_PPC_EXCEPTIONS],
+[
+exceptions="$1_exception_processing"
+AC_SUBST(exceptions)
+
+AC_CONFIG_COMMANDS_POST(
+[
+ exceptions_subdirs="$1_exception_processing"
+ updir=/../support
+
+if test "$no_recursion" != yes; then
+
+ RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args])
+
+ for ac_subdir in : $exceptions_subdirs; do test "x$ac_subdir" = x: && continue
+
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ test -d $srcdir${updir}/$ac_subdir || continue
+
+ AC_MSG_NOTICE([configuring in $ac_subdir])
+ case $srcdir in
+ .) ;;
+ *) AS_MKDIR_P(["./$ac_subdir"])
+ if test -d ./$ac_subdir; then :;
+ else
+ AC_MSG_ERROR([cannot create `pwd`/$ac_subdir])
+ fi
+ ;;
+ esac
+
+ ac_popdir=`pwd`
+ cd $ac_subdir
+
+ # A "../" for each directory in /$ac_subdir.
+ ac_dots=`echo $ac_subdir |
+ sed 's,^\./,,;s,[[^/]]$,&/,;s,[[^/]]*/,../,g'`
+
+ case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_sub_srcdir=$srcdir${updir} ;;
+ [[\\/]]* | ?:[[\\/]]* ) # Absolute path.
+ ac_sub_srcdir=$srcdir${updir}/$ac_subdir ;;
+ *) # Relative path.
+ ac_sub_srcdir=$ac_dots$srcdir${updir}/$ac_subdir ;;
+ esac
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_sub_srcdir/configure.gnu; then
+ ac_sub_configure="$SHELL '$ac_sub_srcdir/configure.gnu'"
+ elif test -f $ac_sub_srcdir/configure; then
+ ac_sub_configure="$SHELL '$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_subdir])
+ 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.
+ case $cache_file in
+ [[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;;
+ *) # Relative path.
+ ac_sub_cache_file=$ac_dots$cache_file ;;
+ esac
+
+ AC_MSG_NOTICE([running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir])
+ # The eval makes quoting arguments work.
+ eval $ac_sub_configure $ac_sub_configure_args \
+ --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir ||
+ AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
+ fi
+
+ cd $ac_popdir
+ done
+fi
+])
+])
diff --git a/c/src/aclocal/prog-cc.m4 b/c/src/aclocal/prog-cc.m4
new file mode 100644
index 0000000000..24a9d842a1
--- /dev/null
+++ b/c/src/aclocal/prog-cc.m4
@@ -0,0 +1,48 @@
+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
+
+_RTEMS_FLAGS([CFLAGS],
+ ["\$(CPU_CFLAGS) \$(RTEMS_CFLAGS_\$(VARIANT_V)_V) \$(CFLAGS_\$(VARIANT_V)_V) -g"])
+
+RTEMS_CHECK_TOOL(CC,gcc)
+test -z "$CC" && \
+ AC_MSG_ERROR([no acceptable cc found in \$PATH])
+AC_PROG_CC
+AC_PROG_CPP
+
+AM_CONDITIONAL(RTEMS_USE_GCC,test x"$GCC" = x"yes")
+])
+
+AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
+[
+dnl check target cc
+RTEMS_PROG_CC
+dnl check if the compiler supports -isystem
+RTEMS_GCC_ISYSTEM
+dnl check if the target compiler may use --pipe
+RTEMS_GCC_PIPE
+test "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe"
+
+dnl check if the compiler supports --specs
+RTEMS_GCC_SPECS
+
+if test "$GCC" = yes; then
+RTEMS_CFLAGS="$RTEMS_CFLAGS -Wall"
+m4_if([$1],,[],[RTEMS_CFLAGS="$RTEMS_CFLAGS $1"])
+fi
+
+AS_IF([test x"$rtems_cv_gcc_isystem" = x"yes"],[
+ RTEMS_CPPFLAGS="-isystem \$(PROJECT_INCLUDE)"],[
+ RTEMS_CPPFLAGS="-I\$(PROJECT_INCLUDE)"
+])
+AC_SUBST(RTEMS_CPPFLAGS)
+])
diff --git a/c/src/aclocal/prog-ccas.m4 b/c/src/aclocal/prog-ccas.m4
new file mode 100644
index 0000000000..aeef25ec0c
--- /dev/null
+++ b/c/src/aclocal/prog-ccas.m4
@@ -0,0 +1,8 @@
+## $Id$
+
+AC_DEFUN([RTEMS_PROG_CCAS],
+[
+AC_REQUIRE([RTEMS_PROG_CC])
+AC_SUBST(CCAS,["$CC \$(GCCSPECS)"])
+AC_SUBST(CCASFLAGS,["-DASM \$(CFLAGS) \$(INCLUDES)"])
+])
diff --git a/c/src/aclocal/prog-cxx.m4 b/c/src/aclocal/prog-cxx.m4
new file mode 100644
index 0000000000..8db69bf804
--- /dev/null
+++ b/c/src/aclocal/prog-cxx.m4
@@ -0,0 +1,35 @@
+dnl
+dnl $Id$
+dnl
+dnl Check for target g++
+dnl
+
+AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
+[
+AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
+AC_REQUIRE([RTEMS_ENABLE_CXX])
+RTEMS_CHECK_TOOL(CXX,g++)
+if test "$RTEMS_HAS_CPLUSPLUS" = "yes";
+then
+_RTEMS_FLAGS([CXXFLAGS],
+ ["\$(CPU_CFLAGS) \$(RTEMS_CFLAGS_\$(VARIANT_V)_V) \$(CFLAGS_\$(VARIANT_V)_V) -g"])
+
+dnl Only accept g++
+dnl NOTE: This might be too restrictive
+test -z "$CXX" \
+ && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
+AC_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
+
+else
+## Work-around to a bug in automake
+AM_CONDITIONAL([am__fastdepCXX],[false])
+fi
+])
diff --git a/c/src/aclocal/project-root.m4 b/c/src/aclocal/project-root.m4
new file mode 100644
index 0000000000..b520b94b5a
--- /dev/null
+++ b/c/src/aclocal/project-root.m4
@@ -0,0 +1,22 @@
+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])
+
+PACKHEX="\$(PROJECT_TOPdir)/tools/build/packhex"
+AC_SUBST(PACKHEX)
+])
+
diff --git a/c/src/aclocal/quoting.m4 b/c/src/aclocal/quoting.m4
new file mode 100644
index 0000000000..0a95ae3e9b
--- /dev/null
+++ b/c/src/aclocal/quoting.m4
@@ -0,0 +1,41 @@
+dnl RTEMS_CONFIGURE_ARGS_QUOTE(dnl RETURN_VAR, [ADDITIONAL_CASES], [VAR_TO_PROCESS]])
+dnl
+AC_DEFUN([_RTEMS_CONFIGURE_ARGS_QUOTE],
+[
+$1_prune()
+{
+ # Remove --cache-file and --srcdir arguments so they do not pile up.
+ $1=
+ ac_prev=
+ for ac_arg
+ 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=*)
+ ;;
+ --config-cache | -C)
+ ;;
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ ;;
+ m4_if([$2],,,[$2])
+ *) $1="$$1 '$ac_arg'" ;;
+ esac
+ done
+ export $1
+}
+])
+
+AC_DEFUN([RTEMS_CONFIGURE_ARGS_QUOTE],[
+m4_expand_once([_RTEMS_CONFIGURE_ARGS_QUOTE([$1],[$2])])
+eval $1_prune m4_if([$3],,[$ac_configure_args],[[$]$3])
+])
diff --git a/c/src/aclocal/rtems-cpu-subdirs.m4 b/c/src/aclocal/rtems-cpu-subdirs.m4
new file mode 100644
index 0000000000..19d880a14a
--- /dev/null
+++ b/c/src/aclocal/rtems-cpu-subdirs.m4
@@ -0,0 +1,30 @@
+AC_DEFUN([_RTEMS_CPU_SUBDIR],
+[
+$1 ) if test -d ${srcdir}/ifelse([$2],,[$1],[$2/$1]) ; then
+ AC_CONFIG_SUBDIRS(ifelse([$2],,[$1],[$2/$1]))
+ fi
+])
+
+## RTEMS_CPU_SUBDIRS([PREFIX])
+AC_DEFUN([RTEMS_CPU_SUBDIRS],
+[
+## EDIT: If adding a new cpu to RTEMS, add it to the case block below.
+case $RTEMS_CPU in
+_RTEMS_CPU_SUBDIR([arm],[$1]);;
+_RTEMS_CPU_SUBDIR([c4x],[$1]);;
+_RTEMS_CPU_SUBDIR([h8300],[$1]);;
+_RTEMS_CPU_SUBDIR([hppa1.1],[$1]);;
+_RTEMS_CPU_SUBDIR([i386],[$1]);;
+_RTEMS_CPU_SUBDIR([i960],[$1]);;
+_RTEMS_CPU_SUBDIR([m68k],[$1]);;
+_RTEMS_CPU_SUBDIR([mips],[$1]);;
+_RTEMS_CPU_SUBDIR([mips64orion],[$1]);;
+_RTEMS_CPU_SUBDIR([no_cpu],[$1]);;
+_RTEMS_CPU_SUBDIR([or32],[$1]);;
+_RTEMS_CPU_SUBDIR([powerpc],[$1]);;
+_RTEMS_CPU_SUBDIR([sh],[$1]);;
+_RTEMS_CPU_SUBDIR([sparc],[$1]);;
+_RTEMS_CPU_SUBDIR([unix],[$1]);;
+*) AC_MSG_ERROR([Invalid RTEMS_CPU <[$]{RTEMS_CPU}>])
+esac
+])
diff --git a/c/src/aclocal/rtems-flags.m4 b/c/src/aclocal/rtems-flags.m4
new file mode 100644
index 0000000000..8e034e52c2
--- /dev/null
+++ b/c/src/aclocal/rtems-flags.m4
@@ -0,0 +1,11 @@
+## $Id$
+##
+## Some hacks to set up RTEMS_*FLAGS
+## Internal macro, not supposed to be explictly used in configure.ac's
+
+AC_DEFUN([_RTEMS_FLAGS],[
+AS_IF([test -n "[$]{$1}"],
+ [RTEMS_$1=[$]{$1}],
+ [RTEMS_$1=$2])
+AC_SUBST([RTEMS_$1])
+])
diff --git a/c/src/aclocal/rtems-top.m4 b/c/src/aclocal/rtems-top.m4
new file mode 100644
index 0000000000..bdb79ed5e6
--- /dev/null
+++ b/c/src/aclocal/rtems-top.m4
@@ -0,0 +1,46 @@
+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_REQUIRE([RTEMS_VERSIONING])
+AC_CONFIG_AUX_DIR([$1])
+AC_CHECK_PROGS(MAKE, gmake make)
+AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
+
+AC_PREFIX_DEFAULT([/opt/rtems])
+
+## HACK to allow gnu-make conditionals in automake-Makefiles.
+ENDIF=endif
+AC_SUBST(ENDIF)
+
+RTEMS_TOPdir="$1";
+AC_SUBST(RTEMS_TOPdir)
+
+## with_target_subdirs is handled implicitly by autoconf
+test -n "$with_target_subdir" || with_target_subdir="."
+
+if test "$with_target_subdir" = "." ; then
+# Native
+PROJECT_TOPdir=${RTEMS_TOPdir}/'$(top_builddir)'
+else
+# Cross
+dots=`echo $with_target_subdir|\
+sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
+PROJECT_TOPdir=${dots}${RTEMS_TOPdir}/'$(top_builddir)'
+fi
+AC_SUBST(PROJECT_TOPdir)
+
+PROJECT_ROOT="${RTEMS_TOPdir}/\$(top_builddir)"
+AC_SUBST(PROJECT_ROOT)
+
+AC_MSG_CHECKING([for RTEMS Version])
+AS_IF([test -r "${srcdir}/${RTEMS_TOPdir}/aclocal/version.m4"],
+[],
+[AC_MSG_ERROR([Unable to find ${RTEMS_TOPdir}/aclocal/version.m4])])
+AC_MSG_RESULT([_RTEMS_VERSION])
+])dnl
diff --git a/c/src/aclocal/target.m4 b/c/src/aclocal/target.m4
new file mode 100644
index 0000000000..d6c2de9fd2
--- /dev/null
+++ b/c/src/aclocal/target.m4
@@ -0,0 +1,138 @@
+dnl $Id$
+
+## HACK: Work-around to structural issue with RTEMS
+## The macros below violate most autoconf and canonicalization standards
+AC_DEFUN(RTEMS_CONFIG_BUILD_SUBDIRS,
+[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS])
+RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
+])
+
+dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS
+AC_DEFUN([_RTEMS_OUTPUT_BUILD_SUBDIRS],
+[AC_CONFIG_COMMANDS([bsp-tools],
+[
+# HACK: This is a blantant hack and breaks Canadian crosses
+build_alias="$build_alias"
+host_alias="$build_alias"
+if test "$no_recursion" != yes; then
+ if test x"$build_alias" != x"$host_alias"; then
+ target_subdir="$host_alias"
+ else
+ target_subdir="."
+ fi
+ RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args],
+ [
+ -host* | --host* ) ;;
+ --host ) ac_prev=host_alias;;
+ -target* | --target* ) ;;
+ -target ) ac_prev=target_alias ;;
+ -build* | --build* ) ;;
+ -build ) ac_prev_build_alias ;;
+ *_alias=* ) ;; # HACK: Workaround to autoconf passing *_alias
+ ],
+ [rtems_configure_args])
+
+ for rtems_config_dir in $RTEMS_BUILD_SUBDIRS; do
+ # Do not complain, so a configure script can configure whichever
+ # parts of a large source tree are present.
+ if test ! -d $srcdir/$rtems_config_dir; then
+ continue
+ fi
+
+ _RTEMS_PUSH_BUILDDIR([$rtems_config_dir])
+
+ _RTEMS_SUB_SRCDIR([$rtems_config_dir])
+
+ # The recursion is here.
+ if test -n "$ac_sub_configure"; then
+# ac_sub_cache_file=./config.cache
+ ac_sub_cache_file=/dev/null
+ _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.
+ 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 $rtems_config_dir])
+ fi
+ fi
+
+ _RTEMS_POP_BUILDDIR
+ done
+fi],
+[
+RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS"
+rtems_configure_args="$ac_configure_args"
+])
+])
+
+## FIXME: This is obsolete. Only kept for backward compatibility
+AU_DEFUN([RTEMS_OUTPUT_BUILD_SUBDIRS],[])
+
+
+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
+ case "$srcdir" in
+ .) ;;
+ *) AS_MKDIR_P([$1])
+ ;;
+ 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
+ [[\\/]]* | ?:[[\\/]]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+])dnl
+])
+
+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
+])
diff --git a/c/src/aclocal/tool-paths.m4 b/c/src/aclocal/tool-paths.m4
new file mode 100644
index 0000000000..cb61747afd
--- /dev/null
+++ b/c/src/aclocal/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/c/src/aclocal/version.m4 b/c/src/aclocal/version.m4
new file mode 100644
index 0000000000..7ac778c2de
--- /dev/null
+++ b/c/src/aclocal/version.m4
@@ -0,0 +1,2 @@
+AC_DEFUN([RTEMS_VERSIONING],
+m4_define([_RTEMS_VERSION],[ss-20030703]))