Merge branch 'master' of git://github.com/chunkeey/carl9170fw
[carl9170fw.git] / toolchain / Makefile
1 BINUTILS_VER=2.22
2 BINUTILS_URL=http://mirrors.kernel.org/gnu/binutils/binutils-$(BINUTILS_VER).tar.bz2
3 BINUTILS_TAR=binutils-$(BINUTILS_VER).tar.bz2
4
5 NEWLIB_VER=1.20.0
6 NEWLIB_URL=ftp://sources.redhat.com/pub/newlib/newlib-$(NEWLIB_VER).tar.gz
7 NEWLIB_TAR=newlib-$(NEWLIB_VER).tar.gz
8
9 GCC_VER=4.7.2
10 GCC_URL=http://mirrors.kernel.org/gnu/gcc/gcc-$(GCC_VER)/gcc-$(GCC_VER).tar.bz2
11 GCC_TAR=gcc-$(GCC_VER).tar.bz2
12
13 BASEDIR=$(shell pwd)
14
15 all: gcc
16
17 src/$(BINUTILS_TAR):
18         wget -P src $(BINUTILS_URL)
19
20 src/$(NEWLIB_TAR):
21         wget -P src $(NEWLIB_URL)
22
23 src/$(GCC_TAR):
24         wget -P src $(GCC_URL)
25
26 src/binutils-$(BINUTILS_VER): src/$(BINUTILS_TAR)
27         tar -C src -xjf $<
28
29 src/newlib-$(NEWLIB_VER): src/$(NEWLIB_TAR)
30         tar -C src -xzf $<
31
32 src/gcc-$(GCC_VER): src/$(GCC_TAR) src/newlib-$(NEWLIB_VER)
33         tar -C src -xjf $<
34         ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/newlib $@
35         ln -s $(BASEDIR)/src/newlib-$(NEWLIB_VER)/libgloss $@
36
37 binutils: src/binutils-$(BINUTILS_VER)
38         mkdir -p build/binutils
39         cd build/binutils; \
40         $(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst; \
41         $(MAKE) -j3; \
42         $(MAKE) install
43
44 gcc: src/gcc-$(GCC_VER) binutils
45         mkdir -p build/gcc
46         cd build/gcc; \
47         $(BASEDIR)/$</configure --target=sh-elf --prefix=$(BASEDIR)/inst -enable-languages=c --without-pkgversion --with-newlib; \
48         $(MAKE) -j3; \
49         $(MAKE) install
50
51 clean:
52         rm -rf build inst
53
54 distclean: clean
55         rm -rf src