f8dd949286ae3c39f20a160b78a4a98de3511c54
[fedora-riscv.git] / Makefile
1 # Refer to the README file to understand how Fedora on RISC-V is
2 # bootstrapped.
3
4 all: stage1 stage2 stage3 stage4
5
6 # Stage 1
7
8 stage1: stage1-riscv-qemu/riscv-qemu-94f5eb73.tar.gz \
9         stamp-riscv-qemu-installed
10
11 stage1-riscv-qemu/riscv-qemu-94f5eb73.tar.gz:
12         rm -f $@ $@-t
13         wget -O $@-t 'https://github.com/riscv/riscv-qemu/archive/94f5eb73091fb4fe272db3e943f173ecc0f78ffd/riscv-qemu-94f5eb73.tar.gz'
14         mv $@-t $@
15
16 stamp-riscv-qemu-installed:
17         rm -f $@
18         @rpm -q riscv-qemu >/dev/null || { \
19           echo "ERROR: You must install riscv-qemu:"; \
20           echo; \
21           echo "       dnf copr enable rjones/riscv"; \
22           echo "       dnf install riscv-qemu"; \
23           echo; \
24           echo "OR: you can build it yourself from the stage1-riscv-qemu directory."; \
25           echo; \
26           exit 1; \
27         }
28         @qemu-system-riscv --version || { \
29           echo "ERROR: qemu-system-riscv is not working."; \
30           echo "Make sure you installed the riscv-qemu package."; \
31           exit 1; \
32         }
33         touch $@
34
35 # Stage 2
36
37 stage2: stage2-riscv-gnu-toolchain/riscv-gnu-toolchain-1374381e.tar.gz \
38         stage2-riscv-gnu-toolchain/binutils-2.26.tar.gz \
39         stage2-riscv-gnu-toolchain/gcc-6.1.0.tar.gz \
40         stage2-riscv-gnu-toolchain/glibc-2.23.tar.gz \
41         stage2-riscv-gnu-toolchain/newlib-2.2.0.tar.gz \
42         stamp-riscv-gnu-toolchain-installed
43
44 stage2-riscv-gnu-toolchain/riscv-gnu-toolchain-1374381e.tar.gz:
45         rm -f $@ $@-t
46         wget -O $@-t https://github.com/lowRISC/riscv-gnu-toolchain/archive/1374381e01b30832581d65a56219388fe7d47584/riscv-gnu-toolchain-1374381e.tar.gz
47         mv $@-t $@
48
49 stage2-riscv-gnu-toolchain/binutils-2.26.tar.gz:
50         rm -f $@ $@-t
51         wget -O $@-t http://mirrors.kernel.org/gnu/binutils/binutils-2.26.tar.gz
52         mv $@-t $@
53
54 stage2-riscv-gnu-toolchain/gcc-6.1.0.tar.gz:
55         rm -f $@ $@-t
56         wget -O $@-t http://mirrors.kernel.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz
57         mv $@-t $@
58
59 stage2-riscv-gnu-toolchain/glibc-2.23.tar.gz:
60         rm -f $@ $@-t
61         wget -O $@-t http://mirrors.kernel.org/gnu/glibc/glibc-2.23.tar.gz
62         mv $@-t $@
63
64 stage2-riscv-gnu-toolchain/newlib-2.2.0.tar.gz:
65         rm -f $@ $@-t
66         wget -O $@-t ftp://sourceware.org/pub/newlib/newlib-2.2.0.tar.gz
67         mv $@-t $@
68
69 stamp-riscv-gnu-toolchain-installed:
70         rm -f $@
71         @rpm -q riscv-gnu-toolchain >/dev/null || { \
72           echo "ERROR: You must install riscv-gnu-toolchain:"; \
73           echo; \
74           echo "       dnf copr enable rjones/riscv"; \
75           echo "       dnf install riscv-gnu-toolchain"; \
76           echo; \
77           echo "OR: you can build it yourself from the stage2-riscv-gnu-toolchain directory."; \
78           echo; \
79           exit 1; \
80         }
81         @riscv64-unknown-elf-gcc --version || { \
82           echo "ERROR: riscv64-unknown-elf-gcc (cross compiler) is not working."; \
83           echo "Make sure you installed the riscv-gnu-toolchain package."; \
84           exit 1; \
85         }
86         touch $@
87
88 # Stage 3
89
90 stage3:
91         echo "XXX TO DO"
92         exit 1
93
94 # Stage 4
95
96 stage4:
97         echo "XXX TO DO"
98         exit 1
99
100 .NOTPARALLEL: