Stefan Reinauer (stefan.reinauer@coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1996
-gerrit
commit 513266501928d8c06cca7651922622c8e52a41f4 Author: Stefan Reinauer stefan.reinauer@coreboot.org Date: Fri Dec 7 23:40:36 2012 +0100
Add autotools to reference toolchain (WIP)
DO NOT SUBMIT!
I thought this might fix autotools' inability to install two GNU projects into the same directory but I was wrong. The problem is deeper than that.
Change-Id: I11b0f5e9015a2953ca70d52dc0fabcbcaa082208 Signed-off-by: Stefan Reinauer reinauer@google.com --- util/crossgcc/buildgcc | 109 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 101 insertions(+), 8 deletions(-)
diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc index 6d3be97..5958a9a 100755 --- a/util/crossgcc/buildgcc +++ b/util/crossgcc/buildgcc @@ -29,6 +29,9 @@ TARGETARCH=i386-elf DESTDIR=
# version numbers +AUTOCONF_VERSION=2.69 +AUTOMAKE_VERSION=1.12.5 +LIBTOOL_VERSION=2.4.2 GMP_VERSION=5.0.5 MPFR_VERSION=3.1.1 MPC_VERSION=1.0.1 @@ -46,6 +49,9 @@ PYTHON_VERSION=2.7.3 EXPAT_VERSION=2.1.0
# archive locations +AUTOCONF_ARCHIVE="http://ftp.gnu.org/gnu/autoconf/autoconf-$%7BAUTOCONF_VERSION%7D.tar.gz" +AUTOMAKE_ARCHIVE="http://ftp.gnu.org/gnu/automake/automake-$%7BAUTOMAKE_VERSION%7D.tar.gz" +LIBTOOL_ARCHIVE="http://ftpmirror.gnu.org/libtool/libtool-$%7BLIBTOOL_VERSION%7D.tar.gz" GMP_ARCHIVE="http://ftpmirror.gnu.org/gmp/gmp-$%7BGMP_VERSION%7D.tar.bz2" MPFR_ARCHIVE="http://ftpmirror.gnu.org/mpfr/mpfr-$%7BMPFR_VERSION%7D.tar.bz2" MPC_ARCHIVE="http://ftpmirror.gnu.org/mpc/mpc-$%7BMPC_VERSION%7D.tar.gz" @@ -59,6 +65,9 @@ IASL_ARCHIVE="http://www.acpica.org/download/acpica-unix-$%7BIASL_VERSION%7D.tar.gz" PYTHON_ARCHIVE="http://www.python.org/ftp/python/$%7BPYTHON_VERSION%7D/Python-$%7BPYTHON_VER..." EXPAT_ARCHIVE="http://downloads.sourceforge.net/sourceforge/expat/expat-$%7BEXPAT_VERSION%7..."
+AUTOCONF_DIR="autoconf-${AUTOCONF_VERSION}" +AUTOMAKE_DIR="automake-${AUTOMAKE_VERSION}" +LIBTOOL_DIR="libtool-${LIBTOOL_VERSION}" GMP_DIR="gmp-${GMP_VERSION}" MPFR_DIR="mpfr-${MPFR_VERSION}" MPC_DIR="mpc-${MPC_VERSION}" @@ -128,7 +137,7 @@ fi cleanup() { printf "Cleaning up temporary files... " - rm -rf build-* combined gcc-* gmp-* mpfr-* mpc-* libelf-* binutils-* + rm -rf build-* autoconf-* libtool-* gcc-* gmp-* mpfr-* mpc-* libelf-* binutils-* rm -rf gdb-* w32api-* mingwrt-* acpica-* python-* expat-* printf "${green}ok${NC}\n" } @@ -266,7 +275,8 @@ fi
printf "Downloading tar balls ... \n" mkdir -p tarballs -for ARCHIVE in $GMP_ARCHIVE $MPFR_ARCHIVE $MPC_ARCHIVE $LIBELF_ARCHIVE \ +for ARCHIVE in $AUTOCONF_ARCHIVE $AUTOMAKE_ARCHIVE $LIBTOOL_ARCHIVE $GMP_ARCHIVE $MPFR_ARCHIVE $MPC_ARCHIVE \ + $LIBELF_ARCHIVE \ $GCC_ARCHIVE $BINUTILS_ARCHIVE $GDB_ARCHIVE $MINGW_ARCHIVES \ $IASL_ARCHIVE $PYTHON_ARCHIVE $EXPAT_ARCHIVE; do FILE=`basename $ARCHIVE` @@ -290,7 +300,7 @@ if [ "`echo $TARGETARCH | grep -c -- -mingw32`" -gt 0 ]; then fi
printf "Unpacking and patching ... \n" -for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS $PYTHON_PACKAGE \ +for PACKAGE in AUTOCONF AUTOMAKE LIBTOOL GMP MPFR MPC LIBELF GCC BINUTILS $PYTHON_PACKAGE \ $EXPAT_PACKAGE $GDB_PACKAGE $MINGW_PACKAGES IASL; do archive=$PACKAGE"_ARCHIVE" archive="`eval echo '$'$archive`" @@ -348,17 +358,86 @@ if [ "$USECCACHE" = 1 ]; then CC="ccache $CC" fi
-mkdir -p build-gmp build-mpfr build-mpc build-libelf build-binutils \ +mkdir -p build-autoconf build-automake build-libtool build-gmp build-mpfr build-mpc build-libelf build-binutils \ build-gcc build-python build-expat + +mkdir -p $DESTDIR$TARGETDIR/bin +export PATH=$DESTDIR$TARGETDIR/bin:$PATH + if [ $SKIPGDB -eq 0 ]; then mkdir -p build-gdb fi + + +if [ -f build-automake/.success ]; then + printf "Skipping Automake as it is already built\n" +else +printf "Building Automake ${AUTOMAKE_VERSION} ... " +( + cd build-automake + rm -f .failed + CC="$CC" ../${AUTOMAKE_DIR}/configure --prefix=$TARGETDIR \ + || touch .failed + $MAKE $JOBS || touch .failed + $MAKE install DESTDIR=$DESTDIR || touch .failed + if [ ! -f .failed ]; then touch .success; fi +) > build-automake/crossgcc-build.log 2>&1 +test -r build-automake/.failed && printf "${RED}failed${NC}\n" || \ + printf "${green}ok${NC}\n" +test -r build-automake/.failed && exit 1 +fi + + + +if [ -f build-libtool/.success ]; then + printf "Skipping libtool as it is already built\n" +else +printf "Building libtool ${LIBTOOL_VERSION} ... " +( + cd build-libtool + rm -f .failed + CC="$CC" ../${LIBTOOL_DIR}/configure --prefix=$TARGETDIR \ + || touch .failed + $MAKE $JOBS || touch .failed + $MAKE install DESTDIR=$DESTDIR || touch .failed + if [ ! -f .failed ]; then touch .success; fi +) > build-libtool/crossgcc-build.log 2>&1 +test -r build-libtool/.failed && printf "${RED}failed${NC}\n" || \ + printf "${green}ok${NC}\n" +test -r build-libtool/.failed && exit 1 +fi + +if [ -f build-autoconf/.success ]; then + printf "Skipping Autoconf as it is already built\n" +else +printf "Building Autoconf ${AUTOCONF_VERSION} ... " +( + cd build-autoconf + rm -f .failed + CC="$CC" ../${AUTOCONF_DIR}/configure --prefix=$TARGETDIR \ + || touch .failed + $MAKE $JOBS || touch .failed + $MAKE install DESTDIR=$DESTDIR || touch .failed + if [ ! -f .failed ]; then touch .success; fi +) > build-autoconf/crossgcc-build.log 2>&1 +test -r build-autoconf/.failed && printf "${RED}failed${NC}\n" || \ + printf "${green}ok${NC}\n" +test -r build-autoconf/.failed && exit 1 +fi + + + if [ -f build-gmp/.success ]; then printf "Skipping GMP as it is already built\n" else printf "Building GMP ${GMP_VERSION} ... " ( - cd build-gmp + cd ${GMP_DIR} + libtoolize --force --install + aclocal --force --install + autoreconf --force --install + autoconf --force + cd ../build-gmp rm -f .failed CC="$CC" ../${GMP_DIR}/configure --disable-shared --prefix=$TARGETDIR $OPTIONS \ || touch .failed @@ -387,7 +466,12 @@ else printf "Building MPFR ${MPFR_VERSION} ... " ( test `uname` = "Darwin" && CFLAGS="$CFLAGS -force_cpusubtype_ALL" - cd build-mpfr + cd ${MPFR_DIR} + libtoolize --force --install + aclocal --force --install + autoreconf --force --install + autoconf --force + cd ../build-mpfr rm -f .failed CC="$CC" ../${MPFR_DIR}/configure --disable-shared --prefix=$TARGETDIR \ --infodir=$TARGETDIR/info \ @@ -414,8 +498,18 @@ else printf "Building MPC ${MPC_VERSION} ... " ( #test `uname` = "Darwin" && CFLAGS="$CFLAGS -force_cpusubtype_ALL" - cd build-mpc + cd ${MPC_DIR} + libtoolize --force --install + aclocal --force --install + autoreconf --force --install + autoconf --force + cd ../build-mpc rm -f .failed + + echo CC="$CC" ../${MPC_DIR}/configure --disable-shared --prefix=$TARGETDIR \ + --infodir=$TARGETDIR/info --with-mpfr=$DESTDIR$TARGETDIR \ + --with-gmp=$DESTDIR$TARGETDIR CFLAGS="$HOSTCFLAGS" || \ + touch .failed CC="$CC" ../${MPC_DIR}/configure --disable-shared --prefix=$TARGETDIR \ --infodir=$TARGETDIR/info --with-mpfr=$DESTDIR$TARGETDIR \ --with-gmp=$DESTDIR$TARGETDIR CFLAGS="$HOSTCFLAGS" || \ @@ -495,7 +589,6 @@ printf "Building GCC ${GCC_VERSION} ... " cd .. # Now, finally, we can build gcc: cd build-gcc - export PATH=$PATH:$DESTDIR$TARGETDIR/bin rm -f .failed # GCC does not honour HOSTCFLAGS at all. CFLAGS are used for # both target and host object files. This is pretty misdesigned.