+ update to gcc-4.8.1
+ delete source files which failed the sha256 check
+ automatic parallel build of the toolchain
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
NEWLIB_TAR=newlib-$(NEWLIB_VER).tar.gz
NEWLIB_URL="ftp://sourceware.org/pub/newlib/$(NEWLIB_TAR)"
NEWLIB_TAR=newlib-$(NEWLIB_VER).tar.gz
NEWLIB_URL="ftp://sourceware.org/pub/newlib/$(NEWLIB_TAR)"
GCC_TAR=gcc-$(GCC_VER).tar.bz2
GCC_URL="http://mirrors.kernel.org/gnu/gcc/gcc-$(GCC_VER)/$(GCC_TAR)"
GCC_TAR=gcc-$(GCC_VER).tar.bz2
GCC_URL="http://mirrors.kernel.org/gnu/gcc/gcc-$(GCC_VER)/$(GCC_TAR)"
+JOBS?=$(shell grep -c ^processor /proc/cpuinfo)
+
BASEDIR=$(shell pwd)
define checksum
@if grep -q ' $(subst .,\.,$(1))$$' SHA256SUMS; then \
BASEDIR=$(shell pwd)
define checksum
@if grep -q ' $(subst .,\.,$(1))$$' SHA256SUMS; then \
- grep ' $(subst .,\.,$(1))$$' SHA256SUMS | sha256sum -c; \
+ grep ' $(subst .,\.,$(1))$$' SHA256SUMS | sha256sum -c || rm $(1); \
else \
echo "WARNING: no checksum defined for $(1)"; \
fi
endef
else \
echo "WARNING: no checksum defined for $(1)"; \
fi
endef
- wget -P src $(BINUTILS_URL)
+ wget -P "$(BASEDIR)/src" $(BINUTILS_URL)
$(call checksum,$@)
src/$(NEWLIB_TAR):
$(call checksum,$@)
src/$(NEWLIB_TAR):
- wget -P src $(NEWLIB_URL)
+ wget -P "$(BASEDIR)/src" $(NEWLIB_URL)
$(call checksum,$@)
src/$(GCC_TAR):
$(call checksum,$@)
src/$(GCC_TAR):
+ wget -P "$(BASEDIR)/src" $(GCC_URL)
$(call checksum,$@)
src/binutils-$(BINUTILS_VER): src/$(BINUTILS_TAR)
$(call checksum,$@)
src/binutils-$(BINUTILS_VER): src/$(BINUTILS_TAR)
+ tar -C "$(BASEDIR)/src" -xf $<
src/newlib-$(NEWLIB_VER): src/$(NEWLIB_TAR)
src/newlib-$(NEWLIB_VER): src/$(NEWLIB_TAR)
+ tar -C "$(BASEDIR)/src" -xf $<
src/gcc-$(GCC_VER): src/$(GCC_TAR) src/newlib-$(NEWLIB_VER)
src/gcc-$(GCC_VER): src/$(GCC_TAR) src/newlib-$(NEWLIB_VER)
+ tar -C "$(BASEDIR)/src" -xf $<
ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/newlib $@
ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/libgloss $@
binutils: src/binutils-$(BINUTILS_VER)
ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/newlib $@
ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/libgloss $@
binutils: src/binutils-$(BINUTILS_VER)
- mkdir -p build/binutils
- cd build/binutils; \
+ mkdir -p "$(BASEDIR)/build/binutils"
+ cd "$(BASEDIR)/build/binutils"; \
$(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst; \
$(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst; \
$(MAKE) install
gcc: src/gcc-$(GCC_VER) binutils
$(MAKE) install
gcc: src/gcc-$(GCC_VER) binutils
- mkdir -p build/gcc
- cd build/gcc; \
+ mkdir -p "$(BASEDIR)/build/gcc"
+ cd "$(BASEDIR)/build/gcc"; \
$(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst -enable-languages=c --without-pkgversion --with-newlib; \
$(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst -enable-languages=c --without-pkgversion --with-newlib; \
+ rm -rf "$(BASEDIR)/build" "$(BASEDIR)/inst"
+
+ rm -rf "$(BASEDIR)/src"
8a9283d7010fb9fe5ece3ca507e0af5c19412626384f8a5e9434251ae100b084 src/gcc-4.7.2.tar.bz2
49c29e9129325e7c3b221aa829743ddcd796d024440e47c80fc0d6769af72d8a src/newlib-2.0.0.tar.gz
b037fe5132b71ecad2ea7141ec92292b5d32427bf90fd90cde432b1d5abacc2c src/gcc-4.8.0.tar.bz2
8a9283d7010fb9fe5ece3ca507e0af5c19412626384f8a5e9434251ae100b084 src/gcc-4.7.2.tar.bz2
49c29e9129325e7c3b221aa829743ddcd796d024440e47c80fc0d6769af72d8a src/newlib-2.0.0.tar.gz
b037fe5132b71ecad2ea7141ec92292b5d32427bf90fd90cde432b1d5abacc2c src/gcc-4.8.0.tar.bz2
+545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813 src/gcc-4.8.1.tar.bz2