This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 1 of 1] companion_tools/autoconf: add autoconf tool


# 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]