summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1a2b318)
Change-Id: If9144cdf088f16bc3974a1784a442a1fd12ac75b
Signed-off-by: Marc Jones <marcj303@gmail.com>
Reviewed-on: http://review.coreboot.org/147
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
$(obj)/$(1).ramstage.o: src/$(1).asl $(obj)/config.h
@printf " IASL $$(subst $(top)/,,$$(@))\n"
$(CC) -x assembler-with-cpp -E -MMD -MT $$(@) -D__ACPI__ -P -include $(abspath $(obj)/config.h) -I$(src) -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$(basename $$@).asl
$(obj)/$(1).ramstage.o: src/$(1).asl $(obj)/config.h
@printf " IASL $$(subst $(top)/,,$$(@))\n"
$(CC) -x assembler-with-cpp -E -MMD -MT $$(@) -D__ACPI__ -P -include $(abspath $(obj)/config.h) -I$(src) -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$(basename $$@).asl
- cd $$(dir $$@); iasl -p $$(notdir $$@) -tc $$(notdir $$(basename $$@)).asl
+ cd $$(dir $$@); $(IASL) -p $$(notdir $$@) -tc $$(notdir $$(basename $$@)).asl
mv $$(basename $$@).hex $$(basename $$@).c
$(CC) $$(CFLAGS) $$(if $$(subst dsdt,,$$(basename $$(notdir $(1)))), -DAmlCode=AmlCode_$$(basename $$(notdir $(1)))) -c -o $$@ $$(basename $$@).c
# keep %.o: %.c rule from catching the temporary .c file after a make clean
mv $$(basename $$@).hex $$(basename $$@).c
$(CC) $$(CFLAGS) $$(if $$(subst dsdt,,$$(basename $$(notdir $(1)))), -DAmlCode=AmlCode_$$(basename $$(notdir $(1)))) -c -o $$@ $$(basename $$@).c
# keep %.o: %.c rule from catching the temporary .c file after a make clean
# written by Patrick Georgi <patrick.georgi@coresystems.de> and
# Stefan Reinauer <stefan.reinauer@coresystems.de>
#
# written by Patrick Georgi <patrick.georgi@coresystems.de> and
# Stefan Reinauer <stefan.reinauer@coresystems.de>
#
+# Copyright (C) 2011 by Sage Electronic Engineering
+#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
#
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
#
-CROSSGCC_DATE="December 16th, 2010"
-CROSSGCC_VERSION="1.03"
+CROSSGCC_DATE="August 8th, 2011"
+CROSSGCC_VERSION="1.04"
# default settings
TARGETDIR=`pwd`/xgcc
# default settings
TARGETDIR=`pwd`/xgcc
W32API_VERSION=3.17-2
W32API_VERSION_SHORT=3.17
MINGWRT_VERSION=3.18
W32API_VERSION=3.17-2
W32API_VERSION_SHORT=3.17
MINGWRT_VERSION=3.18
# archive locations
GMP_ARCHIVE="ftp://ftp.gmplib.org/pub/gmp-${GMP_VERSION}/gmp-${GMP_VERSION}.tar.bz2"
# archive locations
GMP_ARCHIVE="ftp://ftp.gmplib.org/pub/gmp-${GMP_VERSION}/gmp-${GMP_VERSION}.tar.bz2"
GDB_ARCHIVE="http://ftp.gnu.org/gnu/gdb/gdb-${GDB_VERSION}.tar.bz2"
W32API_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/RuntimeLibrary/Win32-API/w32api-${W32API_VERSION_SHORT}/w32api-${W32API_VERSION}-mingw32-src.tar.lzma"
MINGWRT_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/RuntimeLibrary/MinGW-RT/mingwrt-${MINGWRT_VERSION}/mingwrt-${MINGWRT_VERSION}-mingw32-src.tar.gz"
GDB_ARCHIVE="http://ftp.gnu.org/gnu/gdb/gdb-${GDB_VERSION}.tar.bz2"
W32API_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/RuntimeLibrary/Win32-API/w32api-${W32API_VERSION_SHORT}/w32api-${W32API_VERSION}-mingw32-src.tar.lzma"
MINGWRT_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/RuntimeLibrary/MinGW-RT/mingwrt-${MINGWRT_VERSION}/mingwrt-${MINGWRT_VERSION}-mingw32-src.tar.gz"
+IASL_ARCHIVE="http://www.acpica.org/download/acpica-unix-${IASL_VERSION}.tar.gz"
GMP_DIR="gmp-${GMP_VERSION}"
MPFR_DIR="mpfr-${MPFR_VERSION}"
GMP_DIR="gmp-${GMP_VERSION}"
MPFR_DIR="mpfr-${MPFR_VERSION}"
GDB_DIR="gdb-${GDB_VERSION}"
W32API_DIR="w32api-${W32API_VERSION}-mingw32"
MINGWRT_DIR="mingwrt-${MINGWRT_VERSION}-mingw32"
GDB_DIR="gdb-${GDB_VERSION}"
W32API_DIR="w32api-${W32API_VERSION}-mingw32"
MINGWRT_DIR="mingwrt-${MINGWRT_VERSION}-mingw32"
+IASL_DIR="acpica-unix-${IASL_VERSION}"
cleanup()
{
printf "Cleaning up temporary files... "
cleanup()
{
printf "Cleaning up temporary files... "
- rm -rf build-* combined gcc-* gmp-* mpfr-* mpc-* libelf-* binutils-* gdb-* w32api-* mingwrt-*
+ rm -rf build-* combined gcc-* gmp-* mpfr-* mpc-* libelf-* binutils-* gdb-* w32api-* mingwrt-* acpica-*
printf "${green}ok${NC}\n"
}
printf "${green}ok${NC}\n"
}
cat << EOF
Copyright (C) 2008-2010 by coresystems GmbH
cat << EOF
Copyright (C) 2008-2010 by coresystems GmbH
+Copyright (C) 2011 by Sage Electronic Engineering
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
printf "Downloading tar balls ... \n"
mkdir -p tarballs
printf "Downloading tar balls ... \n"
mkdir -p tarballs
-for ARCHIVE in $GMP_ARCHIVE $MPFR_ARCHIVE $MPC_ARCHIVE $LIBELF_ARCHIVE $GCC_ARCHIVE $BINUTILS_ARCHIVE $GDB_ARCHIVE $MINGW_ARCHIVES; do
+for ARCHIVE in $GMP_ARCHIVE $MPFR_ARCHIVE $MPC_ARCHIVE $LIBELF_ARCHIVE $GCC_ARCHIVE $BINUTILS_ARCHIVE $GDB_ARCHIVE $MINGW_ARCHIVES $IASL_ARCHIVE; do
FILE=`basename $ARCHIVE`
printf " * $FILE "
test -f tarballs/$FILE && printf "(cached)" || (
FILE=`basename $ARCHIVE`
printf " * $FILE "
test -f tarballs/$FILE && printf "(cached)" || (
fi
printf "Unpacking and patching ... \n"
fi
printf "Unpacking and patching ... \n"
-for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS $GDB_PACKAGE $MINGW_PACKAGES; do
+for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS $GDB_PACKAGE $MINGW_PACKAGES IASL; do
archive=$PACKAGE"_ARCHIVE"
archive=${!archive}
dir=$PACKAGE"_DIR"
archive=$PACKAGE"_ARCHIVE"
archive=${!archive}
dir=$PACKAGE"_DIR"
test -r build-gdb/.failed && exit 1
fi
test -r build-gdb/.failed && exit 1
fi
+if [ -f $IASL_DIR/compiler/.success ]; then
+ printf "Skipping IASL as it is already built\n"
+else
+printf "Building IASL ${IASL_VERSION} ... "
+(
+ cd $IASL_DIR/compiler
+ export PATH=$PATH:$DESTDIR$TARGETDIR/bin
+ rm -f .failed
+ CFLAGS="$HOSTCFLAGS"
+ $MAKE || touch .failed
+ cp --remove-destination iasl* $DESTDIR$TARGETDIR/bin || touch .failed
+ if [ ! -f .failed ]; then touch .success; fi
+) &> $IASL_DIR/compiler/crossgcc-build.log
+test -r $IASL_DIR/compiler/.failed && printf "${RED}failed${NC}\n" || printf "${green}ok${NC}\n"
+test -r $IASL_DIR/compiler.failed && exit 1
+fi
+
if [ $SAVETEMPS -eq 0 ]; then
printf "Cleaning up... "
rm -rf ${GMP_DIR} build-gmp
if [ $SAVETEMPS -eq 0 ]; then
printf "Cleaning up... "
rm -rf ${GMP_DIR} build-gmp
rm -rf ${BINUTILS_DIR} build-binutils
rm -rf ${GCC_DIR} build-gcc
rm -rf ${GDB_DIR} build-gdb
rm -rf ${BINUTILS_DIR} build-binutils
rm -rf ${GCC_DIR} build-gcc
rm -rf ${GDB_DIR} build-gdb
printf "${green}ok${NC}\n"
else
printf "Leaving temporary files around... ${green}ok${NC}\n"
printf "${green}ok${NC}\n"
else
printf "Leaving temporary files around... ${green}ok${NC}\n"
+XGCCPATH="`pwd`/util/crossgcc/xgcc/bin/"
TMPFILE=`mktemp /tmp/temp.XXXX 2>/dev/null || echo /tmp/temp.78gOIUGz`
touch $TMPFILE
# This should be a loop over all supported architectures
TARCH=i386
TWIDTH=32
TMPFILE=`mktemp /tmp/temp.XXXX 2>/dev/null || echo /tmp/temp.78gOIUGz`
touch $TMPFILE
# This should be a loop over all supported architectures
TARCH=i386
TWIDTH=32
-for gccprefixes in `pwd`/util/crossgcc/xgcc/bin/${TARCH}-elf- ${TARCH}-elf- ""; do
+for gccprefixes in ${XGCCPATH}${TARCH}-elf- ${TARCH}-elf- ""; do
if ! which ${gccprefixes}as 2>/dev/null >/dev/null; then
continue
fi
if ! which ${gccprefixes}as 2>/dev/null >/dev/null; then
continue
fi
+if [ "`${XGCCPATH}/iasl 2>/dev/null | grep -c ACPI`" -gt 0 ]; then
+ IASL=${XGCCPATH}iasl
+else
+ IASL=iasl
+fi
+
cat << EOF
# elf${TWIDTH}-${TARCH} toolchain
AS:=${GCCPREFIX}as ${ASFLAGS}
cat << EOF
# elf${TWIDTH}-${TARCH} toolchain
AS:=${GCCPREFIX}as ${ASFLAGS}
OBJCOPY:=${GCCPREFIX}objcopy
OBJDUMP:=${GCCPREFIX}objdump
OBJCOPY:=${GCCPREFIX}objcopy
OBJDUMP:=${GCCPREFIX}objdump
# native toolchain
HOSTCC:=${HOSTCC}
EOF
# native toolchain
HOSTCC:=${HOSTCC}
EOF