[PATCH 1 of 1] companion_tools/autoconf: add autoconf tool
Richard Strand
richard.strand@icomera.com
Tue Jan 12 00:08:00 GMT 2010
# HG changeset patch
# User Richard Strand <richard.strand@icomera.com>
# Date 1263252709 0
# Node ID 965ba28f74a5c7995e10b5055aa30b1620fc7395
# Parent 2e2ead7d3a6e90bb2015dc87d8e0ca09137b1a44
companion_tools/autoconf: add autoconf tool
Initial version of adding autoconf as a companion tool.
Signed-off-by: Richard Strand <richard.strand@icomera.com>
diff -r 2e2ead7d3a6e -r 965ba28f74a5 config/companion_tools.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/config/companion_tools.in Mon Jan 11 23:31:49 2010 +0000
@@ -0,0 +1,27 @@
+# Companion tools config options
+
+if EXPERIMENTAL
+
+menu "Companion tools"
+
+config COMP_TOOLS
+ bool
+ prompt "READ HELP before you say 'Y' here !!!"
+ help
+ Crosstool-NG relies on some external tools to be recent enough, namely:
+ autoconf >= 2.63
+
+ If your system has older versions, we can build them for you,
+ but you are strongly encouraged to update your system instead!
+
+if COMP_TOOLS
+
+config COMP_TOOLS_autoconf
+ bool
+ prompt "autoconf"
+
+endif
+
+endmenu
+
+endif
diff -r 2e2ead7d3a6e -r 965ba28f74a5 config/config.in
--- a/config/config.in Mon Jan 11 13:54:05 2010 +0000
+++ b/config/config.in Mon Jan 11 23:31:49 2010 +0000
@@ -8,3 +8,4 @@
source config/debug.in
source config/tools.in
source config/companion_libs.in
+source config/companion_tools.in
diff -r 2e2ead7d3a6e -r 965ba28f74a5 scripts/build/companion_tools.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/build/companion_tools.sh Mon Jan 11 23:31:49 2010 +0000
@@ -0,0 +1,38 @@
+# Wrapper to build the companion tools facilities
+
+# List all companion tools facilities, and parse their scripts
+CT_COMP_TOOLS_FACILITY_LIST=
+for f in "${CT_LIB_DIR}/scripts/build/companion_tools/"*.sh; do
+ _f="$(basename "${f}" .sh)"
+ _f="${_f#???-}"
+ __f="CT_COMP_TOOLS_${_f}"
+ if [ "${!__f}" = "y" ]; then
+ CT_DoLog DEBUG "Enabling companion tools '${_f}'"
+ . "${f}"
+ CT_COMP_TOOLS_FACILITY_LIST="${CT_COMP_TOOLS_FACILITY_LIST} ${_f}"
+ else
+ CT_DoLog DEBUG "Disabling companion tools '${_f}'"
+ fi
+done
+
+# Download the companion tools facilities
+do_companion_tools_get() {
+ for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do
+ do_companion_tools_${f}_get
+ done
+}
+
+# Extract and patch the companion tools facilities
+do_companion_tools_extract() {
+ for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do
+ do_companion_tools_${f}_extract
+ done
+}
+
+# Build the companion tools facilities
+do_companion_tools() {
+ for f in ${CT_COMP_TOOLS_FACILITY_LIST}; do
+ do_companion_tools_${f}_build
+ done
+}
+
diff -r 2e2ead7d3a6e -r 965ba28f74a5 scripts/build/companion_tools/200-autoconf.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/build/companion_tools/200-autoconf.sh Mon Jan 11 23:31:49 2010 +0000
@@ -0,0 +1,32 @@
+# Build script for autoconf
+
+CT_AUTOCONF_VERSION=2.65
+
+do_companion_tools_autoconf_get() {
+ CT_GetFile "autoconf-${CT_AUTOCONF_VERSION}" \
+ {ftp,http}://ftp.gnu.org/gnu/autoconf
+}
+
+do_companion_tools_autoconf_extract() {
+ CT_Extract "autoconf-${CT_AUTOCONF_VERSION}"
+ CT_Patch "autoconf-${CT_AUTOCONF_VERSION}"
+}
+
+do_companion_tools_autoconf_build() {
+ CT_DoStep EXTRA "Installing autoconf"
+ mkdir -p "${CT_BUILD_DIR}/build-autoconf"
+ CT_Pushd "${CT_BUILD_DIR}/build-autoconf"
+
+ # Ensure configure gets run using the CONFIG_SHELL as configure seems to
+ # have trouble when CONFIG_SHELL is set and /bin/sh isn't bash
+ # For reference see:
+ # http://www.gnu.org/software/autoconf/manual/autoconf.html#CONFIG_005fSHEL
+
+ CT_DoExecLog ALL ${CONFIG_SHELL} \
+ "${CT_SRC_DIR}/autoconf-${CT_AUTOCONF_VERSION}/configure" \
+ --prefix="${CT_WORK_DIR}/tools"
+ CT_DoExecLog ALL make
+ CT_DoExecLog ALL make install
+ CT_Popd
+ CT_EndStep
+}
diff -r 2e2ead7d3a6e -r 965ba28f74a5 scripts/crosstool-NG.sh.in
--- a/scripts/crosstool-NG.sh.in Mon Jan 11 13:54:05 2010 +0000
+++ b/scripts/crosstool-NG.sh.in Mon Jan 11 23:31:49 2010 +0000
@@ -114,6 +114,7 @@
# export any variable, nor re-parse the configuration and functions files.
. "${CT_LIB_DIR}/scripts/build/internals.sh"
. "${CT_LIB_DIR}/scripts/build/arch/${CT_ARCH}.sh"
+. "${CT_LIB_DIR}/scripts/build/companion_tools.sh"
. "${CT_LIB_DIR}/scripts/build/kernel/${CT_KERNEL}.sh"
. "${CT_LIB_DIR}/scripts/build/companion_libs/gmp.sh"
. "${CT_LIB_DIR}/scripts/build/companion_libs/mpfr.sh"
@@ -493,6 +494,7 @@
CT_DoLog INFO "Downloading forbidden by configuration, skipping downloads"
else
CT_DoStep INFO "Retrieving needed toolchain components' tarballs"
+ do_companion_tools_get
do_kernel_get
do_gmp_get
do_mpfr_get
@@ -512,6 +514,14 @@
CT_DoForceRmdir "${CT_SRC_DIR}"
CT_DoExecLog ALL mkdir -p "${CT_SRC_DIR}"
fi
+
+ if [ "${CT_COMP_TOOLS}" = "y" ]; then
+ CT_DoStep INFO "Extracting, patching and installing companion tools"
+ do_companion_tools_extract
+ do_companion_tools
+ CT_EndStep
+ fi
+
CT_DoStep INFO "Extracting and patching toolchain components"
do_kernel_extract
do_gmp_extract
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list