You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.6 KiB
66 lines
1.6 KiB
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) |
|
mkdir -p build/binutils |
|
cd build/binutils; \ |
|
$(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst; \ |
|
$(MAKE) -j3; \ |
|
$(MAKE) install |
|
|
|
gcc: src/gcc-$(GCC_VER) binutils |
|
mkdir -p 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
|
|
|