Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various changes and improvements. #25

Open
wants to merge 535 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
535 commits
Select commit Hold shift + click to select a range
5eb67d5
patch binutils to remove dependency on byteswap.h [fixes #15]
jwt27 Feb 4, 2020
b9cf9f8
fix installing simulavr
jwt27 Feb 4, 2020
6b5a0ed
upgrade bash for OSX target on travis.
jwt27 Feb 4, 2020
d761168
fix typo in build-avr.sh
jwt27 Feb 4, 2020
924a724
patch avarice to fix invalid type conversion
jwt27 Feb 4, 2020
4d2b8fd
run test builds on Github Actions.
jwt27 Feb 4, 2020
cd7b2a3
fix avarice patch
jwt27 Feb 4, 2020
ff188c7
change links to build status in readme.
jwt27 Feb 5, 2020
4470c70
add djgpp patches from comcom32 project
stsp Oct 4, 2019
63533b4
update djgpp patch
stsp Oct 4, 2019
8de8790
add command line option: --only-download
jwt27 Feb 4, 2020
62e5c87
make --no-download also apply to git clones.
jwt27 Feb 5, 2020
d4afd77
move misc files from root directory to script/
jwt27 Feb 5, 2020
938427c
check if curl/wget is installed when --only-download is given. skip t…
jwt27 Feb 5, 2020
16ee10d
only test compilers if gcc is successfully installed.
jwt27 Feb 5, 2020
819df8a
move setenv script to $PREFIX/bin/setenv-$TARGET
jwt27 Feb 5, 2020
1f605ff
add options: --ignore-dependencies and --batch
jwt27 Feb 5, 2020
b3124a6
document command line options --prefix and --target
jwt27 Feb 5, 2020
0c4e8b5
test c++ compiler with c file so it doesn't rely on <iostream>
jwt27 Feb 5, 2020
223a389
fail if c compiler does not work.
jwt27 Feb 5, 2020
b3df3dc
reset and checkout git repos even if --no-download is given.
jwt27 Feb 6, 2020
8ebaf3b
rebuild djgpp if configuration parameters change.
jwt27 Feb 6, 2020
542cb8b
download and unpack gcc dependencies separately
jwt27 Feb 6, 2020
9c04f20
add option --enable-languages=...
jwt27 Feb 7, 2020
adc6288
fix setenv script for windows cmd, as it is now moved to $PREFIX/bin/…
jwt27 Feb 7, 2020
b7f1833
warn user if setenv script is not called with source.
jwt27 Feb 7, 2020
e79cb76
update readme
jwt27 Feb 7, 2020
9b439c0
default to isl version 0.21 when using clang.
jwt27 Feb 7, 2020
cda01e5
clean up test script
jwt27 Feb 7, 2020
67d305a
do not download clang/llvm to test ubuntu build.
jwt27 Feb 7, 2020
eed33ab
move dependency checks to check-deps-and-confirm.sh
jwt27 Feb 8, 2020
1d360d4
proceed in batch mode if sudo is needed, but does not require a passw…
jwt27 Feb 8, 2020
87c7fa0
download git sources in download.sh
jwt27 Feb 8, 2020
af592f8
clean up package version files and clear unnecessary executable bits.
jwt27 Feb 8, 2020
2aa6db8
implement DESTDIR support
jwt27 Feb 6, 2020
067c707
add gdb 9.1
jwt27 Feb 8, 2020
c9d0532
update readme
jwt27 Feb 8, 2020
9e8cab0
merge mkdirs.sh into download.sh
jwt27 Feb 8, 2020
4196c76
merge parse-args.sh into init.sh
jwt27 Feb 8, 2020
39cfccd
split tests into separate download and build steps.
jwt27 Feb 8, 2020
a4e0a14
re-clone git sources if remote url does not match
jwt27 Feb 8, 2020
e844d30
cache sources and dependencies in test builds.
jwt27 Feb 8, 2020
ab9d491
make sources cache in test builds os-dependent.
jwt27 Feb 8, 2020
5642098
retry if download fails.
jwt27 Feb 8, 2020
96840fa
use custom cache action in test builds.
jwt27 Feb 8, 2020
3b1d2ad
use ::set-env to export variables in workflow script.
jwt27 Feb 9, 2020
50b78bc
clear package caches in test builds and always save a new action cache
jwt27 Feb 9, 2020
a15e055
fix instances where exit is called from a subshell.
jwt27 Feb 9, 2020
9b00198
exit if tar fails
jwt27 Feb 9, 2020
931ac50
test both clean builds and rebuilds.
jwt27 Feb 9, 2020
9329955
run test builds every 6 days.
jwt27 Feb 9, 2020
9fc346a
add 'rebuild if uncached' step in workflow.
jwt27 Feb 9, 2020
c81eff6
don't change prefix for rebuild tests.
jwt27 Feb 9, 2020
2044d20
add patch to prevent overriding CFLAGS in djgpp libc.
jwt27 Feb 10, 2020
4f90e01
copy all executables installed by gcc and binutils from long-name to …
jwt27 Feb 10, 2020
c53d8e0
install mpfr to temporary directory
jwt27 Feb 10, 2020
66aaabb
suppress errors from make zoneinfo.
jwt27 Feb 10, 2020
648ba9d
install info/man files in target directory too.
jwt27 Feb 10, 2020
1ed6ef3
don't test rebuilds for now
jwt27 Feb 10, 2020
c67c109
clone git sources in download/ and link to them from build/
jwt27 Feb 10, 2020
8e573d5
use MAKE_J as alias for 'make -jN -Otarget'
jwt27 Feb 11, 2020
2593440
only use 'make -Otarget' if not running on macos.
jwt27 Feb 11, 2020
f670ba0
set CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET in init.sh
jwt27 Feb 11, 2020
c69cc94
set LDFLAGS for building djgpp
jwt27 Feb 11, 2020
93bfe4e
fix creating manpages directory.
jwt27 Feb 11, 2020
a2a6d0e
test builds: clear git sources before caching
jwt27 Feb 11, 2020
4d4296f
Revert "fix creating manpages directory."
jwt27 Feb 11, 2020
0e6d939
add shebang line in setenv script
jwt27 Feb 12, 2020
4c0a4f2
set default djgpp TARGET to i386-pc-msdosdjgpp.
jwt27 Aug 16, 2018
e55fc3c
change tests builds to i386-pc-msdosdjgpp
jwt27 Feb 12, 2020
a233476
add link-i586 script for *-pc-msdosdjgpp targets
jwt27 Feb 12, 2020
1912cf2
fix link-i586 script
jwt27 Feb 12, 2020
4e1288e
update readme
jwt27 Feb 12, 2020
275fc5f
support loading git sources from tar file.
jwt27 Feb 13, 2020
4a92c0d
debian package system
jwt27 Feb 13, 2020
c04e151
deploy ubuntu ppa.
jwt27 Feb 13, 2020
d01c6f1
pack git sources into tar files.
jwt27 Feb 13, 2020
30a47be
fix package names in debian/control file
jwt27 Feb 13, 2020
04e3347
release ppa for multiple ubuntu versions
jwt27 Feb 13, 2020
7a91f7e
drop ppa support for xenial
jwt27 Feb 13, 2020
8ea9b93
remove binutils-djgpp package for focal
jwt27 Feb 13, 2020
c648e6e
make gcc-djgpp in focal depend on 2.34-3ubuntu1+1.4.
jwt27 Feb 29, 2020
8c29c75
use empty DESTDIR for temporarily installed tools.
jwt27 Feb 29, 2020
2b3f2f9
simplify msys2 pacman command in readme
jwt27 Feb 29, 2020
c4f0a27
run test builds every 14 days.
jwt27 Feb 29, 2020
d522c91
download gcc dependencies separately only if --build-deb is given. us…
jwt27 Feb 29, 2020
ad68184
add lto to default enable-languages option.
jwt27 Feb 29, 2020
a37faf9
add binutils 2.34 for djgpp
jwt27 Mar 10, 2020
da41f14
mv ppa signing key to /tmp
jwt27 Mar 10, 2020
e796232
use if statement to suppress error on deploy
jwt27 Mar 10, 2020
d42ad88
add gcc 9.3.0
jwt27 May 3, 2020
a555bf3
run test builds once a month
jwt27 May 3, 2020
93d9541
patch djgpp gcc 9.3 and binutils 2.34 to use "b" flag for named bss s…
jwt27 May 5, 2020
3cce512
update debian changelog
jwt27 May 5, 2020
ff2cff0
select correct djgpp version when upgrading gcc
jwt27 May 5, 2020
d43c101
patch djgpp ldscript to link .bss.* back in .bss
jwt27 May 5, 2020
bcd9ce3
update readme
jwt27 May 5, 2020
6bb6fd0
drop PPA for disco, launchpad no longer accepts new packages for it
jwt27 May 5, 2020
2bc2f8e
add PPA for Ubuntu Groovy
jwt27 May 6, 2020
f2b1d0d
always rebuild libc when rebuilding gcc
jwt27 May 8, 2020
090e262
add option --no-git-reset
jwt27 May 9, 2020
fac55a6
add gcc 10.1
jwt27 May 8, 2020
050b4a9
add cmake in test build dependencies
jwt27 May 9, 2020
539ae0b
fix syntax error in sed expression
jwt27 May 9, 2020
5d5747c
update readme
jwt27 May 9, 2020
882eb4a
remove patch for gcc 10 which has been merged in djcross-gcc
jwt27 May 25, 2020
15a135d
add gcc 10.2
jwt27 Jul 30, 2020
e6c15f5
add gdb 9.2
jwt27 Jul 30, 2020
98e62e0
configure gdb 8 and earlier to use python2
jwt27 Aug 9, 2020
f33678d
add gdb 10.1
jwt27 Nov 2, 2020
b26a9e6
add binutils 2.35.1
jwt27 Nov 2, 2020
741fe00
add binutils 2.35.1 for djgpp
jwt27 Nov 2, 2020
a89a7ae
disable scheduled test builds
jwt27 Nov 2, 2020
0206bed
remove build status icon
jwt27 Nov 2, 2020
5546cd8
update test build dependencies
jwt27 Nov 2, 2020
b68972d
init gpg homedir before importing key
jwt27 Nov 2, 2020
49bec9c
drop ubuntu eoan build
jwt27 Nov 2, 2020
7a79959
build ppa for ubuntu hirsute (fixes #19)
jwt27 Nov 20, 2020
bff1a18
remove package installation example for mingw32
jwt27 Feb 2, 2021
9a08c72
list python headers dependency for gdb
jwt27 Feb 2, 2021
d2f9bd2
add newlib 4.0.0 and 4.1.0
jwt27 Feb 2, 2021
3ed539e
add binutils 2.35.2 and 2.36
jwt27 Feb 2, 2021
0779c92
add binutils 2.36.1
jwt27 Apr 30, 2021
7f7933c
build ppa for ubuntu impish (fixes #23)
jwt27 Jun 14, 2021
a1e3781
add binutils 2.37
jwt27 Aug 28, 2021
629fcd5
add gcc 10.3.0
jwt27 Nov 10, 2021
fc21542
add gdb 10.2 and 11.1
jwt27 Nov 10, 2021
0d77dc2
fix dead link
jwt27 Nov 10, 2021
0465881
drop ppa for ubuntu groovy
jwt27 Nov 10, 2021
91264c4
build ppa for ubuntu jammy
jwt27 Nov 10, 2021
402ca5a
sync ia16 configure flags with tkchia/build-ia16 (fixes #24)
jwt27 Feb 7, 2022
a4ddcc2
run ubuntu test builds with gcc-11
jwt27 Feb 7, 2022
ff63e88
install help2man in test builds
jwt27 Feb 7, 2022
cb2d293
install python2-dev in test builds
jwt27 Feb 7, 2022
e081c75
add binutils 2.38
jwt27 Feb 15, 2022
9393afd
update pgp key
jwt27 Feb 15, 2022
81da64f
drop PPA for ubuntu hirsute
jwt27 Feb 15, 2022
e57d2cf
update readme
jwt27 Feb 15, 2022
468c285
fix simulavr build
jwt27 Feb 15, 2022
a495750
fix simulavr parallel build
jwt27 Feb 15, 2022
6a4d3df
add avr-libc 2.1.0, avrdude 6.4, avarice 2.14
jwt27 Feb 15, 2022
4f7ba27
fix avarice build
jwt27 Feb 15, 2022
5eb25c0
add gcc 11.1.0, 11.2.0
jwt27 Feb 16, 2022
5e2ceec
add Watt-32 package
jwt27 Mar 9, 2022
9d114d0
include watt32 in test builds
jwt27 Mar 9, 2022
6bab950
install nasm for test builds
jwt27 Mar 9, 2022
6bafae8
rename directory for watt32 errno files
jwt27 Mar 9, 2022
23baa94
patch watt32 makefile to build on windows
jwt27 Mar 9, 2022
9365c63
allow empty CFLAGS_FOR_TARGET
jwt27 Mar 9, 2022
dcc5c09
new and improved method to store installed package versions
jwt27 Mar 10, 2022
066de6b
use forward slashes in gcc specs file
jwt27 Mar 10, 2022
2a480f9
remove specs file before building libc or watt32
jwt27 Mar 10, 2022
8ab4199
fix ownership and permissions of installed files
jwt27 Mar 11, 2022
09f70eb
add binutils as dependency for watt32
jwt27 Mar 11, 2022
6263970
silence identical file warnings
jwt27 Mar 11, 2022
d9dad56
update watt-32 build procedure
jwt27 Mar 11, 2022
ae23004
no need to force a libc rebuild on compiler upgrade
jwt27 Mar 11, 2022
5fe314d
add 'watt32' to 'all'
jwt27 Mar 11, 2022
88de695
use octal umask
jwt27 Mar 11, 2022
427ecff
patch std::errc to use Watt-32 error codes
jwt27 Mar 14, 2022
60df06f
add gcc option -mno-watt to disable Watt-32 include path
jwt27 Mar 15, 2022
69a4e3e
set WATT_ROOT in setenv.cmd with regular slash and no quotes
jwt27 Mar 15, 2022
a8de123
reduce code duplication
jwt27 Mar 16, 2022
329e480
fix typo in specs file
jwt27 Mar 16, 2022
8c5ebaf
compile target libraries with -ffunction-sections -fdata-sections
jwt27 Mar 16, 2022
27eb25f
add debian package for Watt-32
jwt27 Mar 9, 2022
07127cf
always rebuild watt32 tools on non-amd64 or non-linux platforms.
jwt27 Mar 16, 2022
c7ca0f2
remove gcc specs option (doesn't work)
jwt27 Mar 17, 2022
4581cb7
remove merged watt32 patch
jwt27 Mar 17, 2022
a40f150
silence warning on Mac
jwt27 Mar 17, 2022
326af40
add gdb 11.2, 12.1
jwt27 May 2, 2022
71345cc
build PPA for ubuntu kinetic [fixes #26]
jwt27 May 2, 2022
515d0ba
update readme
jwt27 May 2, 2022
dfda7c1
update default gdb version
jwt27 May 16, 2022
4e31477
add gcc 12.1.0
jwt27 May 23, 2022
47ac443
drop --always-make flag for watt32 utils
jwt27 May 23, 2022
e056685
set pkg-config path in setenv script
jwt27 May 23, 2022
d53af9b
list M4 as dependency
jwt27 May 28, 2022
c1e2774
use msys2 perl on mingw-w64 (fixes #27)
jwt27 Aug 11, 2022
9530ad0
Update README.md
May 31, 2022
d7a173f
list dos2unix dependency for fedora/msys2
jwt27 Aug 11, 2022
8c9b990
debian: use separate version numbers for binary packages
jwt27 Aug 15, 2022
f3c4ed9
drop PPA for ubuntu Impish
jwt27 Aug 15, 2022
93e4a35
correct bash path in debian/rules
jwt27 Aug 15, 2022
1732d1a
keep ubuntu release name in binary package version numbers
jwt27 Aug 15, 2022
2b49051
make djgpp-cvs the default version
jwt27 Aug 15, 2022
c890514
enhance setenv script
jwt27 Aug 16, 2022
940d915
add gcc 12.2.0
jwt27 Aug 23, 2022
0d0d5a8
add binutils 2.39
jwt27 Aug 23, 2022
e1e6a87
export {C,CXX}FLAGS_FOR_TARGET
jwt27 Sep 18, 2022
b116866
improve debian package system
jwt27 Sep 17, 2022
cc01ee2
debian: configure gcc with --libexecdir=/usr/lib
jwt27 Sep 18, 2022
a199e7f
debian: add convenience package 'djgpp'
jwt27 Sep 18, 2022
dafe7f3
debian: install documentation in exec-prefix
jwt27 Sep 18, 2022
0d4c453
debian: drop 'extra' packages and install their contents in exec-prefix
jwt27 Sep 19, 2022
97458ce
debian: add convenience package 'djgpp-doc'
jwt27 Sep 19, 2022
78753af
add variable to pass options to all autotools configure scripts
jwt27 Sep 19, 2022
48596c4
debian: set environment vars from dpgk-buildflags
jwt27 Sep 21, 2022
aab3dbc
debian: remove hyphens from package version numbers
jwt27 Sep 21, 2022
2fd53ee
prevent accidentally uploading unreleased packages
jwt27 Sep 24, 2022
7a8152e
debian: move meta-packages to new repo
jwt27 Sep 24, 2022
dbdb0bc
search for libraries in ${EXEC_PREFIX}/local/
jwt27 Sep 24, 2022
210a9a9
debian: remove pgp key before build
jwt27 Sep 24, 2022
e64f107
debian: fix stupid build error
jwt27 Sep 25, 2022
10d9fec
debian: add virtual packages for gcc and libc
jwt27 Sep 28, 2022
20a7874
debian: set architecture for doc packages to 'all'
jwt27 Sep 28, 2022
4de66c2
update go32 stub in binutils to match libc version
jwt27 Nov 20, 2022
ec3d79c
actions: use checkout@v3
jwt27 Dec 5, 2022
fa47c32
build ppa for ubuntu lunar [fixes: #31]
jwt27 Dec 5, 2022
c115432
release debian package v9
jwt27 Dec 5, 2022
35ae864
run test builds with gcc 12
jwt27 Dec 5, 2022
f260f8a
actions: use cache@v3
jwt27 Dec 5, 2022
71a881f
use ccache in test builds
jwt27 Dec 5, 2022
7aceaf1
actions: use GITHUB_PATH
jwt27 Dec 5, 2022
40cbd08
fix gcc specs file path
jwt27 Dec 5, 2022
1ba0f33
actions: fix ccache dir
jwt27 Dec 5, 2022
66720ae
fix stupid typo in readme
jwt27 Dec 17, 2022
e95b543
Add missing nasm dependency
cwwcww Feb 26, 2023
2d331b7
mention dxe3gen 1.0.5
jwt27 Apr 4, 2023
d2bfc4d
list `which` as dependency on fedora [#33]
jwt27 Apr 4, 2023
9a0083b
add gdb 13.1
jwt27 Apr 4, 2023
ae57313
add binutils 2.40
jwt27 Apr 4, 2023
60708b6
list available packages if none are given, without counting options
jwt27 Apr 8, 2023
1629582
add newlib 4.2.0, 4.3.0
jwt27 Apr 8, 2023
ec552ae
add avrdude 7.0
jwt27 Apr 8, 2023
a8aca0e
reword
jwt27 Apr 8, 2023
f3b70ba
rename meta-package 'default' -> 'minimal'
jwt27 Apr 8, 2023
8ecffc5
add 'all'/'minimal' packages for all targets
jwt27 May 18, 2023
ccdf210
build PPA for Ubuntu Mantic
jwt27 May 18, 2023
2ff1d9b
release debian package v10
jwt27 May 18, 2023
857bb1a
update watt32 errno lists
jwt27 Jun 30, 2023
ad50164
add -mtune=pentium in debian build
jwt27 Jul 6, 2023
b78ddaf
install wrapper script for pkg-config
jwt27 Jul 6, 2023
1919e91
mention libc patch
jwt27 Jul 6, 2023
db60756
ensure old specs file is removed before build
jwt27 Jul 10, 2023
a301974
remove unused var BUILD_DXEGEN
jwt27 Jul 20, 2023
1cc8961
build PPA for Ubuntu Noble
jwt27 Oct 29, 2023
9ec3bf7
fix setting CXXFLAGS_FOR_TARGET
jwt27 Oct 29, 2023
4fffc51
add binutils 2.41
jwt27 Oct 29, 2023
7fdf00d
fix building zic.exe
jwt27 Oct 29, 2023
b9a1276
release debian package v11
jwt27 Oct 29, 2023
8895d28
drop PPA for Ubuntu Kinetic
jwt27 Oct 29, 2023
d449b69
use new syntax for workflow outputs
jwt27 Oct 29, 2023
c760da7
pull gcc dependencies from ftpmirror.gnu.org
jwt27 Nov 13, 2023
9fad7f8
update gcc dependencies
jwt27 Nov 13, 2023
c9d5c7d
no need for a separate function here
jwt27 Nov 13, 2023
8dce76c
set 'Architecture: all' for library packages
jwt27 Nov 13, 2023
d11f5b3
export flags variables
jwt27 Dec 30, 2023
e7135d2
define WIN32_LEAN_AND_MEAN on mingw
jwt27 Dec 30, 2023
2705fa2
define WIN32_LEAN_AND_MEAN only while compiling gcc
jwt27 Jan 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitattributes
@@ -0,0 +1,2 @@
* text=auto
* eol=lf
69 changes: 69 additions & 0 deletions .github/workflows/deploy.yml
@@ -0,0 +1,69 @@
name: Deploy PPA

on:
push:
branches: djgpp-ppa

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
ubuntu-version: [ bionic, focal, impish, jammy ]

steps:
- uses: actions/checkout@v2

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install curl git debhelper devscripts dput gpg

- name: Download sources
run: |
./build-djgpp.sh --batch --build-deb --only-download --ignore-dependencies djgpp-cvs binutils gcc gdb

- name: Pack git sources
run: |
find download/*/* ! -wholename '*/.git/*' -delete || true
cd download/
for DIR in */; do
DIR=${DIR%/}
tar -c -f $DIR-git.tar $DIR
done
rm -rf */

- name: Setup package files
env:
UBUNTU_VERSION: ${{ matrix.ubuntu-version }}
run: |
mv debian/Makefile .
mv debian/pgp-secret.asc /tmp/
sed -i "s/UBUNTU_VERSION/$UBUNTU_VERSION/g" debian/changelog
if [ -d debian/$UBUNTU_VERSION ]; then cp debian/$UBUNTU_VERSION/* debian/; fi

- name: Make source package
run: |
debuild -S -us -uc -d

- name: Import signing key
env:
DECRYPT_KEY: ${{ secrets.DECRYPT_KEY }}
run: |
gpg --batch -k > /dev/null
gpg --batch --quiet --passphrase "$DECRYPT_KEY" -d /tmp/pgp-secret.asc | gpg --batch --import
rm -f /tmp/pgp-secret.asc
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 197C3D6E652B6B1C2B7F9EDF84089D0351487AB8

- name: Sign package
run: |
debsign -k197C3D6E652B6B1C2B7F9EDF84089D0351487AB8 ../*.changes

- name: Delete key
if: always()
run: |
sudo shred -fu $(gpgconf --list-dirs | grep homedir | sed 's/homedir://')/priv*/*

- name: Upload package
run: |
dput ppa:jwt27/djgpp-toolchain ../*.changes
148 changes: 148 additions & 0 deletions .github/workflows/main.yml
@@ -0,0 +1,148 @@
name: Test builds

on:
push:
branches-ignore: djgpp-ppa
pull_request:

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest ]
build-type: [ clean ]
env:
-
TARGET: i386-pc-msdosdjgpp
PACKAGES: binutils gcc djgpp-2.05 watt32
-
TARGET: i386-pc-msdosdjgpp
PACKAGES: binutils gcc djgpp-cvs watt32
-
TARGET: i386-pc-msdosdjgpp
PACKAGES: gdb
-
TARGET: arm-eabi
PACKAGES: binutils gcc newlib
-
TARGET: arm-eabi
PACKAGES: gdb
-
TARGET: avr
PACKAGES: binutils gcc avr-libc
-
TARGET: avr
PACKAGES: gdb avarice simulavr avrdude
-
TARGET: ia16-elf
PACKAGES: binutils gcc newlib

steps:
- uses: actions/checkout@v2

- name: Clear apt package cache
if: contains(matrix.os, 'ubuntu')
run: |
sudo apt-get clean

- name: Clear brew package cache
if: contains(matrix.os, 'macos')
run: |
rm -rf $(brew --cache)

- name: Cache apt package lists
uses: jwt27/cache@dist
if: contains(matrix.os, 'ubuntu')
with:
path: /var/lib/apt/lists
key: testbuild-apt-lists-${{ github.sha }}
restore-keys: |
testbuild-apt-lists-

- name: Cache apt package cache
uses: jwt27/cache@dist
if: contains(matrix.os, 'ubuntu')
with:
path: /var/cache/apt
key: testbuild-apt-cache-${{ github.sha }}
restore-keys: |
testbuild-apt-cache-

- name: Cache brew package cache
uses: jwt27/cache@dist
if: contains(matrix.os, 'macos')
with:
path: ~/Library/Caches/Homebrew
key: testbuild-brew-cache-${{ github.sha }}
restore-keys: |
testbuild-brew-cache-

- name: Install dependencies (ubuntu)
if: contains(matrix.os, 'ubuntu')
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install bison flex curl make texinfo zlib1g-dev tar bzip2 gzip xz-utils unzip dos2unix libtool-bin gcc-11 g++-11 cmake help2man python2-dev nasm
echo "CC=gcc-11" >> $GITHUB_ENV
echo "CXX=g++-11" >> $GITHUB_ENV

- name: Install dependencies (macos)
if: contains(matrix.os, 'macos')
run: |
brew update
brew install bash bison flex curl make texinfo zlib bzip2 gzip xz unzip dos2unix libtool cmake help2man nasm

- name: Cache sources
uses: jwt27/cache@dist
with:
path: download
key: testbuild-sources-${{ matrix.os }}-${{ matrix.env.TARGET }}-${{ matrix.env.PACKAGES }}-${{ github.sha }}
restore-keys: |
testbuild-sources-${{ matrix.os }}-${{ matrix.env.TARGET }}-${{ matrix.env.PACKAGES }}-

- name: Download sources
env:
TARGET: ${{ matrix.env.TARGET }}
PACKAGES: ${{ matrix.env.PACKAGES }}
run: ./script/select-script.sh --only-download

- name: Cache build output
uses: jwt27/cache@dist
if: matrix.build-type == 'rebuild'
id: cache-build
with:
path: build
key: testbuild-build-${{ matrix.os }}-${{ matrix.env.TARGET }}-${{ matrix.env.PACKAGES }}-${{ github.sha }}
restore-keys: |
testbuild-build-${{ matrix.os }}-${{ matrix.env.TARGET }}-${{ matrix.env.PACKAGES }}-

- name: Clean build
if: matrix.build-type == 'clean'
env:
TARGET: ${{ matrix.env.TARGET }}
run: ./script/select-script.sh --no-download --prefix=${{ github.workspace }}-${{ github.sha }} ${{ matrix.env.PACKAGES }}

- name: Rebuild
if: matrix.build-type == 'rebuild'
env:
TARGET: ${{ matrix.env.TARGET }}
run: ./script/select-script.sh --no-download --prefix=${{ github.workspace }} ${{ matrix.env.PACKAGES }}

- name: Rebuild if uncached
if: matrix.build-type == 'rebuild' && steps.cache-build.outputs.cache-hit != 'true'
env:
TARGET: ${{ matrix.env.TARGET }}
run: ./script/select-script.sh --no-download --prefix=${{ github.workspace }} ${{ matrix.env.PACKAGES }}

- name: Clear and pack git sources before caching
if: matrix.build-type == 'clean'
run: |
find download/*/* ! -wholename '*/.git/*' -delete || true
cd download
for DIR in */; do
DIR=${DIR%/}
tar -c -f $DIR-git.tar $DIR
done
rm -rf */
2 changes: 2 additions & 0 deletions .gitignore
@@ -1,2 +1,4 @@
build/
download/
install/
/Makefile