Skip to content

Commit 134a1b6

Browse files
authored
Raspberry Pi Toolchains v3.0 🚀 #35
Enhancements: 🎂 - Introducing OpenSourced build-scripts for auto-generating Toolchains under GPLv3 License: (resolve #32) - Implemented `RTBuilder_32b`: Raspberry Pi Toolchains Builder 32-bit script. - Implemented `RTBuilder_64b`: Raspberry Pi Toolchains Builder 64-bit script. - Introduced various user-friendly command-line parameters and helper function for scripts. - Introduced various environment variables for tweaking builds. - Replaced `GZIP` with `PIGZ` as TAR backend for faster parallel compressed builds. - Implemented powerful Github Actions Continuous Integration(CI) environments for generating precompiled Toolchains: (resolve #1) - Added new GitHub CI workflows for continuous integration with Github Action. - Added separate divided CI Native and Cross CLI ARM/ARM64 build-scripts to aid faster workflows. - Added support for various GCC versions, Models and Pi Oses. - Released Raspbian Buster(Debian 10) ARM/ARM64 Toolchains. (resolve #30) - Implemented multiple Linux build matrix for each job. - Implemented method to auto-deployer to deploy binaries & docs to the SourceForge server. - Added Patch and Utils scripts: - Implemented `curl_stfp_patcher`: CURL SFTP patcher script - Added `SF_deployer`: SourceForge deployer script - Added new bash utility script `SF_docs_deployer` for auto deploying docs to SourceForge Server - Updated Docs: - Added new `docs` directory for storing SourceForge README doc files. - Added docs files for build-scripts. - Reflected License in the bash code. - Revamped `README.md` with better readability. - Added new logos and badges. - Added descriptive and beautiful diagrams. - Added necessary updated information to docs. Bug Fixes: 🪲 🔨 - Fixed typos and missing definitions in build-scripts. - Removed *Obsolete Toolchain* Binaries. - Removed GCC `9.1.0` builds and other redundant versions from toolchains. - Refractored code and squashed bugs. - Removed redundant information from docs.
2 parents c6557e2 + c58bbac commit 134a1b6

31 files changed

+6592
-104
lines changed

Diff for: .github/workflows/builder_0_1.yml

+415
Large diffs are not rendered by default.

Diff for: .github/workflows/builder_2_3.yml

+406
Large diffs are not rendered by default.

Diff for: .github/workflows/builder_3_plus.yml

+405
Large diffs are not rendered by default.

Diff for: .github/workflows/builder_64.yml

+319
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,319 @@
1+
# ===============================================
2+
# Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project
3+
# provides latest automated GCC Cross Compiler & Native (ARM & ARM64)
4+
# build-scripts and precompiled standalone toolchains for Raspberry Pi.
5+
6+
7+
# Copyright (C) 2020 Abhishek Thakur(@abhiTronix) <[email protected]>
8+
9+
10+
# This program is free software: you can redistribute it and/or modify
11+
# it under the terms of the GNU General Public License as published by
12+
# the Free Software Foundation, either version 3 of the License, or
13+
# (at your option) any later version.
14+
15+
# This program is distributed in the hope that it will be useful,
16+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
# GNU General Public License for more details.
19+
20+
# You should have received a copy of the GNU General Public License
21+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
# ===============================================
23+
24+
name: CI Builder Pi[64]
25+
26+
on:
27+
# Trigger the workflow on push or pull request,
28+
# but only for the master branch
29+
push:
30+
branches:
31+
- master
32+
paths-ignore:
33+
- '**.md'
34+
pull_request:
35+
branches:
36+
- master
37+
release:
38+
branches:
39+
- master
40+
41+
env:
42+
CURL_VERSION: 7.68.0
43+
CCACHE_COMPRESS: 1
44+
CCACHE_DIR: $HOME/.ccache
45+
USER_SFTP: ${{ secrets.USER_SFTP }}
46+
PASSWORD_SFTP: ${{ secrets.PASSWORD_SFTP }}
47+
48+
jobs:
49+
builder-64_0:
50+
name: BASE GCC-6.3.0 Pi[64]
51+
runs-on: ubuntu-latest
52+
env:
53+
GCC_VERSION: 6.3.0
54+
RPI_TYPE: 64
55+
COMPILER_TYPE: CROSS
56+
BASE: true
57+
steps:
58+
- uses: actions/checkout@v2
59+
- name: before_install
60+
run: |
61+
sudo apt-get update -qq
62+
sudo apt-get install -qq dos2unix -y
63+
dos2unix build-scripts/CI/CIBB_64b
64+
chmod +x build-scripts/CI/CIBB_64b
65+
dos2unix patches/curl_stfp_patcher
66+
chmod +x patches/curl_stfp_patcher
67+
dos2unix utils/SF_deployer
68+
chmod +x utils/SF_deployer
69+
dos2unix utils/SF_docs_deployer
70+
chmod +x utils/SF_docs_deployer
71+
if: success()
72+
- name: install
73+
run: |
74+
sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget
75+
sudo /usr/sbin/update-ccache-symlinks
76+
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
77+
source ~/.bashrc && echo $PATH
78+
if: success()
79+
- name: script
80+
run: bash build-scripts/CI/CIBB_64b -g $GCC_VERSION
81+
shell: bash
82+
if: success() && github.event_name == 'pull_request' && github.head_ref == 'base'
83+
- name: before_script
84+
run: bash patches/curl_stfp_patcher
85+
shell: bash
86+
if: success()
87+
- name: after_success
88+
run: |
89+
mkdir -p $HOME/root
90+
cp docs/gcc64.md $HOME/root/README.md
91+
bash utils/SF_docs_deployer
92+
shell: bash
93+
if: success()
94+
- name: deploy
95+
run: bash utils/SF_deployer
96+
shell: bash
97+
if: success() && github.event_name == 'pull_request' && github.head_ref == 'base'
98+
builder-64_1:
99+
name: Cross GCC-9.2.0 Pi[64]
100+
needs: builder-64_0
101+
runs-on: ubuntu-latest
102+
env:
103+
GCC_VERSION: 9.2.0
104+
RPI_TYPE: 64
105+
COMPILER_TYPE: CROSS
106+
steps:
107+
- uses: actions/checkout@v2
108+
- name: before_install
109+
run: |
110+
sudo apt-get update -qq
111+
sudo apt-get install -qq dos2unix -y
112+
dos2unix build-scripts/CI/CICTB_64b
113+
chmod +x build-scripts/CI/CICTB_64b
114+
dos2unix patches/curl_stfp_patcher
115+
chmod +x patches/curl_stfp_patcher
116+
dos2unix utils/SF_deployer
117+
chmod +x utils/SF_deployer
118+
dos2unix utils/SF_docs_deployer
119+
chmod +x utils/SF_docs_deployer
120+
if: success()
121+
- name: install
122+
run: |
123+
sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget
124+
sudo /usr/sbin/update-ccache-symlinks
125+
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
126+
source ~/.bashrc && echo $PATH
127+
if: success()
128+
- name: script
129+
run: bash build-scripts/CI/CICTB_64b -g $GCC_VERSION
130+
shell: bash
131+
if: success()
132+
- name: before_script
133+
run: bash patches/curl_stfp_patcher
134+
shell: bash
135+
if: success()
136+
- name: after_success
137+
run: |
138+
cp docs/cross-gcc64.md $HOME/README.md
139+
bash utils/SF_docs_deployer
140+
shell: bash
141+
if: success()
142+
- name: deploy
143+
run: bash utils/SF_deployer
144+
shell: bash
145+
if: success() && github.event_name == 'release' && github.event.action == 'published'
146+
builder-64_1_0:
147+
name: Cross GCC-6.3.0 Pi[64]
148+
needs: builder-64_0
149+
runs-on: ubuntu-latest
150+
env:
151+
GCC_VERSION: 6.3.0
152+
RPI_TYPE: 64
153+
COMPILER_TYPE: CROSS
154+
steps:
155+
- uses: actions/checkout@v2
156+
- name: before_install
157+
run: |
158+
sudo apt-get update -qq
159+
sudo apt-get install -qq dos2unix -y
160+
dos2unix build-scripts/CI/CICTB_64b
161+
chmod +x build-scripts/CI/CICTB_64b
162+
dos2unix patches/curl_stfp_patcher
163+
chmod +x patches/curl_stfp_patcher
164+
dos2unix utils/SF_deployer
165+
chmod +x utils/SF_deployer
166+
dos2unix utils/SF_docs_deployer
167+
chmod +x utils/SF_docs_deployer
168+
if: success()
169+
- name: install
170+
run: |
171+
sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget
172+
sudo /usr/sbin/update-ccache-symlinks
173+
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
174+
source ~/.bashrc && echo $PATH
175+
if: success()
176+
- name: script
177+
run: bash build-scripts/CI/CICTB_64b -g $GCC_VERSION
178+
shell: bash
179+
if: success()
180+
- name: before_script
181+
run: bash patches/curl_stfp_patcher
182+
shell: bash
183+
if: success()
184+
- name: deploy
185+
run: bash utils/SF_deployer
186+
shell: bash
187+
if: success() && github.event_name == 'release' && github.event.action == 'published'
188+
builder-64_1_1:
189+
name: Cross GCC-8.3.0 Pi[64]
190+
needs: builder-64_0
191+
runs-on: ubuntu-latest
192+
env:
193+
GCC_VERSION: 8.3.0
194+
RPI_TYPE: 64
195+
COMPILER_TYPE: CROSS
196+
steps:
197+
- uses: actions/checkout@v2
198+
- name: before_install
199+
run: |
200+
sudo apt-get update -qq
201+
sudo apt-get install -qq dos2unix -y
202+
dos2unix build-scripts/CI/CICTB_64b
203+
chmod +x build-scripts/CI/CICTB_64b
204+
dos2unix patches/curl_stfp_patcher
205+
chmod +x patches/curl_stfp_patcher
206+
dos2unix utils/SF_deployer
207+
chmod +x utils/SF_deployer
208+
dos2unix utils/SF_docs_deployer
209+
chmod +x utils/SF_docs_deployer
210+
if: success()
211+
- name: install
212+
run: |
213+
sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget
214+
sudo /usr/sbin/update-ccache-symlinks
215+
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
216+
source ~/.bashrc && echo $PATH
217+
if: success()
218+
- name: script
219+
run: bash build-scripts/CI/CICTB_64b -g $GCC_VERSION
220+
shell: bash
221+
if: success()
222+
- name: before_script
223+
run: bash patches/curl_stfp_patcher
224+
shell: bash
225+
if: success()
226+
- name: deploy
227+
run: bash utils/SF_deployer
228+
shell: bash
229+
if: success() && github.event_name == 'release' && github.event.action == 'published'
230+
builder-64_2:
231+
name: Native GCC-9.2.0 Pi[64]
232+
needs: [builder-64_0, builder-64_1]
233+
runs-on: ubuntu-latest
234+
env:
235+
GCC_VERSION: 9.2.0
236+
RPI_TYPE: 64
237+
COMPILER_TYPE: NATIVE
238+
steps:
239+
- uses: actions/checkout@v2
240+
- name: before_install
241+
run: |
242+
sudo apt-get update -qq
243+
sudo apt-get install -qq dos2unix -y
244+
dos2unix build-scripts/CI/CINTB_64b
245+
chmod +x build-scripts/CI/CINTB_64b
246+
dos2unix patches/curl_stfp_patcher
247+
chmod +x patches/curl_stfp_patcher
248+
dos2unix utils/SF_deployer
249+
chmod +x utils/SF_deployer
250+
dos2unix utils/SF_docs_deployer
251+
chmod +x utils/SF_docs_deployer
252+
if: success()
253+
- name: install
254+
run: |
255+
sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget
256+
sudo /usr/sbin/update-ccache-symlinks
257+
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
258+
source ~/.bashrc && echo $PATH
259+
if: success()
260+
- name: script
261+
run: bash build-scripts/CI/CINTB_64b -g $GCC_VERSION
262+
shell: bash
263+
if: success()
264+
- name: before_script
265+
run: bash patches/curl_stfp_patcher
266+
shell: bash
267+
if: success()
268+
- name: after_success
269+
run: |
270+
cp docs/native-gcc64.md $HOME/README.md
271+
bash utils/SF_docs_deployer
272+
shell: bash
273+
if: success()
274+
- name: deploy
275+
run: bash utils/SF_deployer
276+
shell: bash
277+
if: success() && github.event_name == 'release' && github.event.action == 'published'
278+
builder-64_2_1:
279+
name: Native GCC-8.3.0 Pi[64]
280+
needs: [builder-64_0, builder-64_1_1]
281+
runs-on: ubuntu-latest
282+
env:
283+
GCC_VERSION: 8.3.0
284+
RPI_TYPE: 64
285+
COMPILER_TYPE: NATIVE
286+
steps:
287+
- uses: actions/checkout@v2
288+
- name: before_install
289+
run: |
290+
sudo apt-get update -qq
291+
sudo apt-get install -qq dos2unix -y
292+
dos2unix build-scripts/CI/CINTB_64b
293+
chmod +x build-scripts/CI/CINTB_64b
294+
dos2unix patches/curl_stfp_patcher
295+
chmod +x patches/curl_stfp_patcher
296+
dos2unix utils/SF_deployer
297+
chmod +x utils/SF_deployer
298+
dos2unix utils/SF_docs_deployer
299+
chmod +x utils/SF_docs_deployer
300+
if: success()
301+
- name: install
302+
run: |
303+
sudo apt-get -y install -qq gcc g++ gperf flex texinfo pigz gawk gfortran texinfo bison libncurses-dev ccache autoconf automake build-essential libssh2-1-dev openssl libcurl3 unzip wget
304+
sudo /usr/sbin/update-ccache-symlinks
305+
echo 'export PATH="/usr/lib/ccache:$PATH"' | tee -a ~/.bashrc
306+
source ~/.bashrc && echo $PATH
307+
if: success()
308+
- name: script
309+
run: bash build-scripts/CI/CINTB_64b -g $GCC_VERSION
310+
shell: bash
311+
if: success()
312+
- name: before_script
313+
run: bash patches/curl_stfp_patcher
314+
shell: bash
315+
if: success()
316+
- name: deploy
317+
run: bash utils/SF_deployer
318+
shell: bash
319+
if: success() && github.event_name == 'release' && github.event.action == 'published'

Diff for: LICENSE

+2-3
Original file line numberDiff line numberDiff line change
@@ -632,9 +632,8 @@ state the exclusion of warranty; and each file should have at least
632632
the "copyright" line and a pointer to where the full notice is found.
633633

634634
Raspberry Pi Toolchains(raspberry-pi-cross-compilers): This project
635-
provides Up-To-Date automated build-scripts along with precompiled
636-
latest GCC Cross & Native Compiler ARM/ARM64 Toolchain binaries
637-
for Raspberry Pi.
635+
provides latest automated GCC Cross Compiler & Native (ARM & ARM64)
636+
build-scripts and precompiled standalone toolchains for Raspberry Pi.
638637

639638
Copyright (C) 2020 Abhishek Thakur(@abhiTronix) <[email protected]>
640639

0 commit comments

Comments
 (0)