Add stage 2 riscv-pk package, containing the Berkeley bootloader (bbl).
[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         stage2-riscv-pk/riscv-pk-927979c5.tar.gz \
44         stamp-riscv-pk-installed
45
46 stage2-riscv-gnu-toolchain/riscv-gnu-toolchain-1374381e.tar.gz:
47         rm -f $@ $@-t
48         wget -O $@-t https://github.com/lowRISC/riscv-gnu-toolchain/archive/1374381e01b30832581d65a56219388fe7d47584/riscv-gnu-toolchain-1374381e.tar.gz
49         mv $@-t $@
50
51 stage2-riscv-gnu-toolchain/binutils-2.26.tar.gz:
52         rm -f $@ $@-t
53         wget -O $@-t http://mirrors.kernel.org/gnu/binutils/binutils-2.26.tar.gz
54         mv $@-t $@
55
56 stage2-riscv-gnu-toolchain/gcc-6.1.0.tar.gz:
57         rm -f $@ $@-t
58         wget -O $@-t http://mirrors.kernel.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz
59         mv $@-t $@
60
61 stage2-riscv-gnu-toolchain/glibc-2.23.tar.gz:
62         rm -f $@ $@-t
63         wget -O $@-t http://mirrors.kernel.org/gnu/glibc/glibc-2.23.tar.gz
64         mv $@-t $@
65
66 stage2-riscv-gnu-toolchain/newlib-2.2.0.tar.gz:
67         rm -f $@ $@-t
68         wget -O $@-t ftp://sourceware.org/pub/newlib/newlib-2.2.0.tar.gz
69         mv $@-t $@
70
71 stamp-riscv-gnu-toolchain-installed:
72         rm -f $@
73         @rpm -q riscv-gnu-toolchain >/dev/null || { \
74           echo "ERROR: You must install riscv-gnu-toolchain:"; \
75           echo; \
76           echo "       dnf copr enable rjones/riscv"; \
77           echo "       dnf install riscv-gnu-toolchain"; \
78           echo; \
79           echo "OR: you can build it yourself from the stage2-riscv-gnu-toolchain directory."; \
80           echo; \
81           exit 1; \
82         }
83         @riscv64-unknown-elf-gcc --version || { \
84           echo "ERROR: riscv64-unknown-elf-gcc (cross compiler) is not working."; \
85           echo "Make sure you installed the riscv-gnu-toolchain package."; \
86           exit 1; \
87         }
88         touch $@
89
90 stage2-riscv-pk/riscv-pk-927979c5.tar.gz:
91         rm -f $@ $@-t
92         wget -O $@-t https://github.com/lowRISC/riscv-pk/archive/927979c5af6a69360b5dd61d3b17cd06ae73d1ac/riscv-pk-927979c5.tar.gz
93         mv $@-t $@
94
95 stamp-riscv-pk-installed:
96         rm -f $@
97         @rpm -q riscv-pk >/dev/null || { \
98           echo "ERROR: You must install riscv-pk:"; \
99           echo; \
100           echo "       dnf copr enable rjones/riscv"; \
101           echo "       dnf install riscv-pk"; \
102           echo; \
103           echo "OR: you can build it yourself from the stage2-riscv-pk directory."; \
104           echo; \
105           exit 1; \
106         }
107         touch $@
108
109 # Stage 3
110
111 stage3:
112         echo "XXX TO DO"
113         exit 1
114
115 # Stage 4
116
117 stage4:
118         echo "XXX TO DO"
119         exit 1
120
121 .NOTPARALLEL: