| BINUTILS_VER=2.22 | 
 | BINUTILS_URL=http://mirrors.kernel.org/gnu/binutils/binutils-$(BINUTILS_VER).tar.bz2 | 
 | BINUTILS_TAR=binutils-$(BINUTILS_VER).tar.bz2 | 
 |  | 
 | NEWLIB_VER=1.20.0 | 
 | NEWLIB_URL=ftp://sources.redhat.com/pub/newlib/newlib-$(NEWLIB_VER).tar.gz | 
 | NEWLIB_TAR=newlib-$(NEWLIB_VER).tar.gz | 
 |  | 
 | GCC_VER=4.7.1 | 
 | GCC_URL=http://mirrors.kernel.org/gnu/gcc/gcc-$(GCC_VER)/gcc-$(GCC_VER).tar.bz2 | 
 | GCC_TAR=gcc-$(GCC_VER).tar.bz2 | 
 |  | 
 | BASEDIR=$(shell pwd) | 
 |  | 
 | define checksum | 
 | @if grep -q '  $(subst .,\.,$(1))$$' SHA256SUMS; then			\ | 
 | 	grep '  $(subst .,\.,$(1))$$' SHA256SUMS | sha256sum -c;	\ | 
 | else									\ | 
 | 	echo "WARNING: no checksum defined for $(1)";			\ | 
 | fi | 
 | endef | 
 |  | 
 | all: gcc | 
 |  | 
 | src/$(BINUTILS_TAR): | 
 | 	wget -P src $(BINUTILS_URL) | 
 | 	$(call checksum,$@) | 
 |  | 
 | src/$(NEWLIB_TAR): | 
 | 	wget -P src $(NEWLIB_URL) | 
 | 	$(call checksum,$@) | 
 |  | 
 | src/$(GCC_TAR): | 
 | 	wget -P src $(GCC_URL) | 
 | 	$(call checksum,$@) | 
 |  | 
 | src/binutils-$(BINUTILS_VER): src/$(BINUTILS_TAR) | 
 | 	tar -C src -xjf $< | 
 |  | 
 | src/newlib-$(NEWLIB_VER): src/$(NEWLIB_TAR) | 
 | 	tar -C src -xzf $< | 
 |  | 
 | src/gcc-$(GCC_VER): src/$(GCC_TAR) src/newlib-$(NEWLIB_VER) | 
 | 	tar -C src -xjf $< | 
 | 	ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/newlib $@ | 
 | 	ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/libgloss $@ | 
 |  | 
 | binutils: src/binutils-$(BINUTILS_VER) | 
 | 	install -d build/binutils | 
 | 	cd build/binutils; \ | 
 | 	$(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst; \ | 
 | 	$(MAKE) -j3; \ | 
 | 	$(MAKE) install | 
 |  | 
 | gcc: src/gcc-$(GCC_VER) binutils | 
 | 	install -d build/gcc | 
 | 	cd build/gcc; \ | 
 | 	$(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst -enable-languages=c --without-pkgversion --with-newlib; \ | 
 | 	$(MAKE) -j3; \ | 
 | 	$(MAKE) install | 
 |  | 
 | clean: | 
 | 	rm -rf build inst | 
 |  | 
 | distclean: clean | 
 | 	rm -rf src |