summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-04-30 10:43:41 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-04-30 10:43:41 (GMT)
commit86c54d80791ab37b88bf3813794fb1fa04e1b251 (patch)
treeeb96aea88b692fd64fde5f5575faa484716294fe /scripts
parentdacd159a98e28c1e5e1111c24cf400fee20f3e14 (diff)
Merge the fortran stuff to trunk now it works!
Fortran is not supported for all targets, though. ARM at least does not work. /trunk/scripts/build/binutils.sh | 8 8 0 0 ++++++++ /trunk/scripts/build/cc_gcc.sh | 11 6 5 0 ++++++----- /trunk/scripts/crosstool.sh | 10 9 1 0 +++++++++- /trunk/tools/addToolVersion.sh | 3 3 0 0 +++ /trunk/steps.mk | 2 2 0 0 ++ /trunk/config/cc/gcc.in | 16 16 0 0 ++++++++++++++++ 6 files changed, 44 insertions(+), 6 deletions(-)
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build/binutils.sh8
-rw-r--r--scripts/build/cc_gcc.sh11
-rw-r--r--scripts/build/gmp.sh49
-rw-r--r--scripts/build/mpfr.sh47
-rwxr-xr-xscripts/crosstool.sh10
5 files changed, 119 insertions, 6 deletions
diff --git a/scripts/build/binutils.sh b/scripts/build/binutils.sh
index 41ef4a2..4fb94b6 100644
--- a/scripts/build/binutils.sh
+++ b/scripts/build/binutils.sh
@@ -25,6 +25,13 @@ do_binutils() {
CT_DoStep INFO "Installing binutils"
+ binutils_opts=
+ # If GMP and MPFR were configured, then use that,
+ # otherwise let binutils find the system-wide libraries, if they exist.
+ if [ "${CT_CC_GCC_GMP_MPFR}" = "y" ]; then
+ binutils_opts="--with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
+ fi
+
CT_DoLog EXTRA "Configuring binutils"
CFLAGS="${CT_CFLAGS_FOR_HOST}" \
"${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure" \
@@ -34,6 +41,7 @@ do_binutils() {
--target=${CT_TARGET} \
--prefix=${CT_PREFIX_DIR} \
--disable-nls \
+ ${binutils_opts} \
${CT_BINUTILS_EXTRA_CONFIG} \
${BINUTILS_SYSROOT_ARG} 2>&1 |CT_DoLog ALL
diff --git a/scripts/build/cc_gcc.sh b/scripts/build/cc_gcc.sh
index 5647fc6..92dc405 100644
--- a/scripts/build/cc_gcc.sh
+++ b/scripts/build/cc_gcc.sh
@@ -7,7 +7,7 @@ do_print_filename() {
echo "gcc-${CT_CC_VERSION}"
}
-# Download final gcc
+# Download gcc
do_cc_get() {
# Ah! gcc folks are kind of 'different': they store the tarballs in
# subdirectories of the same name! That's because gcc is such /crap/ that
@@ -21,7 +21,7 @@ do_cc_get() {
ftp://ftp.gnu.org/gnu/gcc
}
-# Extract final gcc
+# Extract gcc
do_cc_extract() {
CT_ExtractAndPatch "${CT_CC_FILE}"
}
@@ -62,6 +62,7 @@ do_cc_core_static() {
extra_config="${CT_ARCH_WITH_ARCH} ${CT_ARCH_WITH_ABI} ${CT_ARCH_WITH_CPU} ${CT_ARCH_WITH_TUNE} ${CT_ARCH_WITH_FPU} ${CT_ARCH_WITH_FLOAT}"
[ "${CT_CC_CXA_ATEXIT}" = "y" ] && extra_config="${extra_config} --enable-__cxa_atexit"
+ [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
CT_DoLog DEBUG "Extra config passed: \"${extra_config}\""
@@ -114,6 +115,7 @@ do_cc_core_shared() {
extra_config="${CT_ARCH_WITH_ARCH} ${CT_ARCH_WITH_ABI} ${CT_ARCH_WITH_CPU} ${CT_ARCH_WITH_TUNE} ${CT_ARCH_WITH_FPU} ${CT_ARCH_WITH_FLOAT}"
[ "${CT_CC_CXA_ATEXIT}" = "y" ] && extra_config="${extra_config} --enable-__cxa_atexit"
+ [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
CT_DoLog DEBUG "Extra config passed: \"${extra_config}\""
@@ -202,12 +204,10 @@ do_cc() {
[ "${CT_CC_LANG_JAVA}" = "y" ] && lang_opt="${lang_opt},java"
[ "${CT_CC_LANG_OBJC}" = "y" ] && lang_opt="${lang_opt},objc"
[ "${CT_CC_LANG_OBJCXX}" = "y" ] && lang_opt="${lang_opt},obj-c++"
- CT_Test "Building Fortran language is not yet supported. Will try..." "${CT_CC_LANG_FORTRAN}" = "y"
CT_Test "Building ADA language is not yet supported. Will try..." "${CT_CC_LANG_ADA}" = "y"
- CT_Test "Building Java language is not yet supported. Will try..." "${CT_CC_LANG_JAVA}" = "y"
CT_Test "Building Objective-C language is not yet supported. Will try..." "${CT_CC_LANG_OBJC}" = "y"
CT_Test "Building Objective-C++ language is not yet supported. Will try..." "${CT_CC_LANG_OBJCXX}" = "y"
- CT_Test "Building ${CT_CC_LANG_OTHERS} language(s) is not yet supported. Will try..." -n "${CT_CC_LANG_OTHERS}"
+ CT_Test "Building ${CT_CC_LANG_OTHERS//,/ } language(s) is not yet supported. Will try..." -n "${CT_CC_LANG_OTHERS}"
lang_opt=`echo "${lang_opt},${CT_CC_LANG_OTHERS}" |sed -r -e 's/,+/,/g; s/,*$//;'`
extra_config="--enable-languages=${lang_opt}"
@@ -219,6 +219,7 @@ do_cc() {
else
extra_config="${extra_config} --disable-multilib"
fi
+ [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] && extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}"
CT_DoLog DEBUG "Extra config passed: \"${extra_config}\""
diff --git a/scripts/build/gmp.sh b/scripts/build/gmp.sh
new file mode 100644
index 0000000..cc84d64
--- /dev/null
+++ b/scripts/build/gmp.sh
@@ -0,0 +1,49 @@
+# This file adds the functions to build the GMP library
+# Copyright 2008 Yann E. MORIN
+# Licensed under the GPL v2. See COPYING in the root of this package
+
+do_print_filename() {
+ [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] || return 0
+ echo "gmp-${CT_GMP_VERSION}"
+}
+
+# Download GMP
+do_gmp_get() {
+ CT_GetFile "${CT_GMP_FILE}" \
+ http://ftp.sunet.se/pub/gnu/gmp \
+ ftp://ftp.gnu.org/gnu/gmp
+}
+
+# Extract GMP
+do_gmp_extract() {
+ CT_ExtractAndPatch "${CT_GMP_FILE}"
+}
+
+do_gmp() {
+ mkdir -p "${CT_BUILD_DIR}/build-gmp"
+ cd "${CT_BUILD_DIR}/build-gmp"
+
+ CT_DoStep INFO "Installing GMP"
+
+ CT_DoLog EXTRA "Configuring GMP"
+ CFLAGS="${CT_CFLAGS_FOR_HOST}" \
+ "${CT_SRC_DIR}/${CT_GMP_FILE}/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_HOST} \
+ --prefix="${CT_PREFIX_DIR}" \
+ --disable-shared --enable-static \
+ --enable-fft --enable-mpbsd 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Building GMP"
+ make ${PARALLELMFLAGS} 2>&1 |CT_DoLog ALL
+
+ if [ "${CT_GMP_CHECK}" = "y" ]; then
+ CT_DoLog EXTRA "Checking GMP"
+ make -s check 2>&1 |CT_DoLog ALL
+ fi
+
+ CT_DoLog EXTRA "Installing GMP"
+ make install 2>&1 |CT_DoLog ALL
+
+ CT_EndStep
+}
diff --git a/scripts/build/mpfr.sh b/scripts/build/mpfr.sh
new file mode 100644
index 0000000..810fa60
--- /dev/null
+++ b/scripts/build/mpfr.sh
@@ -0,0 +1,47 @@
+# This file adds the functions to build the MPFR library
+# Copyright 2008 Yann E. MORIN
+# Licensed under the GPL v2. See COPYING in the root of this package
+
+do_print_filename() {
+ [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] || return 0
+ echo "mpfr-${CT_MPFR_VERSION}"
+}
+
+# Download MPFR
+do_mpfr_get() {
+ CT_GetFile "${CT_MPFR_FILE}" http://www.mpfr.org/mpfr-current/
+}
+
+# Extract MPFR
+do_mpfr_extract() {
+ CT_ExtractAndPatch "${CT_MPFR_FILE}"
+}
+
+do_mpfr() {
+ mkdir -p "${CT_BUILD_DIR}/build-mpfr"
+ cd "${CT_BUILD_DIR}/build-mpfr"
+
+ CT_DoStep INFO "Installing MPFR"
+
+ CT_DoLog EXTRA "Configuring MPFR"
+ CFLAGS="${CT_CFLAGS_FOR_HOST}" \
+ "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_HOST} \
+ --prefix="${CT_PREFIX_DIR}" \
+ --disable-shared --enable-static \
+ --with-gmp="${CT_PREFIX_DIR}" 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Building MPFR"
+ make ${PARALLELMFLAGS} 2>&1 |CT_DoLog ALL
+
+ if [ "${CT_MPFR_CHECK}" = "y" ]; then
+ CT_DoLog EXTRA "Checking MPFR"
+ make -s check 2>&1 |CT_DoLog ALL
+ fi
+
+ CT_DoLog EXTRA "Installing MPFR"
+ make install 2>&1 |CT_DoLog ALL
+
+ CT_EndStep
+}
diff --git a/scripts/crosstool.sh b/scripts/crosstool.sh
index 3027f1c..e85be55 100755
--- a/scripts/crosstool.sh
+++ b/scripts/crosstool.sh
@@ -73,6 +73,8 @@ CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}"
# Now, build up the variables from the user-configured options.
CT_KERNEL_FILE="${CT_KERNEL}-${CT_KERNEL_VERSION}"
CT_BINUTILS_FILE="binutils-${CT_BINUTILS_VERSION}"
+CT_GMP_FILE="gmp-${CT_GMP_VERSION}"
+CT_MPFR_FILE="mpfr-${CT_MPFR_VERSION}"
CT_CC_FILE="${CT_CC}-${CT_CC_VERSION}"
CT_LIBC_FILE="${CT_LIBC}-${CT_LIBC_VERSION}"
@@ -417,6 +419,8 @@ fi
# Include sub-scripts instead of calling them: that way, we do not have to
# export any variable, nor re-parse the configuration and functions files.
. "${CT_LIB_DIR}/scripts/build/kernel_${CT_KERNEL}.sh"
+. "${CT_LIB_DIR}/scripts/build/gmp.sh"
+. "${CT_LIB_DIR}/scripts/build/mpfr.sh"
. "${CT_LIB_DIR}/scripts/build/binutils.sh"
. "${CT_LIB_DIR}/scripts/build/libc_${CT_LIBC}.sh"
. "${CT_LIB_DIR}/scripts/build/cc_${CT_CC}.sh"
@@ -426,6 +430,8 @@ fi
if [ -z "${CT_RESTART}" ]; then
CT_DoStep INFO "Retrieving needed toolchain components' tarballs"
do_kernel_get
+ do_gmp_get
+ do_mpfr_get
do_binutils_get
do_cc_get
do_libc_get
@@ -440,6 +446,8 @@ if [ -z "${CT_RESTART}" ]; then
fi
CT_DoStep INFO "Extracting and patching toolchain components"
do_kernel_extract
+ do_gmp_extract
+ do_mpfr_extract
do_binutils_extract
do_cc_extract
do_libc_extract
@@ -455,7 +463,7 @@ if [ "${CT_ONLY_DOWNLOAD}" != "y" -a "${CT_ONLY_EXTRACT}" != "y" ]; then
do_stop=0
prev_step=
[ -n "${CT_RESTART}" ] && do_it=0 || do_it=1
- # CT_STEPS comes from steps.mk!
+ # Aha! CT_STEPS comes from steps.mk!
for step in ${CT_STEPS}; do
if [ ${do_it} -eq 0 ]; then
if [ "${CT_RESTART}" = "${step}" ]; then