67 lines
1.6 KiB
Makefile
67 lines
1.6 KiB
Makefile
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
|