Index: source-builder/defaults.mc
===================================================================
--- source-builder/defaults.mc	(revision cb12e4875c203f794a5cd4b3de36101ff9a88403)
+++ source-builder/defaults.mc	(revision cb12e4875c203f794a5cd4b3de36101ff9a88403)
@@ -0,0 +1,242 @@
+#
+# RTEMS Tools Project (http://www.rtems.org/)
+# Copyright 2010-2013 Chris Johns (chrisj@rtems.org)
+# All rights reserved.
+#
+# This file is part of the RTEMS Tools package in 'rtems-tools'.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+#
+# All paths in defaults must be Unix format. Do not store any Windows format
+# paths in the defaults.
+#
+# Every entry must describe the type of checking a host must pass.
+#
+# Records:
+#  key: type, attribute, value
+#   type     : none, dir, exe, triplet
+#   attribute: none, required, optional
+#   value    : 'single line', '''multi line'''
+#
+
+#
+# Global defaults
+#
+[global]
+
+# Nothing
+nil:                 none,    none,     ''
+
+# Set to invalid values.
+_bset:               none,    none,     ''
+name:                none,    none,     ''
+version:             none,    none,     ''
+release:             none,    none,     ''
+
+# GNU triples needed to build packages
+_host:               triplet, required, ''
+_build:              triplet, required, '%{_host}'
+_target:             none,    optional, ''
+
+# Paths
+_host_platform:      none,    none,     '%{_host_cpu}-%{_host_vendor}-%{_host_os}%{?_gnu}'
+_arch:               none,    none,     '%{_host_arch}'
+_topdir:             dir,     required, '%{_cwd}'
+_configdir:          dir,     optional, '%{_topdir}/config:%{_sbdir}/config'
+_tardir:             dir,     optional, '%{_topdir}/tar'
+_sourcedir:          dir,     optional, '%{_topdir}/sources'
+_patchdir:           dir,     optional, '%{_topdir}/patches:%{_sbdir}/patches'
+_builddir:           dir,     optional, '%{_topdir}/build/%{name}-%{version}-%{release}'
+_buildcxcdir:        dir,     optional, '%{_topdir}/build/%{name}-%{version}-%{release}-cxc'
+_docdir:             dir,     none,     '%{_defaultdocdir}'
+_tmppath:            dir,     none,     '%{_topdir}/build/tmp'
+_tmproot:            dir,     none,     '%{_tmppath}/source-build-%(%{__id_u} -n)/%{_bset}'
+_tmpcxcroot:         dir,     none,     '%{_tmppath}/source-build-%(%{__id_u} -n)-cxc/%{_bset}'
+buildroot:           dir,     none,     '%{_tmppath}/%{name}-root-%(%{__id_u} -n)'
+buildcxcroot:        dir,     none,     '%{_tmppath}/%{name}-root-%(%{__id_u} -n)-cxc'
+_datadir:            dir,     none,     '%{_prefix}/share'
+_defaultdocdir:      dir,     none,     '%{_prefix}/share/doc'
+_exeext:             none,    none,     ''
+_exec_prefix:        dir,     none,     '%{_prefix}'
+_bindir:             dir,     none,     '%{_exec_prefix}/bin'
+_sbindir:            dir,     none,     '%{_exec_prefix}/sbin'
+_libexecdir:         dir,     none,     '%{_exec_prefix}/libexec'
+_datarootdir:        dir,     none,     '%{_prefix}/share'
+_datadir:            dir,     none,     '%{_datarootdir}'
+_sysconfdir:         dir,     none,     '%{_prefix}/etc'
+_sharedstatedir:     dir,     none,     '%{_prefix}/com'
+_localstatedir:      dir,     none,     '%{prefix}/var'
+_includedir:         dir,     none,     '%{_prefix}/include'
+_lib:                dir,     none,     'lib'
+_libdir:             dir,     none,     '%{_exec_prefix}/%{_lib}'
+_libexecdir:         dir,     none,     '%{_exec_prefix}/libexec'
+_mandir:             dir,     none,     '%{_datarootdir}/man'
+_infodir:            dir,     none,     '%{_datarootdir}/info'
+_localedir:          dir,     none,     '%{_datarootdir}/locale'
+_localedir:          dir,     none,     '%{_datadir}/locale'
+_localstatedir:      dir,     none,     '%{_prefix}/var'
+_prefix:             dir,     none,     '%{_usr}'
+_usr:                dir,     none,     '/usr/local'
+_usrsrc:             dir,     none,     '%{_usr}/src'
+_var:                dir,     none,     '/usr/local/var'
+_varrun:             dir,     none,     '%{_var}/run'
+
+# Defaults, override in platform specific modules.
+___setup_shell:      exe,     required, '/bin/sh'
+__aclocal:           exe,     optional, 'aclocal'
+__ar:                exe,     required, 'ar'
+__arch_install_post: exe,     none,     '%{nil}'
+__as:                exe,     required, 'as'
+__autoconf:          exe,     required, 'autoconf'
+__autoheader:        exe,     required, 'autoheader'
+__automake:          exe,     required, 'automake'
+__awk:               exe,     required, 'awk'
+__bash:              exe,     optional, '/bin/bash'
+__bison:             exe,     required, '/usr/bin/bison'
+__bzip2:             exe,     required, '/usr/bin/bzip2'
+__cat:               exe,     required, '/bin/cat'
+__cc:                exe,     required, '/usr/bin/gcc'
+__chgrp:             exe,     required, '/usr/bin/chgrp'
+__chmod:             exe,     required, '/bin/chmod'
+__chown:             exe,     required, '/usr/sbin/chown'
+__cp:                exe,     required, '/bin/cp'
+__cpp:               exe,     none,     '%{__cc} -E'
+__cxx:               exe,     required, '/usr/bin/g++'
+__flex:              exe,     required, '/usr/bin/flex'
+__git:               exe,     required, '/usr/bin/git'
+__grep:              exe,     required, '/usr/bin/grep'
+__gzip:              exe,     required, '/usr/bin/gzip'
+__id:                exe,     required, '/usr/bin/id'
+__id_u:              exe,     none,     '%{__id} -u'
+__install:           exe,     required, '/usr/bin/install'
+__install_info:      exe,     optional, '/usr/bin/install-info'
+__ld:                exe,     required, '/usr/bin/ld'
+__ldconfig:          exe,     required, '/sbin/ldconfig'
+__ln_s:              exe,     none,     'ln -s'
+__make:              exe,     required, 'make'
+__makeinfo:          exe,     required, '/usr/bin/makeinfo'
+__mkdir:             exe,     required, '/bin/mkdir'
+__mkdir_p:           exe,     none,     '/bin/mkdir -p'
+__mv:                exe,     required, '/bin/mv'
+__nm:                exe,     required, '/usr/bin/nm'
+__objcopy:           exe,     optional, '/usr/bin/objcopy'
+__objdump:           exe,     optional, '/usr/bin/objdump'
+__patch_bin:         exe,     required, '/usr/bin/patch'
+__patch_opts:        none,    none,     '%{nil}'
+__patch:             exe,     none,     '%{__patch_bin} %{__patch_opts}'
+__perl:              exe,     optional, 'perl'
+__ranlib:            exe,     required, 'ranlib'
+__rm:                exe,     required, '/bin/rm'
+__rmfile:            exe,     none,     '%{__rm} -f'
+__rmdir:             exe,     none,     '%{__rm} -rf'
+__sed:               exe,     required, '/usr/bin/sed'
+__setup_post:        exe,     none,     '%{__chmod} -R a+rX,g-w,o-w .'
+__sh:                exe,     required, '/bin/sh'
+__tar:               exe,     required, '/usr/bin/tar'
+__tar_extract:       exe,     none,     '%{__tar} -xvvf'
+__touch:             exe,     required, '/usr/bin/touch'
+__unzip:             exe,     required, '/usr/bin/unzip'
+__xz:                exe,     required, '/usr/bin/xz'
+
+# Shell Build Settings.
+___build_args:       none,    none,     '-e'
+___build_cmd:        none,    none,     '%{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}'
+___build_post:       none,    none,     'exit 0'
+
+# Prebuild set up script.
+___build_pre:        none,    none,     '''# ___build_pre in as set up in defaults.py
+# Save the original path away.
+export SB_ORIG_PATH=${PATH}
+# Directories
+%{?_prefix:SB_PREFIX="%{_prefix}"}
+%{?_prefix:SB_PREFIX_CLEAN=$(echo "%{_prefix}" | %{__sed} -e 's/^\///')}
+SB_SOURCE_DIR="%{_sourcedir}"
+SB_BUILD_DIR="%{_builddir}"
+SB_OPT_FLAGS="%{?_tmproot:-I%{_tmproot}/${SB_PREFIX_CLEAN}/include -L%{_tmproot}/${SB_PREFIX_CLEAN}/lib} %{optflags}"
+SB_ARCH="%{_arch}"
+SB_OS="%{_os}"
+export SB_SOURCE_DIR SB_BUILD_DIR SB_OPT_FLAGS SB_ARCH SB_OS
+# Documentation
+SB_DOC_DIR="%{_docdir}"
+export SB_DOC_DIR
+# Packages
+SB_PACKAGE_NAME="%{name}"
+SB_PACKAGE_VERSION="%{version}"
+SB_PACKAGE_RELEASE="%{release}"
+export SB_PACKAGE_NAME SB_PACKAGE_VERSION SB_PACKAGE_RELEASE
+# Build directories
+export SB_PREFIX
+%{?_builddir:SB_BUILD_DIR="%{_builddir}"}
+%{?buildroot:SB_BUILD_ROOT="%{buildroot}"}
+%{?buildroot:%{?_prefix:SB_BUILD_ROOT_BINDIR="%{buildroot}/${SB_PREFIX_CLEAN}/bin"}}
+export SB_BUILD_ROOT SB_BUILD_DIR SB_BUILD_ROOT_BINDIR
+%{?_buildcxcdir:SB_BUILD_CXC_DIR="%{_buildcxcdir}"}
+%{?buildcxcroot:SB_BUILD_CXC_ROOT="%{buildcxcroot}"}
+%{?buildcxcroot:%{?_prefix:SB_BUILD_CXC_ROOT_BINDIR="%{buildcxcroot}/${SB_PREFIX_CLEAN}/bin"}}
+export SB_BUILD_CXC_ROOT SB_BUILD_CXC_DIR SB_BUILD_CXC_ROOT_BINDIR
+%{?_tmproot:SB_TMPROOT="%{_tmproot}"}
+%{?_tmproot:%{?_prefix:SB_TMPPREFIX="%{_tmproot}/${SB_PREFIX_CLEAN}"}}
+%{?_tmproot:%{?_prefix:SB_TMPBINDIR="%{_tmproot}/${SB_PREFIX_CLEAN}/bin"}}
+export SB_TMPROOT SB_TMPPREFIX SB_TMPBINDIR
+%{?_tmpcxcroot:SB_TMPCXCROOT="%{_tmproot}"}
+%{?_tmpcxcroot:%{?_prefix:SB_TMPCXCPREFIX="%{_tmpcxcroot}/${SB_PREFIX_CLEAN}"}}
+%{?_tmpcxcroot:%{?_prefix:SB_TMPCXCBINDIR="%{_tmpcxcroot}/${SB_PREFIX_CLEAN}/bin"}}
+export SB_TMPCXCROOT SB_TMPCXCPREFIX SB_TMPCXCBINDIR
+# The compiler flags
+%{?_targetcflags:CFLAGS_FOR_TARGET="%{_targetcflags}"}
+%{?_targetcxxflags:CXXFLAGS_FOR_TARGET="%{_targetcxxflags}"}
+export CFLAGS_FOR_TARGET
+export CXXFLAGS_FOR_TARGET
+# Set up the path. Put the CXC path first.
+if test -n "${SB_TMPBINDIR}" ; then
+ PATH="${SB_TMPBINDIR}:$PATH"
+fi
+if test -n "${SB_TMPCXCBINDIR}" ; then
+ PATH="${SB_TMPCXCBINDIR}:$PATH"
+fi
+export PATH
+# Default environment set up.
+LANG=C
+export LANG
+unset DISPLAY || :
+umask 022
+cd "%{_builddir}"'''
+
+___build_shell:      none,    none,     '%{?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}'
+
+___build_template:   none,    none,     '''#!%{___build_shell}
+%{___build_pre}
+%{nil}'''
+
+# Configure command
+configure:           none,    none,     '''
+CFLAGS="${CFLAGS:-%optflags}" ; export CFLAGS ;
+CXXFLAGS="${CXXFLAGS:-%optflags}" ; export CXXFLAGS ;
+FFLAGS="${FFLAGS:-%optflags}" ; export FFLAGS ;
+./configure --build=%{_build} --host=%{_host} \
+      --target=%{_target_platform} \
+      --program-prefix=%{?_program_prefix} \
+      --prefix=%{_prefix} \
+      --exec-prefix=%{_exec_prefix} \
+      --bindir=%{_bindir} \
+      --sbindir=%{_sbindir} \
+      --sysconfdir=%{_sysconfdir} \
+      --datadir=%{_datadir} \
+      --includedir=%{_includedir} \
+      --libdir=%{_libdir} \
+      --libexecdir=%{_libexecdir} \
+      --localstatedir=%{_localstatedir} \
+      --sharedstatedir=%{_sharedstatedir} \
+      --mandir=%{_mandir} \
+      --infodir=%{_infodir}'''
