Compare commits

...

115 commits

Author SHA1 Message Date
BtbN
0a5e19d524 Move iconv submodule fetch to cache 2023-07-25 14:39:11 +02:00
BtbN
336c8909c8 Don't depend on zip
Closes #284
2023-07-22 15:46:57 +02:00
BtbN
c07b573acd Avisynth insist on a tag to exist 2023-07-20 15:54:19 +02:00
BtbN
2fe73c5aab Bump avisynth 2023-07-20 15:29:53 +02:00
BtbN
683e3a4dc9 Bump libjxl 2023-07-10 22:40:41 +02:00
BtbN
7a5bf0c0bb Switch to gmplib github mirror 2023-07-09 19:44:10 +02:00
BtbN
a7ae13efb7 Fix cache invalidation on commit update 2023-07-08 20:11:09 +02:00
BtbN
6c86fdaad0 Downgrade libjxl, they removed deprecated stuff 2023-07-08 19:26:54 +02:00
BtbN
49684930d2 Jxl has a new submodule 2023-07-08 19:26:54 +02:00
BtbN
71c3a919b8 Update dependencies 2023-07-08 19:26:54 +02:00
Chad Kimes
20172ca00a Use GH_REPO build-arg in target-base builds 2023-06-30 22:26:18 +02:00
nihil-admirari
0e9c6f8e4d Package man 2023-06-23 21:11:59 +02:00
BtbN
0071c270bb Specify dlltool in meson cross files 2023-06-21 14:04:39 +02:00
BtbN
9465728b3b Disable doxgen for xz 2023-06-21 13:50:46 +02:00
BtbN
547eee9db4 Update dependencies 2023-06-21 13:44:00 +02:00
BtbN
be992fa253 Be more generous with cache image retention
Avoid pointless rebuilds on revert or other situations.
2023-06-21 00:55:45 +02:00
BtbN
0598fb3dba Make final dl cache image FROM scratch 2023-06-21 00:38:32 +02:00
BtbN
73f17b7213 Force C locale in Dockerfile generation
Turns out bash sorting behaviour differs between locales, causing cache
mismatches...
2023-06-21 00:06:33 +02:00
BtbN
91b977f84d Simplify download Dockerfile generation 2023-06-20 23:58:06 +02:00
BtbN
8c336b4dec Add more explicit cache image name 2023-06-20 23:44:31 +02:00
BtbN
3e75fcc0e4 Enable new DL-Cache in Workflow 2023-06-18 21:47:40 +02:00
BtbN
61debb00e5 Switch to a more direct Dockerfile.dl generation
Otherwise the entire build cache effectively invalidates the moment one
script changes..
2023-06-18 21:25:52 +02:00
BtbN
c3fec1bd50 Add infrastructure for caching downloads in separate image 2023-06-18 19:57:13 +02:00
BtbN
78191a73a6 Add fork-guard into workflow 2023-06-18 12:20:47 +02:00
BtbN
d75466340a Use old release version of gmp again
Their hg server is way too flakey to rely on, download a release tarball
from GNU mirror instead.

I hope no important fixes are missed due to the loss of update
automation this causes.
2023-06-16 20:36:29 +02:00
BtbN
1ae971430e Update ct-ng configs 2023-06-04 01:29:42 +02:00
BtbN
a197b3f9ca Do full clone for mingw
SF's git server seems to be incapable of bandwidth saving single-commit
clones.
2023-06-02 17:42:44 +02:00
BtbN
915d6e0afa Switch mingw-w64 to official git repo
The Github mirror seems to be broken, maybe switch back once it's
revived.

Closes #276
2023-05-29 23:09:09 +02:00
BtbN
ccda3224ff Update Ubuntu base version 2023-05-29 15:29:46 +02:00
BtbN
67723fc5c2 iconv: Force autogen to use hostcc to build its stuff 2023-05-29 15:29:31 +02:00
BtbN
0d1bf557c8 Update dependencies 2023-05-29 14:10:36 +02:00
BtbN
9f930118ab Remove libmfx support
Intel discontinued support for it. There will be no security fixes and
updates for it anymore.

Unfortunately this means that older versions of ffmpeg will be losing
support for QSV hardware acceleration, but it's either that or knowingly
leaving people open to security issues.
2023-05-29 14:07:27 +02:00
BtbN
94dcf28fad
Fix vidstab commit variable 2023-05-15 18:55:30 +02:00
bitraid
c02dbf2722 Fix variable name of fftw3 build script 2023-05-15 13:26:59 +02:00
BtbN
5ab621cb66 Update OpenSSL to 3.0 2023-04-30 23:46:30 +02:00
BtbN
e2acf44a52 Add explicit enable step to vulkan script dir 2023-04-19 14:18:03 +02:00
BtbN
8a04456211 Disable libplacebo for all current versions 2023-04-19 11:42:25 +02:00
BtbN
341ed9f992 Update dependencies 2023-04-18 16:23:16 +02:00
BtbN
5e54b68d5e Update mbedtls 2023-03-28 14:52:55 +02:00
BtbN
ccbc205c57
Increate latest re-release delay again 2023-03-28 12:46:57 +02:00
BtbN
01980b12aa Update ct-ng config 2023-03-22 18:26:58 +01:00
BtbN
a1fdcf77ae Downgrade libplacebo again 2023-03-19 18:16:36 +01:00
BtbN
521d708a8e Update dependencies 2023-03-19 12:26:11 +01:00
BtbN
13129c7061 Allow cleanup step to fail 2023-03-18 15:12:08 +01:00
BtbN
1b3fd62fbf Do package cleanup as part of build workflow 2023-03-18 14:58:57 +01:00
BtbN
ffa7c41e0f Work around PAT existence check 2023-03-18 14:30:26 +01:00
BtbN
c6c7051948 Use PAT for cleanup 2023-03-18 14:27:17 +01:00
BtbN
b78f798c9f Add cleanup workflow 2023-03-18 14:20:02 +01:00
BtbN
3aaec67422 Retry flaky iconv clone 2023-03-16 17:48:38 +01:00
BtbN
f0568e9a9a
Update readme for 6.0 addin
Closes #246
2023-03-12 17:16:25 +01:00
nyanmisaka
a6e38b38fd Fix the path to fontconfig configuration file
instead of using the install prefix + /etc or /var

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-03-12 17:06:30 +01:00
BtbN
193f55691b
Remove libvpl debugging leftover 2023-03-08 23:19:42 +01:00
BtbN
0e5f512f8a Add 6.0 to builds
Will probably drop 4.4 if this causes build times to be too crazy, or if
it exhausts the asset size limit.
2023-03-03 18:55:03 +01:00
BtbN
1a3257f655 Add ffmpeg 6.0 addin 2023-02-28 15:09:04 +01:00
BtbN
75f7b8e218 Bump uavs3d 2023-02-23 12:11:23 +01:00
Dennis E. Mungai
7e91dfcaa5 Omit the `--filter=blob:none` option passed to git clone
This should prevent the "filtering not recognized by server, ignoring" warning on git clone.
2023-02-16 16:49:54 +01:00
BtbN
2bb8f6d5e0 Alaways do full clone of iconv repo 2023-02-15 16:54:25 +01:00
BtbN
74a2af1977 Switch frei0r to "cmake" 2023-02-12 17:11:50 +01:00
BtbN
3183ec99b3 Update dependencies 2023-02-12 14:40:12 +01:00
BtbN
60ce7242b7 Update libiconv
Closes #237
2023-02-07 21:01:26 +01:00
BtbN
583334e450 Bump libiconv 2023-02-01 15:31:20 +01:00
BtbN
0d2e5c7051 Fix rusts nonsensical root-only permissions on its library
Fixes #234
2023-01-29 14:10:07 +01:00
BtbN
98b1aa8b2d Downgrade vulkan headers 2022-12-25 00:37:03 +01:00
BtbN
b1fcac316e Account for fixed bortli buildsystem 2022-12-24 21:37:48 +01:00
BtbN
12473a216f Add new python dependency 2022-12-24 15:55:49 +01:00
BtbN
e676b22a71 Update dependencies 2022-12-24 15:23:31 +01:00
BtbN
ef8c6edf64 Disable -fstack-clash-protection on Windows
Apparently broken and unneccesary anyway: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90458#c4
2022-12-05 21:33:15 +01:00
BtbN
d89d75ea4a Enable -fstack-clash-protection on all targets 2022-12-05 18:57:54 +01:00
BtbN
ab4299b595 Fix lib-Prefixless OpenCL library linking 2022-12-03 01:14:46 +01:00
BtbN
6eab5153f5 Add new lilv dep 2022-12-02 21:03:31 +01:00
BtbN
8dac144f1c Stick to SDL2 instead of 3 2022-12-02 18:11:12 +01:00
BtbN
d88a84b308 Update dependencies 2022-12-02 16:21:37 +01:00
Yicheng Liu
37d82154fd Update SVT-AV1 to v1.4.0 2022-12-02 12:21:20 +01:00
BtbN
d74737d76b
Reduce wait time after deleting old latest release 2022-11-24 13:26:47 +01:00
BtbN
e6e28d4704 Bump ffnvcodec 2022-11-10 15:33:05 +01:00
BtbN
c83db5db6a Update dependencies 2022-11-06 14:06:20 +01:00
BtbN
cca0f227ac Update README.md
Closes #170
2022-11-06 13:01:12 +01:00
BtbN
81c3431e57 Enable 10 bit support for uavs3d
Closes #211
2022-11-06 12:25:08 +01:00
BtbN
e7853fda68 Bump openssl 2022-11-06 01:22:37 +01:00
BtbN
3bb2b17e48 Bump ffnvcodec for master only 2022-11-06 01:21:33 +01:00
BtbN
f395efe8a1 Update libxml2 2022-11-05 21:04:57 +01:00
nyanmisaka
c03ab7a812 Add chromaprint
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2022-11-04 21:29:28 +01:00
nanake
fd4fac0ec7 Update rubberband build options
Signed-off-by: nanake <nanake@users.noreply.github.com>
2022-11-04 21:18:55 +01:00
BtbN
bbad7e7057 Don't bail on missing dockeraddin 2022-11-03 01:41:44 +01:00
BtbN
fe0e366d93 Add LTO addin 2022-11-02 22:23:08 +01:00
BtbN
009c516860 Run ranlib on libvpx.a after install
libvpx strips it, which mangles the symbol index when LTO is enabled.
ranlib fixes it again.
2022-11-02 22:09:11 +01:00
BtbN
ec535f414f Update base Image to Ubuntu 22.10
This has newer meson, which fixes an important LTO related issue.
2022-11-02 22:06:40 +01:00
BtbN
2f0d9dbf8b Explicitly declare toolchain tools in base image 2022-11-02 22:02:09 +01:00
BtbN
1f74f0a60a Consolidate/clean up meson and cmake toolchain files 2022-11-02 21:53:03 +01:00
BtbN
782f731350 Add function for addins to generate Dockerfile header 2022-11-02 21:50:05 +01:00
BtbN
41079cb7bf Reduce duplication of toolchain name a bit 2022-10-31 21:47:07 +01:00
BtbN
18e540f47d Enable OpenAL for master builds 2022-10-31 20:44:20 +01:00
BtbN
768ded56fa Fix x/davs2 configure for recent binutils+gcc 2022-10-30 21:42:44 +01:00
BtbN
cf6565ec66 Disable unused libvpx unit-tests 2022-10-30 21:42:22 +01:00
BtbN
e768af40fb Enable gcc LTO optimization 2022-10-30 17:50:30 +01:00
BtbN
f5cf1599d6 Update OpenSSL 2022-10-30 01:27:14 +02:00
BtbN
6f44be6038 Add missing OpenAL dependency to its .pc file 2022-10-29 19:19:28 +02:00
BtbN
7028cb01c4 Add OpenAL
Needs fixes to ffmpeg configure before it can be enabled
2022-10-29 18:50:06 +02:00
BtbN
1896b0d138 Fix another use of deprecated set-output 2022-10-26 14:19:55 +02:00
mrintrepide
ef36e7e00d Enable AVX512 support for SVT-AV1 2022-10-24 14:12:41 +02:00
mrintrepide
86e25e0657 Update SVT-AV1 to v1.3.0 2022-10-24 14:12:41 +02:00
BtbN
2c3417550c Fix mfx disabling logic 2022-10-24 14:04:17 +02:00
BtbN
8fff2b2a8e Switch to onevpl by default
Closes #182
2022-10-23 22:06:09 +02:00
BtbN
f83799c36f Fix build of old glibc with default-pie gcc 2022-10-23 21:52:56 +02:00
BtbN
869e257511 Increase ct-ng log level 2022-10-23 21:52:56 +02:00
BtbN
b6b1d68d83 Revert "Bump linux64 minimum toolchain version"
This reverts commit 37f2a44634.
2022-10-23 19:20:49 +02:00
BtbN
37f2a44634 Bump linux64 minimum toolchain version
The old-old stuff finally started breaking things
2022-10-23 18:17:12 +02:00
BtbN
15babf288b Bump zlib 2022-10-23 17:17:33 +02:00
BtbN
5bd1b6a1e1 Bump ct-ng configs 2022-10-23 17:16:34 +02:00
BtbN
ce62fe2fee Fix use of deprecated set-output 2022-10-23 02:51:12 +02:00
BtbN
3b673c5169 Rename clashing but exported internal libass symbol 2022-10-19 23:33:57 +02:00
BtbN
36f1ff77a4 Disable Debug for mp3lame
c9e146e787

Closes #198
2022-10-10 13:12:36 +02:00
BtbN
bce41a5cce Disable liblzma/xz symbol versioning
Does not make a whole lot of sense for static builds to begin with,
and since 913ddc5572
it's outright broken for unknown reasons:

ld: libavcodec/libavcodec.so.59: version node not found for symbol lzma_get_progress@XZ_5.2.2
ld: failed to set dynamic section sizes: bad value
2022-10-06 14:33:36 +02:00
BtbN
17c294f25c Fix libplacebo build 2022-10-06 01:11:36 +02:00
BtbN
22440fc549 Update dependencies 2022-10-06 00:40:44 +02:00
144 changed files with 1170 additions and 603 deletions

View file

@ -22,11 +22,27 @@ on:
env:
DOCKER_BUILDKIT: 1
HAVE_CLEANUP_PAT: ${{ secrets.CLEANUP_PAT != '' }}
jobs:
pre_check:
name: Pre Checks
if: ${{ github.event.inputs.buildOnly != 'true' }}
runs-on: ubuntu-latest
steps:
- name: Repo Check
run: |
if [[ "$GITHUB_REPOSITORY" != "BtbN/FFmpeg-Builds" ]]; then
echo "When forking this repository to make your own builds, you have to adjust this check."
echo "When doing so make sure to randomize the scheduled cron time above, in order to spread out the various build times as much as possible."
echo "This has been put in place due to the enormous amounts of traffic hundreds/thousands of parallel builds can cause on external infrastructure."
exit 1
fi
exit 0
build_base:
name: Build base image
if: ${{ github.event.inputs.buildOnly != 'true' }}
needs: pre_check
runs-on: ubuntu-latest
steps:
- name: Checkout
@ -43,7 +59,13 @@ jobs:
password: ${{ github.token }}
- name: Image Name
id: imagename
run: echo "::set-output name=name::ghcr.io/${GITHUB_REPOSITORY,,}/base"
run: |
IMG="${GITHUB_REPOSITORY,,}/base"
DLIMG="${GITHUB_REPOSITORY,,}/dl_cache"
echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT
echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT
echo "dlname=ghcr.io/${DLIMG/ /-}" >> $GITHUB_OUTPUT
echo "dlrawname=${DLIMG/ /-}" >> $GITHUB_OUTPUT
- name: Stop Commands
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
- name: Build target base image
@ -55,6 +77,45 @@ jobs:
tags: ${{ steps.imagename.outputs.name }}:latest
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache
- name: Generate download cache Dockerfile
id: dl_cache
run: |
./generate.sh dl only
echo "dltagname=$(./util/get_dl_cache_tag.sh)" >> $GITHUB_OUTPUT
cat Dockerfile.dl
- name: Build download cache image
uses: docker/build-push-action@v3
with:
context: .
file: Dockerfile.dl
pull: true
push: true
tags: ${{ steps.imagename.outputs.dlname }}:${{ steps.dl_cache.outputs.dltagname }}
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.dlname }}:cache
cache-from: type=registry,ref=${{ steps.imagename.outputs.dlname }}:cache
- name: Cleanup
if: ${{ env.HAVE_CLEANUP_PAT == 'true' }}
continue-on-error: true
uses: BtbN/delete-untagged-ghcr-action@main
with:
token: ${{ secrets.CLEANUP_PAT }}
package_name: ${{ steps.imagename.outputs.rawname }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
owner_type: user
untagged_only: true
- name: Cleanup Download Cache
if: ${{ env.HAVE_CLEANUP_PAT == 'true' }}
continue-on-error: true
uses: BtbN/delete-untagged-ghcr-action@main
with:
token: ${{ secrets.CLEANUP_PAT }}
package_name: ${{ steps.imagename.outputs.dlrawname }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
owner_type: user
untagged_only: false
keep_latest: 20
build_target_bases:
name: Build target base image
if: ${{ github.event.inputs.buildOnly != 'true' }}
@ -79,7 +140,11 @@ jobs:
password: ${{ github.token }}
- name: Image Name
id: imagename
run: echo "::set-output name=name::ghcr.io/${GITHUB_REPOSITORY,,}/base-${{ matrix.target }}"
run: |
IMG="${GITHUB_REPOSITORY,,}/base-${{ matrix.target }}"
echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT
echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT
echo "gh_repo=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT
- name: Stop Commands
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
- name: Build target base image
@ -91,6 +156,19 @@ jobs:
tags: ${{ steps.imagename.outputs.name }}:latest
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache
build-args: |
GH_REPO=ghcr.io/${{ steps.imagename.outputs.gh_repo }}
- name: Cleanup
if: ${{ env.HAVE_CLEANUP_PAT == 'true' }}
continue-on-error: true
uses: BtbN/delete-untagged-ghcr-action@main
with:
token: ${{ secrets.CLEANUP_PAT }}
package_name: ${{ steps.imagename.outputs.rawname }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
owner_type: user
untagged_only: true
build_targets:
name: Build target-variant image
if: ${{ github.event.inputs.buildOnly != 'true' }}
@ -100,7 +178,7 @@ jobs:
fail-fast: false
matrix:
target: [win64,linux64,linuxarm64]
variant: [gpl,lgpl,gpl 4.4,gpl 5.1,lgpl 4.4,lgpl 5.1,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.1,lgpl-shared 4.4,lgpl-shared 5.1]
variant: [gpl,lgpl,gpl 4.4,gpl 5.1,gpl 6.0,lgpl 4.4,lgpl 5.1,lgpl 6.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.1,gpl-shared 6.0,lgpl-shared 4.4,lgpl-shared 5.1,lgpl-shared 6.0]
steps:
- name: Checkout
uses: actions/checkout@v3
@ -119,9 +197,9 @@ jobs:
- name: Image Name
id: imagename
run: |
IMG="ghcr.io/${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
echo "::set-output name=name::${IMG/ /-}"
echo "::set-output name=gh_repo::${GITHUB_REPOSITORY,,}"
IMG="${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
echo "name=ghcr.io/${IMG/ /-}" >> $GITHUB_OUTPUT
echo "rawname=${IMG/ /-}" >> $GITHUB_OUTPUT
- name: Stop Commands
run: T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
- name: Build target base image
@ -133,8 +211,17 @@ jobs:
tags: ${{ steps.imagename.outputs.name }}:latest
cache-to: type=registry,mode=max,ref=${{ steps.imagename.outputs.name }}:cache
cache-from: type=registry,ref=${{ steps.imagename.outputs.name }}:cache
build-args: |
GH_REPO=ghcr.io/${{ steps.imagename.outputs.gh_repo }}
- name: Cleanup
if: ${{ env.HAVE_CLEANUP_PAT == 'true' }}
continue-on-error: true
uses: BtbN/delete-untagged-ghcr-action@main
with:
token: ${{ secrets.CLEANUP_PAT }}
package_name: ${{ steps.imagename.outputs.rawname }}
repository_owner: ${{ github.repository_owner }}
repository: ${{ github.repository }}
owner_type: user
untagged_only: true
build_ffmpeg:
name: Build ffmpeg
if: ${{ ( github.event.inputs.buildOnly == 'true' && !cancelled() ) || success() }}
@ -144,7 +231,7 @@ jobs:
fail-fast: false
matrix:
target: [win64,linux64,linuxarm64]
variant: [gpl,lgpl,gpl 4.4,gpl 5.1,lgpl 4.4,lgpl 5.1,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.1,lgpl-shared 4.4,lgpl-shared 5.1]
variant: [gpl,lgpl,gpl 4.4,gpl 5.1,gpl 6.0,lgpl 4.4,lgpl 5.1,lgpl 6.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.1,gpl-shared 6.0,lgpl-shared 4.4,lgpl-shared 5.1,lgpl-shared 6.0]
steps:
- name: Checkout
uses: actions/checkout@v3
@ -185,8 +272,8 @@ jobs:
NAME="Auto-Build $RELDATE"
TAGNAME="autobuild-$(date +'%Y-%m-%d-%H-%M')"
hub release create $(for a in artifacts/*.{zip,tar.xz}; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME"
echo "::set-output name=tag_name::${TAGNAME}"
echo "::set-output name=rel_date::${RELDATE}"
echo "tag_name=${TAGNAME}" >> $GITHUB_OUTPUT
echo "rel_date=${RELDATE}" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Update Latest
@ -199,7 +286,7 @@ jobs:
TAGNAME="latest"
hub release delete "$TAGNAME" || true
git push --delete origin "$TAGNAME" || true
sleep 30
sleep 15
hub release create $(for a in latest_artifacts/*; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME"
env:
GITHUB_TOKEN: ${{ github.token }}

View file

@ -18,7 +18,7 @@ jobs:
fail-fast: false
matrix:
target: [win64,linux64,linuxarm64]
variant: [lgpl,gpl 4.4,gpl 5.1,lgpl 4.4,lgpl 5.1,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.1,lgpl-shared 4.4,lgpl-shared 5.1]
variant: [lgpl,gpl 6.0,gpl 5.1,lgpl 6.0,lgpl 5.1,gpl-shared,lgpl-shared,gpl-shared 6.0,gpl-shared 5.1,lgpl-shared 6.0,lgpl-shared 5.1]
quickbuild: [1]
include:
- target: win64

2
.gitignore vendored
View file

@ -1,4 +1,4 @@
/Dockerfile
/Dockerfile*
/ffbuild/
/artifacts/
/.cache/

View file

@ -34,11 +34,11 @@ Every file corresponds to its respective package.
### Build Image
* `./makeimage.sh target variant [addins]`
* `./makeimage.sh target variant [addin [addin] [addin] ...]`
### Build FFmpeg
* `./build.sh target variant [addins]`
* `./build.sh target variant [addin [addin] [addin] ...]`
On success, the resulting zip file will be in the `artifacts` subdir.
@ -55,7 +55,7 @@ The linuxarm64 target will not build some dependencies due to lack of arm64 (aar
* `davs2` and `xavs2`: aarch64 support is broken.
* `libmfx` and `libva`: Library for Intel QSV, so there is no aarch64 support.
Available:
Available variants:
* `gpl` Includes all dependencies, even those that require full GPL instead of just LGPL.
* `lgpl` Lacking libraries that are GPL-only. Most prominently libx264 and libx265.
* `nonfree` Includes fdk-aac in addition to all the dependencies of the gpl variant.
@ -63,7 +63,7 @@ Available:
* `lgpl-shared` Same again, but with the lgpl set of dependencies.
* `nonfree-shared` Same again, but with the nonfree set of dependencies.
All of those can be optionally combined with any combination of addins.
* `4.4` to build from the 4.4 release branch instead of master.
* `5.0` to build from the 5.0 release branch instead of master.
All of those can be optionally combined with any combination of addins:
* `4.4`/`5.0`/`5.1`/`6.0` to build from the respective release branch instead of master.
* `debug` to not strip debug symbols from the binaries. This increases the output size by about 250MB.
* `lto` build all dependencies and ffmpeg with -flto=auto (HIGHLY EXPERIMENTAL, broken for Windows, sometimes works for Linux)

2
addins/6.0.sh Normal file
View file

@ -0,0 +1,2 @@
#!/bin/bash
GIT_BRANCH="release/6.0"

7
addins/lto.sh Normal file
View file

@ -0,0 +1,7 @@
#!/bin/bash
FF_CONFIGURE="$FF_CONFIGURE --enable-lto"
ffbuild_dockeraddin() {
to_df 'ENV CFLAGS="$CFLAGS -flto=auto" CXXFLAGS="$CXXFLAGS -flto=auto" LDFLAGS="$LDFLAGS -flto=auto"'
to_df 'ENV FFBUILD_TARGET_FLAGS="$FFBUILD_TARGET_FLAGS --ar=${FFBUILD_TOOLCHAIN}-gcc-ar --nm=${FFBUILD_TOOLCHAIN}-gcc-nm --ranlib=${FFBUILD_TOOLCHAIN}-gcc-ranlib"'
}

View file

@ -90,16 +90,16 @@ package_variant ffbuild/prefix "ffbuild/pkgroot/$BUILD_NAME"
cd ffbuild/pkgroot
if [[ "${TARGET}" == win* ]]; then
OUTPUT_FNAME="${BUILD_NAME}.zip"
zip -9 -r "${ARTIFACTS_PATH}/${OUTPUT_FNAME}" "$BUILD_NAME"
docker run --rm -i $TTY_ARG "${UIDARGS[@]}" -v "${ARTIFACTS_PATH}":/out -v "${PWD}/${BUILD_NAME}":"/${BUILD_NAME}" -w / "$IMAGE" zip -9 -r "/out/${OUTPUT_FNAME}" "$BUILD_NAME"
else
OUTPUT_FNAME="${BUILD_NAME}.tar.xz"
tar cJf "${ARTIFACTS_PATH}/${OUTPUT_FNAME}" "$BUILD_NAME"
docker run --rm -i $TTY_ARG "${UIDARGS[@]}" -v "${ARTIFACTS_PATH}":/out -v "${PWD}/${BUILD_NAME}":"/${BUILD_NAME}" -w / "$IMAGE" tar cJf "/out/${OUTPUT_FNAME}" "$BUILD_NAME"
fi
cd -
rm -rf ffbuild
if [[ -n "$GITHUB_ACTIONS" ]]; then
echo "::set-output name=build_name::${BUILD_NAME}"
echo "build_name=${BUILD_NAME}" >> "$GITHUB_OUTPUT"
echo "${OUTPUT_FNAME}" > "${ARTIFACTS_PATH}/${TARGET}-${VARIANT}${ADDINS_STR:+-}${ADDINS_STR}.txt"
fi

View file

@ -3,32 +3,93 @@ set -e
cd "$(dirname "$0")"
source util/vars.sh
rm -f Dockerfile
export LC_ALL=C.UTF-8
rm -f Dockerfile Dockerfile.{dl,final,dl.final}
layername() {
printf "layer-"
basename "$1" | sed 's/.sh$//'
}
exec_dockerstage() {
SCRIPT="$1"
(
SELF="$SCRIPT"
source "$SCRIPT"
ffbuild_enabled || exit 0
ffbuild_dockerstage || exit $?
)
}
to_df() {
_of="${TODF:-Dockerfile}"
printf "$@" >> "$_of"
echo >> "$_of"
}
default_dl() {
to_df "RUN git-mini-clone \"$SCRIPT_REPO\" \"$SCRIPT_COMMIT\" \"$1\""
}
###
### Generate download Dockerfile
###
exec_dockerstage_dl() {
SCRIPT="$1"
(
SELF="$SCRIPT"
SELFLAYER="$(layername "$STAGE")"
source "$SCRIPT"
ffbuild_dockerdl || exit $?
TODF="Dockerfile.dl.final" ffbuild_dockerlayer_dl || exit $?
)
}
export TODF="Dockerfile.dl"
to_df "FROM ${REGISTRY}/${REPO}/base:latest AS base"
to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR"
to_df "WORKDIR \$FFBUILD_DLDIR"
for STAGE in scripts.d/*.sh scripts.d/*/*.sh; do
to_df "FROM base AS $(layername "$STAGE")"
exec_dockerstage_dl "$STAGE"
done
to_df "FROM base AS intermediate"
cat Dockerfile.dl.final >> "$TODF"
rm Dockerfile.dl.final
to_df "FROM scratch"
to_df "COPY --from=intermediate /opt/ffdl/. /"
if [[ "$TARGET" == "dl" && "$VARIANT" == "only" ]]; then
exit 0
fi
DL_IMAGE="${DL_IMAGE_RAW}:$(./util/get_dl_cache_tag.sh)"
###
### Generate main Dockerfile
###
exec_dockerstage() {
SCRIPT="$1"
(
SELF="$SCRIPT"
source "$SCRIPT"
ffbuild_enabled || exit 0
to_df "ENV SELF=\"$SELF\""
ffbuild_dockerstage || exit $?
)
}
export TODF="Dockerfile"
to_df "FROM ${REGISTRY}/${REPO}/base-${TARGET}:latest AS base"
to_df "ENV TARGET=$TARGET VARIANT=$VARIANT REPO=$REPO ADDINS_STR=$ADDINS_STR"
for addin in "${ADDINS[@]}"; do
(
source addins/"${addin}.sh"
type ffbuild_dockeraddin &>/dev/null && ffbuild_dockeraddin || true
)
done
PREVLAYER="base"
for ID in $(ls -1d scripts.d/??-* | sed -s 's|^.*/\(..\).*|\1|' | sort -u); do
LAYER="layer-$ID"

View file

@ -39,17 +39,23 @@ ADD cross.meson /cross.meson
ADD gen-implib.sh /usr/bin/gen-implib
RUN git clone --filter=blob:none --depth=1 https://github.com/yugr/Implib.so /opt/implib
ENV FFBUILD_TOOLCHAIN=x86_64-ffbuild-linux-gnu
ENV PATH="/opt/ct-ng/bin:${PATH}" \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux" \
FFBUILD_TOOLCHAIN=x86_64-ffbuild-linux-gnu \
FFBUILD_CROSS_PREFIX="x86_64-ffbuild-linux-gnu-" \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=x86_64 --target-os=linux" \
FFBUILD_CROSS_PREFIX="${FFBUILD_TOOLCHAIN}-" \
FFBUILD_RUST_TARGET="x86_64-unknown-linux-gnu" \
FFBUILD_PREFIX=/opt/ffbuild \
FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \
PKG_CONFIG=pkg-config \
PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \
CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -pthread" \
CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -pthread" \
LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -Wl,-z,relro,-z,now -pthread -lm" \
CC="${FFBUILD_TOOLCHAIN}-gcc" \
CXX="${FFBUILD_TOOLCHAIN}-g++" \
LD="${FFBUILD_TOOLCHAIN}-ld" \
AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \
RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \
NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \
CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \
CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \
LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm" \
STAGE_CFLAGS="-fvisibility=hidden -fno-semantic-interposition" \
STAGE_CXXFLAGS="-fvisibility=hidden -fno-semantic-interposition"

View file

@ -2,7 +2,8 @@
c = 'x86_64-ffbuild-linux-gnu-gcc'
cpp = 'x86_64-ffbuild-linux-gnu-g++'
ld = 'x86_64-ffbuild-linux-gnu-ld'
ar = 'x86_64-ffbuild-linux-gnu-ar'
ar = 'x86_64-ffbuild-linux-gnu-gcc-ar'
ranlib = 'x86_64-ffbuild-linux-gnu-gcc-ranlib'
strip = 'x86_64-ffbuild-linux-gnu-strip'
[host_machine]

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# crosstool-NG 1.25.0.55_3defb7b Configuration
# crosstool-NG 1.25.0.196_227d99d Configuration
#
CT_CONFIGURE_has_static_link=y
CT_CONFIGURE_has_cxx11=y
@ -13,12 +13,13 @@ CT_CONFIGURE_has_make_3_81_or_newer=y
CT_CONFIGURE_has_make_4_0_or_newer=y
CT_CONFIGURE_has_libtool_2_4_or_newer=y
CT_CONFIGURE_has_libtoolize_2_4_or_newer=y
CT_CONFIGURE_has_autoconf_2_65_or_newer=y
CT_CONFIGURE_has_autoreconf_2_65_or_newer=y
CT_CONFIGURE_has_automake_1_15_or_newer=y
CT_CONFIGURE_has_autoconf_2_71_or_newer=y
CT_CONFIGURE_has_autoreconf_2_71_or_newer=y
CT_CONFIGURE_has_automake_1_16_or_newer=y
CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y
CT_CONFIGURE_has_python_3_4_or_newer=y
CT_CONFIGURE_has_bison_2_7_or_newer=y
CT_CONFIGURE_has_bison_3_0_4_or_newer=y
CT_CONFIGURE_has_python=y
CT_CONFIGURE_has_svn=y
CT_CONFIGURE_has_git=y
@ -27,7 +28,7 @@ CT_CONFIGURE_has_sha1sum=y
CT_CONFIGURE_has_sha256sum=y
CT_CONFIGURE_has_sha512sum=y
CT_CONFIGURE_has_install_with_strip_program=y
CT_VERSION="1.25.0.55_3defb7b"
CT_VERSION="1.25.0.196_227d99d"
CT_VCHECK=""
CT_CONFIG_VERSION_ENV="4"
CT_CONFIG_VERSION_CURRENT="4"
@ -45,6 +46,7 @@ CT_OBSOLETE=y
CT_EXPERIMENTAL=y
CT_ALLOW_BUILD_AS_ROOT=y
CT_ALLOW_BUILD_AS_ROOT_SURE=y
# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set
# CT_DEBUG_CT is not set
#
@ -63,6 +65,7 @@ CT_REMOVE_DOCS=y
# CT_PREFIX_DIR_RO is not set
CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y
CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y
# CT_TARBALL_RESULT is not set
#
# Downloading
@ -120,12 +123,11 @@ CT_CONFIG_SHELL="${bash}"
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
CT_LOG_EXTRA=y
# CT_LOG_EXTRA is not set
# CT_LOG_ALL is not set
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
CT_LOG_DEBUG=y
CT_LOG_LEVEL_MAX="DEBUG"
# CT_LOG_SEE_TOOLS_WARN is not set
# CT_LOG_PROGRESS_BAR is not set
# CT_LOG_TO_FILE is not set
# end of Paths and misc options
@ -136,7 +138,9 @@ CT_LOG_LEVEL_MAX="EXTRA"
# CT_ARCH_ARC is not set
# CT_ARCH_ARM is not set
# CT_ARCH_AVR is not set
# CT_ARCH_BPF is not set
# CT_ARCH_C6X is not set
# CT_ARCH_LOONGARCH is not set
# CT_ARCH_M68K is not set
# CT_ARCH_MICROBLAZE is not set
# CT_ARCH_MIPS is not set
@ -161,7 +165,7 @@ CT_ARCH_X86_SHOW=y
# Options for x86
#
CT_ARCH_X86_PKG_KSYM=""
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ARCH_SUFFIX=""
# CT_OMIT_TARGET_VENDOR is not set
@ -171,6 +175,7 @@ CT_ARCH_SUFFIX=""
# CT_MULTILIB is not set
CT_DEMULTILIB=y
CT_ARCH_USE_MMU=y
CT_ARCH_SUPPORTS_LIBSANITIZER=y
CT_ARCH_SUPPORTS_32=y
CT_ARCH_SUPPORTS_64=y
CT_ARCH_DEFAULT_32=y
@ -264,6 +269,11 @@ CT_LINUX_PATCH_GLOBAL=y
# CT_LINUX_PATCH_LOCAL_BUNDLED is not set
# CT_LINUX_PATCH_NONE is not set
CT_LINUX_PATCH_ORDER="global"
# CT_LINUX_V_6_3 is not set
# CT_LINUX_V_6_2 is not set
# CT_LINUX_V_6_1 is not set
# CT_LINUX_V_6_0 is not set
# CT_LINUX_V_5_19 is not set
# CT_LINUX_V_5_18 is not set
# CT_LINUX_V_5_17 is not set
# CT_LINUX_V_5_16 is not set
@ -310,6 +320,8 @@ CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign"
CT_LINUX_5_19_or_older=y
CT_LINUX_older_than_5_19=y
CT_LINUX_5_12_or_older=y
CT_LINUX_older_than_5_12=y
CT_LINUX_5_5_or_older=y
@ -365,7 +377,9 @@ CT_BINUTILS_PATCH_GLOBAL=y
# CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set
# CT_BINUTILS_PATCH_NONE is not set
CT_BINUTILS_PATCH_ORDER="global"
CT_BINUTILS_V_2_38=y
CT_BINUTILS_V_2_40=y
# CT_BINUTILS_V_2_39 is not set
# CT_BINUTILS_V_2_38 is not set
# CT_BINUTILS_V_2_37 is not set
# CT_BINUTILS_V_2_36 is not set
# CT_BINUTILS_V_2_35 is not set
@ -378,12 +392,14 @@ CT_BINUTILS_V_2_38=y
# CT_BINUTILS_V_2_28 is not set
# CT_BINUTILS_V_2_27 is not set
# CT_BINUTILS_V_2_26 is not set
CT_BINUTILS_VERSION="2.38"
CT_BINUTILS_VERSION="2.40"
CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)"
CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig"
CT_BINUTILS_later_than_2_39=y
CT_BINUTILS_2_39_or_later=y
CT_BINUTILS_later_than_2_30=y
CT_BINUTILS_2_30_or_later=y
CT_BINUTILS_later_than_2_27=y
@ -438,6 +454,8 @@ CT_GLIBC_PATCH_GLOBAL=y
# CT_GLIBC_PATCH_LOCAL_BUNDLED is not set
# CT_GLIBC_PATCH_NONE is not set
CT_GLIBC_PATCH_ORDER="global"
# CT_GLIBC_V_2_37 is not set
# CT_GLIBC_V_2_36 is not set
# CT_GLIBC_V_2_35 is not set
# CT_GLIBC_V_2_34 is not set
# CT_GLIBC_V_2_33 is not set
@ -459,6 +477,10 @@ CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
CT_GLIBC_SIGNATURE_FORMAT="packed/.sig"
CT_GLIBC_2_37_or_older=y
CT_GLIBC_older_than_2_37=y
CT_GLIBC_2_36_or_older=y
CT_GLIBC_older_than_2_36=y
CT_GLIBC_2_34_or_older=y
CT_GLIBC_older_than_2_34=y
CT_GLIBC_2_32_or_older=y
@ -500,7 +522,7 @@ CT_GLIBC_HAS_OBSOLETE_RPC=y
CT_GLIBC_EXTRA_CONFIG_ARRAY="--with-pic"
CT_GLIBC_CONFIGPARMS=""
# CT_GLIBC_ENABLE_DEBUG is not set
CT_GLIBC_EXTRA_CFLAGS="-fPIC -DPIC"
CT_GLIBC_EXTRA_CFLAGS="-fPIC -DPIC -no-pie"
CT_GLIBC_ENABLE_OBSOLETE_RPC=y
# CT_GLIBC_ENABLE_FORTIFIED_BUILD is not set
# CT_GLIBC_DISABLE_VERSIONING is not set
@ -512,7 +534,7 @@ CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y
# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set
CT_GLIBC_MIN_KERNEL="4.4.302"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG"
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG"
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
@ -532,6 +554,7 @@ CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_D=y
CT_CC_SUPPORT_JIT=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y
CT_CC_SUPPORT_GOLANG=y
@ -560,7 +583,8 @@ CT_GCC_PATCH_GLOBAL=y
# CT_GCC_PATCH_LOCAL_BUNDLED is not set
# CT_GCC_PATCH_NONE is not set
CT_GCC_PATCH_ORDER="global"
CT_GCC_V_12=y
CT_GCC_V_13=y
# CT_GCC_V_12 is not set
# CT_GCC_V_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
@ -569,12 +593,14 @@ CT_GCC_V_12=y
# CT_GCC_V_6 is not set
# CT_GCC_V_5 is not set
# CT_GCC_V_4_9 is not set
CT_GCC_VERSION="12.1.0"
CT_GCC_VERSION="13.1.0"
CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})"
CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_GCC_SIGNATURE_FORMAT=""
CT_GCC_later_than_13=y
CT_GCC_13_or_later=y
CT_GCC_later_than_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
@ -597,7 +623,7 @@ CT_CC_GCC_ENABLE_PLUGINS=y
CT_CC_GCC_HAS_LIBMPX=y
CT_CC_GCC_ENABLE_CXX_FLAGS=""
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2"
# CT_CC_GCC_STATIC_LIBSTDCXX is not set
# CT_CC_GCC_SYSTEM_ZLIB is not set
CT_CC_GCC_CONFIG_TLS=m
@ -612,6 +638,7 @@ CT_CC_GCC_LTO_ZSTD=m
#
# Settings for libraries running on target
#
CT_CC_GCC_ENABLE_DEFAULT_PIE=y
# CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
# CT_CC_GCC_LIBMUDFLAP is not set
CT_CC_GCC_LIBGOMP=y
@ -619,6 +646,7 @@ CT_CC_GCC_LIBSSP=m
# CT_CC_GCC_LIBQUADMATH is not set
# CT_CC_GCC_LIBSANITIZER is not set
# CT_CC_GCC_LIBMPX is not set
# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set
#
# Misc. obscure options.
@ -646,6 +674,7 @@ CT_ALL_CC_CHOICES="GCC"
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_FORTRAN is not set
# CT_CC_LANG_JIT is not set
# CT_CC_LANG_ADA is not set
# CT_CC_LANG_D is not set
# CT_CC_LANG_OBJC is not set
@ -744,7 +773,9 @@ CT_ISL_PATCH_GLOBAL=y
# CT_ISL_PATCH_LOCAL_BUNDLED is not set
# CT_ISL_PATCH_NONE is not set
CT_ISL_PATCH_ORDER="global"
CT_ISL_V_0_24=y
CT_ISL_V_0_26=y
# CT_ISL_V_0_25 is not set
# CT_ISL_V_0_24 is not set
# CT_ISL_V_0_23 is not set
# CT_ISL_V_0_22 is not set
# CT_ISL_V_0_21 is not set
@ -755,7 +786,7 @@ CT_ISL_V_0_24=y
# CT_ISL_V_0_16 is not set
# CT_ISL_V_0_15 is not set
# CT_ISL_V_0_11 is not set
CT_ISL_VERSION="0.24"
CT_ISL_VERSION="0.26"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -852,10 +883,11 @@ CT_NCURSES_PATCH_GLOBAL=y
# CT_NCURSES_PATCH_LOCAL_BUNDLED is not set
# CT_NCURSES_PATCH_NONE is not set
CT_NCURSES_PATCH_ORDER="global"
CT_NCURSES_V_6_2=y
CT_NCURSES_V_6_4=y
# CT_NCURSES_V_6_2 is not set
# CT_NCURSES_V_6_1 is not set
# CT_NCURSES_V_6_0 is not set
CT_NCURSES_VERSION="6.2"
CT_NCURSES_VERSION="6.4"
CT_NCURSES_MIRRORS="https://invisible-mirror.net/archives/ncurses $(CT_Mirrors GNU ncurses)"
CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -882,14 +914,37 @@ CT_ZLIB_PATCH_GLOBAL=y
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
# CT_ZLIB_PATCH_NONE is not set
CT_ZLIB_PATCH_ORDER="global"
CT_ZLIB_V_1_2_12=y
CT_ZLIB_VERSION="1.2.12"
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_V_1_2_13=y
# CT_ZLIB_V_1_2_12 is not set
CT_ZLIB_VERSION="1.2.13"
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_ZLIB_SIGNATURE_FORMAT="packed/.asc"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB"
CT_COMP_LIBS_ZSTD=y
CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD"
CT_ZSTD_DIR_NAME="zstd"
CT_ZSTD_PKG_NAME="zstd"
CT_ZSTD_SRC_RELEASE=y
# CT_ZSTD_SRC_DEVEL is not set
# CT_ZSTD_SRC_CUSTOM is not set
CT_ZSTD_PATCH_GLOBAL=y
# CT_ZSTD_PATCH_BUNDLED is not set
# CT_ZSTD_PATCH_LOCAL is not set
# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set
# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set
# CT_ZSTD_PATCH_NONE is not set
CT_ZSTD_PATCH_ORDER="global"
CT_ZSTD_V_1_5_5=y
# CT_ZSTD_V_1_5_2 is not set
CT_ZSTD_VERSION="1.5.5"
CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/"
CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_FORMATS=".tar.gz"
CT_ZSTD_SIGNATURE_FORMAT="packed/.sig"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD"
CT_LIBICONV_NEEDED=y
CT_GETTEXT_NEEDED=y
CT_GMP_NEEDED=y
@ -898,6 +953,7 @@ CT_ISL_NEEDED=y
CT_MPC_NEEDED=y
CT_NCURSES_NEEDED=y
CT_ZLIB_NEEDED=y
CT_ZSTD_NEEDED=y
CT_LIBICONV=y
CT_GETTEXT=y
CT_GMP=y
@ -906,6 +962,7 @@ CT_ISL=y
CT_MPC=y
CT_NCURSES=y
CT_ZLIB=y
CT_ZSTD=y
# end of Companion libraries
#

View file

@ -5,8 +5,8 @@ set(triple x86_64-ffbuild-linux-gnu)
set(CMAKE_C_COMPILER ${triple}-gcc)
set(CMAKE_CXX_COMPILER ${triple}-g++)
set(CMAKE_RANLIB ${triple}-ranlib)
set(CMAKE_AR ${triple}-ar)
set(CMAKE_RANLIB ${triple}-gcc-ranlib)
set(CMAKE_AR ${triple}-gcc-ar)
set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot)
set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild)

View file

@ -41,17 +41,23 @@ ADD cross.meson /cross.meson
ADD gen-implib.sh /usr/bin/gen-implib
RUN git clone --filter=blob:none --depth=1 https://github.com/yugr/Implib.so /opt/implib
ENV FFBUILD_TOOLCHAIN=aarch64-ffbuild-linux-gnu
ENV PATH="/opt/ct-ng/bin:${PATH}" \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=aarch64-ffbuild-linux-gnu- --arch=aarch64 --target-os=linux" \
FFBUILD_TOOLCHAIN=aarch64-ffbuild-linux-gnu \
FFBUILD_CROSS_PREFIX="aarch64-ffbuild-linux-gnu-" \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=aarch64 --target-os=linux" \
FFBUILD_CROSS_PREFIX="${FFBUILD_TOOLCHAIN}-" \
FFBUILD_RUST_TARGET="aarch64-unknown-linux-gnu" \
FFBUILD_PREFIX=/opt/ffbuild \
FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \
PKG_CONFIG=pkg-config \
PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \
CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -pthread" \
CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -pthread" \
LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -Wl,-z,relro,-z,now -pthread -lm" \
CC="${FFBUILD_TOOLCHAIN}-gcc" \
CXX="${FFBUILD_TOOLCHAIN}-g++" \
LD="${FFBUILD_TOOLCHAIN}-ld" \
AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \
RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \
NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \
CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \
CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -fPIC -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fstack-clash-protection -pthread" \
LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong -fstack-clash-protection -Wl,-z,relro,-z,now -pthread -lm" \
STAGE_CFLAGS="-fvisibility=hidden -fno-semantic-interposition" \
STAGE_CXXFLAGS="-fvisibility=hidden -fno-semantic-interposition"

View file

@ -2,7 +2,8 @@
c = 'aarch64-ffbuild-linux-gnu-gcc'
cpp = 'aarch64-ffbuild-linux-gnu-g++'
ld = 'aarch64-ffbuild-linux-gnu-ld'
ar = 'aarch64-ffbuild-linux-gnu-ar'
ar = 'aarch64-ffbuild-linux-gnu-gcc-ar'
ranlib = 'x86_64-ffbuild-linux-gnu-gcc-ranlib'
strip = 'aarch64-ffbuild-linux-gnu-strip'
[host_machine]

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# crosstool-NG 1.25.0.55_3defb7b Configuration
# crosstool-NG 1.25.0.196_227d99d Configuration
#
CT_CONFIGURE_has_static_link=y
CT_CONFIGURE_has_cxx11=y
@ -13,12 +13,13 @@ CT_CONFIGURE_has_make_3_81_or_newer=y
CT_CONFIGURE_has_make_4_0_or_newer=y
CT_CONFIGURE_has_libtool_2_4_or_newer=y
CT_CONFIGURE_has_libtoolize_2_4_or_newer=y
CT_CONFIGURE_has_autoconf_2_65_or_newer=y
CT_CONFIGURE_has_autoreconf_2_65_or_newer=y
CT_CONFIGURE_has_automake_1_15_or_newer=y
CT_CONFIGURE_has_autoconf_2_71_or_newer=y
CT_CONFIGURE_has_autoreconf_2_71_or_newer=y
CT_CONFIGURE_has_automake_1_16_or_newer=y
CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y
CT_CONFIGURE_has_python_3_4_or_newer=y
CT_CONFIGURE_has_bison_2_7_or_newer=y
CT_CONFIGURE_has_bison_3_0_4_or_newer=y
CT_CONFIGURE_has_python=y
CT_CONFIGURE_has_svn=y
CT_CONFIGURE_has_git=y
@ -27,7 +28,7 @@ CT_CONFIGURE_has_sha1sum=y
CT_CONFIGURE_has_sha256sum=y
CT_CONFIGURE_has_sha512sum=y
CT_CONFIGURE_has_install_with_strip_program=y
CT_VERSION="1.25.0.55_3defb7b"
CT_VERSION="1.25.0.196_227d99d"
CT_VCHECK=""
CT_CONFIG_VERSION_ENV="4"
CT_CONFIG_VERSION_CURRENT="4"
@ -45,6 +46,7 @@ CT_OBSOLETE=y
CT_EXPERIMENTAL=y
CT_ALLOW_BUILD_AS_ROOT=y
CT_ALLOW_BUILD_AS_ROOT_SURE=y
# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set
# CT_DEBUG_CT is not set
#
@ -63,6 +65,7 @@ CT_REMOVE_DOCS=y
# CT_PREFIX_DIR_RO is not set
CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y
CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y
# CT_TARBALL_RESULT is not set
#
# Downloading
@ -120,12 +123,11 @@ CT_CONFIG_SHELL="${bash}"
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
CT_LOG_EXTRA=y
# CT_LOG_EXTRA is not set
# CT_LOG_ALL is not set
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
CT_LOG_DEBUG=y
CT_LOG_LEVEL_MAX="DEBUG"
# CT_LOG_SEE_TOOLS_WARN is not set
# CT_LOG_PROGRESS_BAR is not set
# CT_LOG_TO_FILE is not set
# end of Paths and misc options
@ -136,7 +138,9 @@ CT_LOG_LEVEL_MAX="EXTRA"
# CT_ARCH_ARC is not set
CT_ARCH_ARM=y
# CT_ARCH_AVR is not set
# CT_ARCH_BPF is not set
# CT_ARCH_C6X is not set
# CT_ARCH_LOONGARCH is not set
# CT_ARCH_M68K is not set
# CT_ARCH_MICROBLAZE is not set
# CT_ARCH_MIPS is not set
@ -161,7 +165,7 @@ CT_ARCH_ARM_SHOW=y
# Options for arm
#
CT_ARCH_ARM_PKG_KSYM=""
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ARCH_SUFFIX=""
# CT_OMIT_TARGET_VENDOR is not set
@ -174,6 +178,7 @@ CT_ARCH_SUPPORTS_BOTH_MMU=y
CT_ARCH_DEFAULT_HAS_MMU=y
CT_ARCH_USE_MMU=y
CT_ARCH_SUPPORTS_FLAT_FORMAT=y
CT_ARCH_SUPPORTS_LIBSANITIZER=y
CT_ARCH_SUPPORTS_EITHER_ENDIAN=y
CT_ARCH_DEFAULT_LE=y
# CT_ARCH_BE is not set
@ -271,6 +276,11 @@ CT_LINUX_PATCH_GLOBAL=y
# CT_LINUX_PATCH_LOCAL_BUNDLED is not set
# CT_LINUX_PATCH_NONE is not set
CT_LINUX_PATCH_ORDER="global"
# CT_LINUX_V_6_3 is not set
# CT_LINUX_V_6_2 is not set
# CT_LINUX_V_6_1 is not set
# CT_LINUX_V_6_0 is not set
# CT_LINUX_V_5_19 is not set
# CT_LINUX_V_5_18 is not set
# CT_LINUX_V_5_17 is not set
# CT_LINUX_V_5_16 is not set
@ -314,6 +324,8 @@ CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign"
CT_LINUX_5_19_or_older=y
CT_LINUX_older_than_5_19=y
CT_LINUX_5_12_or_older=y
CT_LINUX_older_than_5_12=y
CT_LINUX_5_5_or_older=y
@ -371,7 +383,9 @@ CT_BINUTILS_PATCH_GLOBAL=y
# CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set
# CT_BINUTILS_PATCH_NONE is not set
CT_BINUTILS_PATCH_ORDER="global"
CT_BINUTILS_V_2_38=y
CT_BINUTILS_V_2_40=y
# CT_BINUTILS_V_2_39 is not set
# CT_BINUTILS_V_2_38 is not set
# CT_BINUTILS_V_2_37 is not set
# CT_BINUTILS_V_2_36 is not set
# CT_BINUTILS_V_2_35 is not set
@ -384,12 +398,14 @@ CT_BINUTILS_V_2_38=y
# CT_BINUTILS_V_2_28 is not set
# CT_BINUTILS_V_2_27 is not set
# CT_BINUTILS_V_2_26 is not set
CT_BINUTILS_VERSION="2.38"
CT_BINUTILS_VERSION="2.40"
CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)"
CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig"
CT_BINUTILS_later_than_2_39=y
CT_BINUTILS_2_39_or_later=y
CT_BINUTILS_later_than_2_30=y
CT_BINUTILS_2_30_or_later=y
CT_BINUTILS_later_than_2_27=y
@ -444,6 +460,8 @@ CT_GLIBC_PATCH_GLOBAL=y
# CT_GLIBC_PATCH_LOCAL_BUNDLED is not set
# CT_GLIBC_PATCH_NONE is not set
CT_GLIBC_PATCH_ORDER="global"
# CT_GLIBC_V_2_37 is not set
# CT_GLIBC_V_2_36 is not set
# CT_GLIBC_V_2_35 is not set
# CT_GLIBC_V_2_34 is not set
# CT_GLIBC_V_2_33 is not set
@ -465,6 +483,10 @@ CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
CT_GLIBC_SIGNATURE_FORMAT="packed/.sig"
CT_GLIBC_2_37_or_older=y
CT_GLIBC_older_than_2_37=y
CT_GLIBC_2_36_or_older=y
CT_GLIBC_older_than_2_36=y
CT_GLIBC_2_34_or_older=y
CT_GLIBC_older_than_2_34=y
CT_GLIBC_2_32_or_older=y
@ -524,7 +546,7 @@ CT_GLIBC_SSP_DEFAULT=y
# CT_GLIBC_SSP_ALL is not set
# CT_GLIBC_SSP_STRONG is not set
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG"
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG"
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
@ -544,6 +566,7 @@ CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_D=y
CT_CC_SUPPORT_JIT=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y
CT_CC_SUPPORT_GOLANG=y
@ -572,7 +595,8 @@ CT_GCC_PATCH_GLOBAL=y
# CT_GCC_PATCH_LOCAL_BUNDLED is not set
# CT_GCC_PATCH_NONE is not set
CT_GCC_PATCH_ORDER="global"
CT_GCC_V_12=y
CT_GCC_V_13=y
# CT_GCC_V_12 is not set
# CT_GCC_V_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
@ -581,12 +605,14 @@ CT_GCC_V_12=y
# CT_GCC_V_6 is not set
# CT_GCC_V_5 is not set
# CT_GCC_V_4_9 is not set
CT_GCC_VERSION="12.1.0"
CT_GCC_VERSION="13.1.0"
CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})"
CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_GCC_SIGNATURE_FORMAT=""
CT_GCC_later_than_13=y
CT_GCC_13_or_later=y
CT_GCC_later_than_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
@ -610,7 +636,7 @@ CT_CC_GCC_ENABLE_PLUGINS=y
CT_CC_GCC_HAS_LIBMPX=y
CT_CC_GCC_ENABLE_CXX_FLAGS=""
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-host-shared --enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2"
# CT_CC_GCC_STATIC_LIBSTDCXX is not set
# CT_CC_GCC_SYSTEM_ZLIB is not set
CT_CC_GCC_CONFIG_TLS=m
@ -625,12 +651,14 @@ CT_CC_GCC_LTO_ZSTD=m
#
# Settings for libraries running on target
#
CT_CC_GCC_ENABLE_DEFAULT_PIE=y
# CT_CC_GCC_ENABLE_TARGET_OPTSPACE is not set
# CT_CC_GCC_LIBMUDFLAP is not set
CT_CC_GCC_LIBGOMP=y
CT_CC_GCC_LIBSSP=m
# CT_CC_GCC_LIBQUADMATH is not set
# CT_CC_GCC_LIBSANITIZER is not set
# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set
#
# Misc. obscure options.
@ -658,6 +686,7 @@ CT_ALL_CC_CHOICES="GCC"
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_FORTRAN is not set
# CT_CC_LANG_JIT is not set
# CT_CC_LANG_ADA is not set
# CT_CC_LANG_D is not set
# CT_CC_LANG_OBJC is not set
@ -756,7 +785,9 @@ CT_ISL_PATCH_GLOBAL=y
# CT_ISL_PATCH_LOCAL_BUNDLED is not set
# CT_ISL_PATCH_NONE is not set
CT_ISL_PATCH_ORDER="global"
CT_ISL_V_0_24=y
CT_ISL_V_0_26=y
# CT_ISL_V_0_25 is not set
# CT_ISL_V_0_24 is not set
# CT_ISL_V_0_23 is not set
# CT_ISL_V_0_22 is not set
# CT_ISL_V_0_21 is not set
@ -767,7 +798,7 @@ CT_ISL_V_0_24=y
# CT_ISL_V_0_16 is not set
# CT_ISL_V_0_15 is not set
# CT_ISL_V_0_11 is not set
CT_ISL_VERSION="0.24"
CT_ISL_VERSION="0.26"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -864,10 +895,11 @@ CT_NCURSES_PATCH_GLOBAL=y
# CT_NCURSES_PATCH_LOCAL_BUNDLED is not set
# CT_NCURSES_PATCH_NONE is not set
CT_NCURSES_PATCH_ORDER="global"
CT_NCURSES_V_6_2=y
CT_NCURSES_V_6_4=y
# CT_NCURSES_V_6_2 is not set
# CT_NCURSES_V_6_1 is not set
# CT_NCURSES_V_6_0 is not set
CT_NCURSES_VERSION="6.2"
CT_NCURSES_VERSION="6.4"
CT_NCURSES_MIRRORS="https://invisible-mirror.net/archives/ncurses $(CT_Mirrors GNU ncurses)"
CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -894,14 +926,37 @@ CT_ZLIB_PATCH_GLOBAL=y
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
# CT_ZLIB_PATCH_NONE is not set
CT_ZLIB_PATCH_ORDER="global"
CT_ZLIB_V_1_2_12=y
CT_ZLIB_VERSION="1.2.12"
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_V_1_2_13=y
# CT_ZLIB_V_1_2_12 is not set
CT_ZLIB_VERSION="1.2.13"
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_ZLIB_SIGNATURE_FORMAT="packed/.asc"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB"
CT_COMP_LIBS_ZSTD=y
CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD"
CT_ZSTD_DIR_NAME="zstd"
CT_ZSTD_PKG_NAME="zstd"
CT_ZSTD_SRC_RELEASE=y
# CT_ZSTD_SRC_DEVEL is not set
# CT_ZSTD_SRC_CUSTOM is not set
CT_ZSTD_PATCH_GLOBAL=y
# CT_ZSTD_PATCH_BUNDLED is not set
# CT_ZSTD_PATCH_LOCAL is not set
# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set
# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set
# CT_ZSTD_PATCH_NONE is not set
CT_ZSTD_PATCH_ORDER="global"
CT_ZSTD_V_1_5_5=y
# CT_ZSTD_V_1_5_2 is not set
CT_ZSTD_VERSION="1.5.5"
CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/"
CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_FORMATS=".tar.gz"
CT_ZSTD_SIGNATURE_FORMAT="packed/.sig"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD"
CT_LIBICONV_NEEDED=y
CT_GETTEXT_NEEDED=y
CT_GMP_NEEDED=y
@ -910,6 +965,7 @@ CT_ISL_NEEDED=y
CT_MPC_NEEDED=y
CT_NCURSES_NEEDED=y
CT_ZLIB_NEEDED=y
CT_ZSTD_NEEDED=y
CT_LIBICONV=y
CT_GETTEXT=y
CT_GMP=y
@ -918,6 +974,7 @@ CT_ISL=y
CT_MPC=y
CT_NCURSES=y
CT_ZLIB=y
CT_ZSTD=y
# end of Companion libraries
#

View file

@ -5,8 +5,8 @@ set(triple aarch64-ffbuild-linux-gnu)
set(CMAKE_C_COMPILER ${triple}-gcc)
set(CMAKE_CXX_COMPILER ${triple}-g++)
set(CMAKE_RANLIB ${triple}-ranlib)
set(CMAKE_AR ${triple}-ar)
set(CMAKE_RANLIB ${triple}-gcc-ranlib)
set(CMAKE_AR ${triple}-gcc-ar)
set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot)
set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild)

View file

@ -24,18 +24,24 @@ RUN rustup target add i686-pc-windows-gnu
ADD toolchain.cmake /toolchain.cmake
ADD cross.meson /cross.meson
ENV FFBUILD_TOOLCHAIN=i686-w64-mingw32
ENV PATH="/opt/ct-ng/bin:${PATH}" \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=i686-w64-mingw32- --arch=i686 --target-os=mingw32" \
FFBUILD_TOOLCHAIN=i686-w64-mingw32 \
FFBUILD_CROSS_PREFIX=i686-w64-mingw32- \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=i686 --target-os=mingw32" \
FFBUILD_CROSS_PREFIX=${FFBUILD_TOOLCHAIN}- \
FFBUILD_RUST_TARGET=i686-pc-windows-gnu \
FFBUILD_PREFIX=/opt/ffbuild \
FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \
PKG_CONFIG=pkg-config \
PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \
CC="${FFBUILD_TOOLCHAIN}-gcc" \
CXX="${FFBUILD_TOOLCHAIN}-g++" \
LD="${FFBUILD_TOOLCHAIN}-ld" \
AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \
RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \
NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \
DLLTOOL="${FFBUILD_TOOLCHAIN}-dlltool" \
CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \
CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \
LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong" \
DLLTOOL="i686-w64-mingw32-dlltool" \
STAGE_CFLAGS="-fno-semantic-interposition" \
STAGE_CXXFLAGS="-fno-semantic-interposition"

View file

@ -1,9 +1,11 @@
[binaries]
c = 'i686-w64-mingw32-gcc'
cpp = 'i686-w64-mingw32-g++'
ar = 'i686-w64-mingw32-ar'
ar = 'i686-w64-mingw32-gcc-ar'
ranlib = 'i686-w64-mingw32-gcc-ranlib'
strip = 'i686-w64-mingw32-strip'
windres = 'i686-w64-mingw32-windres'
dlltool = 'i686-w64-mingw32-dlltool'
exe_wrapper = ['wine']
[properties]

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# crosstool-NG 1.25.0.55_3defb7b Configuration
# crosstool-NG 1.25.0.196_227d99d Configuration
#
CT_CONFIGURE_has_static_link=y
CT_CONFIGURE_has_cxx11=y
@ -13,12 +13,13 @@ CT_CONFIGURE_has_make_3_81_or_newer=y
CT_CONFIGURE_has_make_4_0_or_newer=y
CT_CONFIGURE_has_libtool_2_4_or_newer=y
CT_CONFIGURE_has_libtoolize_2_4_or_newer=y
CT_CONFIGURE_has_autoconf_2_65_or_newer=y
CT_CONFIGURE_has_autoreconf_2_65_or_newer=y
CT_CONFIGURE_has_automake_1_15_or_newer=y
CT_CONFIGURE_has_autoconf_2_71_or_newer=y
CT_CONFIGURE_has_autoreconf_2_71_or_newer=y
CT_CONFIGURE_has_automake_1_16_or_newer=y
CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y
CT_CONFIGURE_has_python_3_4_or_newer=y
CT_CONFIGURE_has_bison_2_7_or_newer=y
CT_CONFIGURE_has_bison_3_0_4_or_newer=y
CT_CONFIGURE_has_python=y
CT_CONFIGURE_has_svn=y
CT_CONFIGURE_has_git=y
@ -27,7 +28,7 @@ CT_CONFIGURE_has_sha1sum=y
CT_CONFIGURE_has_sha256sum=y
CT_CONFIGURE_has_sha512sum=y
CT_CONFIGURE_has_install_with_strip_program=y
CT_VERSION="1.25.0.55_3defb7b"
CT_VERSION="1.25.0.196_227d99d"
CT_VCHECK=""
CT_CONFIG_VERSION_ENV="4"
CT_CONFIG_VERSION_CURRENT="4"
@ -45,6 +46,7 @@ CT_MODULES=y
CT_EXPERIMENTAL=y
CT_ALLOW_BUILD_AS_ROOT=y
CT_ALLOW_BUILD_AS_ROOT_SURE=y
# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set
# CT_DEBUG_CT is not set
#
@ -63,6 +65,7 @@ CT_REMOVE_DOCS=y
# CT_PREFIX_DIR_RO is not set
CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y
CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y
# CT_TARBALL_RESULT is not set
#
# Downloading
@ -120,12 +123,11 @@ CT_CONFIG_SHELL="${bash}"
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
CT_LOG_EXTRA=y
# CT_LOG_EXTRA is not set
# CT_LOG_ALL is not set
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
CT_LOG_DEBUG=y
CT_LOG_LEVEL_MAX="DEBUG"
# CT_LOG_SEE_TOOLS_WARN is not set
# CT_LOG_PROGRESS_BAR is not set
# CT_LOG_TO_FILE is not set
# end of Paths and misc options
@ -136,7 +138,9 @@ CT_LOG_LEVEL_MAX="EXTRA"
# CT_ARCH_ARC is not set
# CT_ARCH_ARM is not set
# CT_ARCH_AVR is not set
# CT_ARCH_BPF is not set
# CT_ARCH_C6X is not set
# CT_ARCH_LOONGARCH is not set
# CT_ARCH_M68K is not set
# CT_ARCH_MICROBLAZE is not set
# CT_ARCH_MIPS is not set
@ -161,7 +165,7 @@ CT_ARCH_X86_SHOW=y
# Options for x86
#
CT_ARCH_X86_PKG_KSYM=""
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ARCH_SUFFIX=""
# CT_OMIT_TARGET_VENDOR is not set
@ -171,6 +175,7 @@ CT_ARCH_SUFFIX=""
# CT_MULTILIB is not set
CT_DEMULTILIB=y
CT_ARCH_USE_MMU=y
CT_ARCH_SUPPORTS_LIBSANITIZER=y
CT_ARCH_SUPPORTS_32=y
CT_ARCH_SUPPORTS_64=y
CT_ARCH_DEFAULT_32=y
@ -241,6 +246,7 @@ CT_BUILD_SUFFIX=""
# Operating System
#
CT_WINDOWS=y
CT_KERNEL_SUPPORTS_SHARED_LIBS=y
# CT_KERNEL_BARE_METAL is not set
# CT_KERNEL_LINUX is not set
CT_KERNEL_WINDOWS=y
@ -257,6 +263,7 @@ CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS"
#
# Common kernel options
#
CT_SHARED_LIBS=y
# end of Operating System
#
@ -288,7 +295,9 @@ CT_BINUTILS_PATCH_GLOBAL=y
# CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set
# CT_BINUTILS_PATCH_NONE is not set
CT_BINUTILS_PATCH_ORDER="global"
CT_BINUTILS_V_2_38=y
CT_BINUTILS_V_2_40=y
# CT_BINUTILS_V_2_39 is not set
# CT_BINUTILS_V_2_38 is not set
# CT_BINUTILS_V_2_37 is not set
# CT_BINUTILS_V_2_36 is not set
# CT_BINUTILS_V_2_35 is not set
@ -301,12 +310,14 @@ CT_BINUTILS_V_2_38=y
# CT_BINUTILS_V_2_28 is not set
# CT_BINUTILS_V_2_27 is not set
# CT_BINUTILS_V_2_26 is not set
CT_BINUTILS_VERSION="2.38"
CT_BINUTILS_VERSION="2.40"
CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)"
CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig"
CT_BINUTILS_later_than_2_39=y
CT_BINUTILS_2_39_or_later=y
CT_BINUTILS_later_than_2_30=y
CT_BINUTILS_2_30_or_later=y
CT_BINUTILS_later_than_2_27=y
@ -357,24 +368,29 @@ CT_MINGW_W64_PATCH_GLOBAL=y
# CT_MINGW_W64_PATCH_LOCAL_BUNDLED is not set
# CT_MINGW_W64_PATCH_NONE is not set
CT_MINGW_W64_PATCH_ORDER="global"
CT_MINGW_W64_V_V9_0=y
CT_MINGW_W64_V_V10_0=y
# CT_MINGW_W64_V_V9_0 is not set
# CT_MINGW_W64_V_V8_0 is not set
# CT_MINGW_W64_V_V7_0 is not set
# CT_MINGW_W64_V_V6_0 is not set
# CT_MINGW_W64_V_V5_0 is not set
# CT_MINGW_W64_V_V4_0 is not set
CT_MINGW_W64_VERSION="v9.0.0"
CT_MINGW_W64_VERSION="v10.0.0"
CT_MINGW_W64_MIRRORS="http://downloads.sourceforge.net/sourceforge/mingw-w64 https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/"
CT_MINGW_W64_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_MINGW_W64_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_MINGW_W64_ARCHIVE_FORMATS=".tar.bz2 .zip"
CT_MINGW_W64_SIGNATURE_FORMAT="packed/.sig"
CT_MINGW_SECURE_API=y
# CT_MINGW_DEFAULT_MSVCRT_DEFAULT is not set
# CT_MINGW_DEFAULT_MSVCRT_MSVCRT is not set
CT_MINGW_DEFAULT_MSVCRT_UCRT=y
# CT_MINGW_DEFAULT_MSVCRT_CUSTOM is not set
CT_MINGW_DIRECTX=y
CT_MINGW_DDK=y
CT_MINGW_TOOLS=y
CT_MINGW_TOOL_LIST_ARRAY="gendef genidl genlib genpeimg widl"
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG"
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG"
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
CT_LIBC_SUPPORT_THREADS_POSIX=y
@ -384,6 +400,8 @@ CT_LIBC_SUPPORT_THREADS_POSIX=y
#
# CT_THREADS_NATIVE is not set
CT_THREADS_POSIX=y
# CT_CREATE_LDSO_CONF is not set
CT_LIBC_XLDD=y
# end of C-library
#
@ -394,6 +412,7 @@ CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_D=y
CT_CC_SUPPORT_JIT=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y
CT_CC_SUPPORT_GOLANG=y
@ -422,7 +441,8 @@ CT_GCC_PATCH_GLOBAL=y
# CT_GCC_PATCH_LOCAL_BUNDLED is not set
# CT_GCC_PATCH_NONE is not set
CT_GCC_PATCH_ORDER="global"
CT_GCC_V_12=y
CT_GCC_V_13=y
# CT_GCC_V_12 is not set
# CT_GCC_V_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
@ -431,12 +451,14 @@ CT_GCC_V_12=y
# CT_GCC_V_6 is not set
# CT_GCC_V_5 is not set
# CT_GCC_V_4_9 is not set
CT_GCC_VERSION="12.1.0"
CT_GCC_VERSION="13.1.0"
CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})"
CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_GCC_SIGNATURE_FORMAT=""
CT_GCC_later_than_13=y
CT_GCC_13_or_later=y
CT_GCC_later_than_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
@ -458,8 +480,8 @@ CT_GCC_4_9_or_later=y
CT_CC_GCC_ENABLE_PLUGINS=y
CT_CC_GCC_HAS_LIBMPX=y
CT_CC_GCC_ENABLE_CXX_FLAGS=""
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-default-ssp"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2"
CT_CC_GCC_STATIC_LIBSTDCXX=y
CT_CC_GCC_SYSTEM_ZLIB=y
CT_CC_GCC_CONFIG_TLS=m
@ -479,6 +501,7 @@ CT_CC_GCC_LTO_ZSTD=m
CT_CC_GCC_LIBGOMP=y
CT_CC_GCC_LIBSSP=m
# CT_CC_GCC_LIBQUADMATH is not set
# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set
#
# Misc. obscure options.
@ -506,6 +529,7 @@ CT_ALL_CC_CHOICES="GCC"
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_FORTRAN is not set
# CT_CC_LANG_JIT is not set
# CT_CC_LANG_ADA is not set
# CT_CC_LANG_D is not set
# CT_CC_LANG_OBJC is not set
@ -604,7 +628,9 @@ CT_ISL_PATCH_GLOBAL=y
# CT_ISL_PATCH_LOCAL_BUNDLED is not set
# CT_ISL_PATCH_NONE is not set
CT_ISL_PATCH_ORDER="global"
CT_ISL_V_0_24=y
CT_ISL_V_0_26=y
# CT_ISL_V_0_25 is not set
# CT_ISL_V_0_24 is not set
# CT_ISL_V_0_23 is not set
# CT_ISL_V_0_22 is not set
# CT_ISL_V_0_21 is not set
@ -614,7 +640,7 @@ CT_ISL_V_0_24=y
# CT_ISL_V_0_17 is not set
# CT_ISL_V_0_16 is not set
# CT_ISL_V_0_15 is not set
CT_ISL_VERSION="0.24"
CT_ISL_VERSION="0.26"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -691,14 +717,36 @@ CT_ZLIB_PATCH_GLOBAL=y
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
# CT_ZLIB_PATCH_NONE is not set
CT_ZLIB_PATCH_ORDER="global"
CT_ZLIB_V_1_2_12=y
CT_ZLIB_VERSION="1.2.12"
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_V_1_2_13=y
CT_ZLIB_VERSION="1.2.13"
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_ZLIB_SIGNATURE_FORMAT="packed/.asc"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB"
CT_COMP_LIBS_ZSTD=y
CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD"
CT_ZSTD_DIR_NAME="zstd"
CT_ZSTD_PKG_NAME="zstd"
CT_ZSTD_SRC_RELEASE=y
# CT_ZSTD_SRC_DEVEL is not set
# CT_ZSTD_SRC_CUSTOM is not set
CT_ZSTD_PATCH_GLOBAL=y
# CT_ZSTD_PATCH_BUNDLED is not set
# CT_ZSTD_PATCH_LOCAL is not set
# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set
# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set
# CT_ZSTD_PATCH_NONE is not set
CT_ZSTD_PATCH_ORDER="global"
CT_ZSTD_V_1_5_5=y
# CT_ZSTD_V_1_5_2 is not set
CT_ZSTD_VERSION="1.5.5"
CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/"
CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_FORMATS=".tar.gz"
CT_ZSTD_SIGNATURE_FORMAT="packed/.sig"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD"
# CT_LIBICONV_NEEDED is not set
# CT_GETTEXT_NEEDED is not set
CT_GMP_NEEDED=y
@ -706,11 +754,13 @@ CT_MPFR_NEEDED=y
CT_ISL_NEEDED=y
CT_MPC_NEEDED=y
CT_ZLIB_NEEDED=y
CT_ZSTD_NEEDED=y
CT_GMP=y
CT_MPFR=y
CT_ISL=y
CT_MPC=y
CT_ZLIB=y
CT_ZSTD=y
# end of Companion libraries
#

View file

@ -1,12 +1,16 @@
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR i686)
set(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
set(CMAKE_RC_COMPILER i686-w64-mingw32-windres)
set(CMAKE_RANLIB i686-w64-mingw32-ranlib)
set(triple i686-w64-mingw32)
set(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32 /opt/ffbuild)
set(CMAKE_C_COMPILER ${triple}-gcc)
set(CMAKE_CXX_COMPILER ${triple}-g++)
set(CMAKE_RC_COMPILER ${triple}-windres)
set(CMAKE_RANLIB ${triple}-gcc-ranlib)
set(CMAKE_AR ${triple}-gcc-ar)
set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot)
set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View file

@ -24,18 +24,24 @@ RUN rustup target add x86_64-pc-windows-gnu
ADD toolchain.cmake /toolchain.cmake
ADD cross.meson /cross.meson
ENV FFBUILD_TOOLCHAIN=x86_64-w64-mingw32
ENV PATH="/opt/ct-ng/bin:${PATH}" \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32" \
FFBUILD_TOOLCHAIN=x86_64-w64-mingw32 \
FFBUILD_CROSS_PREFIX=x86_64-w64-mingw32- \
FFBUILD_TARGET_FLAGS="--pkg-config=pkg-config --cross-prefix=${FFBUILD_TOOLCHAIN}- --arch=x86_64 --target-os=mingw32" \
FFBUILD_CROSS_PREFIX=${FFBUILD_TOOLCHAIN}- \
FFBUILD_RUST_TARGET=x86_64-pc-windows-gnu \
FFBUILD_PREFIX=/opt/ffbuild \
FFBUILD_CMAKE_TOOLCHAIN=/toolchain.cmake \
PKG_CONFIG=pkg-config \
PKG_CONFIG_LIBDIR=/opt/ffbuild/lib/pkgconfig:/opt/ffbuild/share/pkgconfig \
CC="${FFBUILD_TOOLCHAIN}-gcc" \
CXX="${FFBUILD_TOOLCHAIN}-g++" \
LD="${FFBUILD_TOOLCHAIN}-ld" \
AR="${FFBUILD_TOOLCHAIN}-gcc-ar" \
RANLIB="${FFBUILD_TOOLCHAIN}-gcc-ranlib" \
NM="${FFBUILD_TOOLCHAIN}-gcc-nm" \
DLLTOOL="${FFBUILD_TOOLCHAIN}-dlltool" \
CFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \
CXXFLAGS="-static-libgcc -static-libstdc++ -I/opt/ffbuild/include -O2 -pipe -D_FORTIFY_SOURCE=2 -fstack-protector-strong" \
LDFLAGS="-static-libgcc -static-libstdc++ -L/opt/ffbuild/lib -O2 -pipe -fstack-protector-strong" \
DLLTOOL="x86_64-w64-mingw32-dlltool" \
STAGE_CFLAGS="-fno-semantic-interposition" \
STAGE_CXXFLAGS="-fno-semantic-interposition"

View file

@ -1,9 +1,11 @@
[binaries]
c = 'x86_64-w64-mingw32-gcc'
cpp = 'x86_64-w64-mingw32-g++'
ar = 'x86_64-w64-mingw32-ar'
ar = 'x86_64-w64-mingw32-gcc-ar'
ranlib = 'x86_64-w64-mingw32-gcc-ranlib'
strip = 'x86_64-w64-mingw32-strip'
windres = 'x86_64-w64-mingw32-windres'
dlltool = 'x86_64-w64-mingw32-dlltool'
exe_wrapper = ['wine']
[properties]

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# crosstool-NG 1.25.0.55_3defb7b Configuration
# crosstool-NG 1.25.0.196_227d99d Configuration
#
CT_CONFIGURE_has_static_link=y
CT_CONFIGURE_has_cxx11=y
@ -13,12 +13,13 @@ CT_CONFIGURE_has_make_3_81_or_newer=y
CT_CONFIGURE_has_make_4_0_or_newer=y
CT_CONFIGURE_has_libtool_2_4_or_newer=y
CT_CONFIGURE_has_libtoolize_2_4_or_newer=y
CT_CONFIGURE_has_autoconf_2_65_or_newer=y
CT_CONFIGURE_has_autoreconf_2_65_or_newer=y
CT_CONFIGURE_has_automake_1_15_or_newer=y
CT_CONFIGURE_has_autoconf_2_71_or_newer=y
CT_CONFIGURE_has_autoreconf_2_71_or_newer=y
CT_CONFIGURE_has_automake_1_16_or_newer=y
CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y
CT_CONFIGURE_has_python_3_4_or_newer=y
CT_CONFIGURE_has_bison_2_7_or_newer=y
CT_CONFIGURE_has_bison_3_0_4_or_newer=y
CT_CONFIGURE_has_python=y
CT_CONFIGURE_has_svn=y
CT_CONFIGURE_has_git=y
@ -27,7 +28,7 @@ CT_CONFIGURE_has_sha1sum=y
CT_CONFIGURE_has_sha256sum=y
CT_CONFIGURE_has_sha512sum=y
CT_CONFIGURE_has_install_with_strip_program=y
CT_VERSION="1.25.0.55_3defb7b"
CT_VERSION="1.25.0.196_227d99d"
CT_VCHECK=""
CT_CONFIG_VERSION_ENV="4"
CT_CONFIG_VERSION_CURRENT="4"
@ -45,6 +46,7 @@ CT_MODULES=y
CT_EXPERIMENTAL=y
CT_ALLOW_BUILD_AS_ROOT=y
CT_ALLOW_BUILD_AS_ROOT_SURE=y
# CT_ENABLE_EXPERIMENTAL_BUNDLED_PATCHES is not set
# CT_DEBUG_CT is not set
#
@ -63,6 +65,7 @@ CT_REMOVE_DOCS=y
# CT_PREFIX_DIR_RO is not set
CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y
CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y
# CT_TARBALL_RESULT is not set
#
# Downloading
@ -120,12 +123,11 @@ CT_CONFIG_SHELL="${bash}"
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
CT_LOG_EXTRA=y
# CT_LOG_EXTRA is not set
# CT_LOG_ALL is not set
# CT_LOG_DEBUG is not set
CT_LOG_LEVEL_MAX="EXTRA"
CT_LOG_DEBUG=y
CT_LOG_LEVEL_MAX="DEBUG"
# CT_LOG_SEE_TOOLS_WARN is not set
# CT_LOG_PROGRESS_BAR is not set
# CT_LOG_TO_FILE is not set
# end of Paths and misc options
@ -136,7 +138,9 @@ CT_LOG_LEVEL_MAX="EXTRA"
# CT_ARCH_ARC is not set
# CT_ARCH_ARM is not set
# CT_ARCH_AVR is not set
# CT_ARCH_BPF is not set
# CT_ARCH_C6X is not set
# CT_ARCH_LOONGARCH is not set
# CT_ARCH_M68K is not set
# CT_ARCH_MICROBLAZE is not set
# CT_ARCH_MIPS is not set
@ -161,7 +165,7 @@ CT_ARCH_X86_SHOW=y
# Options for x86
#
CT_ARCH_X86_PKG_KSYM=""
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR C6X M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR BPF C6X LOONGARCH M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC PRU RISCV S390 SH SPARC X86 XTENSA"
CT_ARCH_SUFFIX=""
# CT_OMIT_TARGET_VENDOR is not set
@ -171,6 +175,7 @@ CT_ARCH_SUFFIX=""
# CT_MULTILIB is not set
CT_DEMULTILIB=y
CT_ARCH_USE_MMU=y
CT_ARCH_SUPPORTS_LIBSANITIZER=y
CT_ARCH_SUPPORTS_32=y
CT_ARCH_SUPPORTS_64=y
CT_ARCH_DEFAULT_32=y
@ -241,6 +246,7 @@ CT_BUILD_SUFFIX=""
# Operating System
#
CT_WINDOWS=y
CT_KERNEL_SUPPORTS_SHARED_LIBS=y
# CT_KERNEL_BARE_METAL is not set
# CT_KERNEL_LINUX is not set
CT_KERNEL_WINDOWS=y
@ -257,6 +263,7 @@ CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS"
#
# Common kernel options
#
CT_SHARED_LIBS=y
# end of Operating System
#
@ -288,7 +295,9 @@ CT_BINUTILS_PATCH_GLOBAL=y
# CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set
# CT_BINUTILS_PATCH_NONE is not set
CT_BINUTILS_PATCH_ORDER="global"
CT_BINUTILS_V_2_38=y
CT_BINUTILS_V_2_40=y
# CT_BINUTILS_V_2_39 is not set
# CT_BINUTILS_V_2_38 is not set
# CT_BINUTILS_V_2_37 is not set
# CT_BINUTILS_V_2_36 is not set
# CT_BINUTILS_V_2_35 is not set
@ -301,12 +310,14 @@ CT_BINUTILS_V_2_38=y
# CT_BINUTILS_V_2_28 is not set
# CT_BINUTILS_V_2_27 is not set
# CT_BINUTILS_V_2_26 is not set
CT_BINUTILS_VERSION="2.38"
CT_BINUTILS_VERSION="2.40"
CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)"
CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig"
CT_BINUTILS_later_than_2_39=y
CT_BINUTILS_2_39_or_later=y
CT_BINUTILS_later_than_2_30=y
CT_BINUTILS_2_30_or_later=y
CT_BINUTILS_later_than_2_27=y
@ -357,24 +368,29 @@ CT_MINGW_W64_PATCH_GLOBAL=y
# CT_MINGW_W64_PATCH_LOCAL_BUNDLED is not set
# CT_MINGW_W64_PATCH_NONE is not set
CT_MINGW_W64_PATCH_ORDER="global"
CT_MINGW_W64_V_V9_0=y
CT_MINGW_W64_V_V10_0=y
# CT_MINGW_W64_V_V9_0 is not set
# CT_MINGW_W64_V_V8_0 is not set
# CT_MINGW_W64_V_V7_0 is not set
# CT_MINGW_W64_V_V6_0 is not set
# CT_MINGW_W64_V_V5_0 is not set
# CT_MINGW_W64_V_V4_0 is not set
CT_MINGW_W64_VERSION="v9.0.0"
CT_MINGW_W64_VERSION="v10.0.0"
CT_MINGW_W64_MIRRORS="http://downloads.sourceforge.net/sourceforge/mingw-w64 https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/"
CT_MINGW_W64_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_MINGW_W64_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_MINGW_W64_ARCHIVE_FORMATS=".tar.bz2 .zip"
CT_MINGW_W64_SIGNATURE_FORMAT="packed/.sig"
CT_MINGW_SECURE_API=y
# CT_MINGW_DEFAULT_MSVCRT_DEFAULT is not set
# CT_MINGW_DEFAULT_MSVCRT_MSVCRT is not set
CT_MINGW_DEFAULT_MSVCRT_UCRT=y
# CT_MINGW_DEFAULT_MSVCRT_CUSTOM is not set
CT_MINGW_DIRECTX=y
CT_MINGW_DDK=y
CT_MINGW_TOOLS=y
CT_MINGW_TOOL_LIST_ARRAY="gendef genidl genlib genpeimg widl"
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC_NG"
CT_ALL_LIBC_CHOICES="AVR_LIBC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE PICOLIBC UCLIBC_NG"
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
CT_LIBC_SUPPORT_THREADS_POSIX=y
@ -384,6 +400,8 @@ CT_LIBC_SUPPORT_THREADS_POSIX=y
#
# CT_THREADS_NATIVE is not set
CT_THREADS_POSIX=y
# CT_CREATE_LDSO_CONF is not set
CT_LIBC_XLDD=y
# end of C-library
#
@ -394,6 +412,7 @@ CT_CC_SUPPORT_CXX=y
CT_CC_SUPPORT_FORTRAN=y
CT_CC_SUPPORT_ADA=y
CT_CC_SUPPORT_D=y
CT_CC_SUPPORT_JIT=y
CT_CC_SUPPORT_OBJC=y
CT_CC_SUPPORT_OBJCXX=y
CT_CC_SUPPORT_GOLANG=y
@ -422,7 +441,8 @@ CT_GCC_PATCH_GLOBAL=y
# CT_GCC_PATCH_LOCAL_BUNDLED is not set
# CT_GCC_PATCH_NONE is not set
CT_GCC_PATCH_ORDER="global"
CT_GCC_V_12=y
CT_GCC_V_13=y
# CT_GCC_V_12 is not set
# CT_GCC_V_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
@ -431,12 +451,14 @@ CT_GCC_V_12=y
# CT_GCC_V_6 is not set
# CT_GCC_V_5 is not set
# CT_GCC_V_4_9 is not set
CT_GCC_VERSION="12.1.0"
CT_GCC_VERSION="13.1.0"
CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})"
CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_GCC_SIGNATURE_FORMAT=""
CT_GCC_later_than_13=y
CT_GCC_13_or_later=y
CT_GCC_later_than_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
@ -458,8 +480,8 @@ CT_GCC_4_9_or_later=y
CT_CC_GCC_ENABLE_PLUGINS=y
CT_CC_GCC_HAS_LIBMPX=y
CT_CC_GCC_ENABLE_CXX_FLAGS=""
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_EXTRA_CONFIG_ARRAY=""
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-default-ssp"
CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-default-ssp --with-build-config=bootstrap-lto-lean --enable-link-serialization=2"
CT_CC_GCC_STATIC_LIBSTDCXX=y
CT_CC_GCC_SYSTEM_ZLIB=y
CT_CC_GCC_CONFIG_TLS=m
@ -479,6 +501,7 @@ CT_CC_GCC_LTO_ZSTD=m
CT_CC_GCC_LIBGOMP=y
CT_CC_GCC_LIBSSP=m
# CT_CC_GCC_LIBQUADMATH is not set
# CT_CC_GCC_LIBSTDCXX_VERBOSE is not set
#
# Misc. obscure options.
@ -506,6 +529,7 @@ CT_ALL_CC_CHOICES="GCC"
#
CT_CC_LANG_CXX=y
# CT_CC_LANG_FORTRAN is not set
# CT_CC_LANG_JIT is not set
# CT_CC_LANG_ADA is not set
# CT_CC_LANG_D is not set
# CT_CC_LANG_OBJC is not set
@ -604,7 +628,9 @@ CT_ISL_PATCH_GLOBAL=y
# CT_ISL_PATCH_LOCAL_BUNDLED is not set
# CT_ISL_PATCH_NONE is not set
CT_ISL_PATCH_ORDER="global"
CT_ISL_V_0_24=y
CT_ISL_V_0_26=y
# CT_ISL_V_0_25 is not set
# CT_ISL_V_0_24 is not set
# CT_ISL_V_0_23 is not set
# CT_ISL_V_0_22 is not set
# CT_ISL_V_0_21 is not set
@ -614,7 +640,7 @@ CT_ISL_V_0_24=y
# CT_ISL_V_0_17 is not set
# CT_ISL_V_0_16 is not set
# CT_ISL_V_0_15 is not set
CT_ISL_VERSION="0.24"
CT_ISL_VERSION="0.26"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -691,14 +717,36 @@ CT_ZLIB_PATCH_GLOBAL=y
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
# CT_ZLIB_PATCH_NONE is not set
CT_ZLIB_PATCH_ORDER="global"
CT_ZLIB_V_1_2_12=y
CT_ZLIB_VERSION="1.2.12"
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_V_1_2_13=y
CT_ZLIB_VERSION="1.2.13"
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_ZLIB_SIGNATURE_FORMAT="packed/.asc"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB"
CT_COMP_LIBS_ZSTD=y
CT_COMP_LIBS_ZSTD_PKG_KSYM="ZSTD"
CT_ZSTD_DIR_NAME="zstd"
CT_ZSTD_PKG_NAME="zstd"
CT_ZSTD_SRC_RELEASE=y
# CT_ZSTD_SRC_DEVEL is not set
# CT_ZSTD_SRC_CUSTOM is not set
CT_ZSTD_PATCH_GLOBAL=y
# CT_ZSTD_PATCH_BUNDLED is not set
# CT_ZSTD_PATCH_LOCAL is not set
# CT_ZSTD_PATCH_BUNDLED_LOCAL is not set
# CT_ZSTD_PATCH_LOCAL_BUNDLED is not set
# CT_ZSTD_PATCH_NONE is not set
CT_ZSTD_PATCH_ORDER="global"
CT_ZSTD_V_1_5_5=y
# CT_ZSTD_V_1_5_2 is not set
CT_ZSTD_VERSION="1.5.5"
CT_ZSTD_MIRRORS="https://github.com/facebook/zstd/releases/download/v${CT_ZSTD_VERSION} https://www.zstd.net/"
CT_ZSTD_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ZSTD_ARCHIVE_FORMATS=".tar.gz"
CT_ZSTD_SIGNATURE_FORMAT="packed/.sig"
CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP GNUPRUMCU ISL LIBELF LIBICONV MPC MPFR NCURSES NEWLIB_NANO PICOLIBC ZLIB ZSTD"
# CT_LIBICONV_NEEDED is not set
# CT_GETTEXT_NEEDED is not set
CT_GMP_NEEDED=y
@ -706,11 +754,13 @@ CT_MPFR_NEEDED=y
CT_ISL_NEEDED=y
CT_MPC_NEEDED=y
CT_ZLIB_NEEDED=y
CT_ZSTD_NEEDED=y
CT_GMP=y
CT_MPFR=y
CT_ISL=y
CT_MPC=y
CT_ZLIB=y
CT_ZSTD=y
# end of Companion libraries
#

View file

@ -1,12 +1,16 @@
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres)
set(CMAKE_RANLIB x86_64-w64-mingw32-ranlib)
set(triple x86_64-w64-mingw32)
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32 /opt/ffbuild)
set(CMAKE_C_COMPILER ${triple}-gcc)
set(CMAKE_CXX_COMPILER ${triple}-g++)
set(CMAKE_RC_COMPILER ${triple}-windres)
set(CMAKE_RANLIB ${triple}-gcc-ranlib)
set(CMAKE_AR ${triple}-gcc-ar)
set(CMAKE_SYSROOT /opt/ct-ng/${triple}/sysroot)
set(CMAKE_FIND_ROOT_PATH /opt/ct-ng /opt/ct-ng/${triple}/sysroot /opt/ffbuild)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View file

@ -1,17 +1,20 @@
FROM ubuntu:22.04
FROM ubuntu:23.04
ENV FFBUILD_DLDIR="/opt/ffdl"
ENV DEBIAN_FRONTEND noninteractive
RUN \
mkdir -p "$FFBUILD_DLDIR" && \
apt-get -y update && \
apt-get -y dist-upgrade && \
apt-get -y install build-essential yasm nasm \
xxd pkgconf curl wget unzip git subversion mercurial \
xxd pkgconf curl wget unzip zip git subversion mercurial \
autoconf automake libtool libtool-bin autopoint gettext cmake clang meson ninja-build \
texinfo texi2html help2man flex bison groff \
gperf itstool ragel libc6-dev libssl-dev \
gtk-doc-tools gobject-introspection gawk \
ocaml ocamlbuild libnum-ocaml-dev indent p7zip-full \
python3-distutils python3-jinja2 python3-apt python-is-python3 && \
python3-distutils python3-jinja2 python3-jsonschema python3-apt python-is-python3 && \
apt-get -y clean && \
git config --global user.email "builder@localhost" && \
git config --global user.name "Builder" && \

View file

@ -11,5 +11,12 @@ export RAW_LDFLAGS="$LDFLAGS"
mkdir -p /stage
source "$1"
cd /stage
ffbuild_dockerbuild
if [[ -n "$3" ]]; then
cd "$3"
fi
if [[ -z "$2" ]]; then
ffbuild_dockerbuild
else
"$2"
fi
rm -rf /stage "$FFBUILD_PREFIX"/bin

View file

@ -18,13 +18,14 @@ docker buildx inspect ffbuilder &>/dev/null || docker buildx create \
--driver-opt env.BUILDKIT_STEP_LOG_MAX_SIZE=-1 \
--driver-opt env.BUILDKIT_STEP_LOG_MAX_SPEED=-1
if [[ -z "$QUICKBUILD" ]]; then
docker container inspect ffbuildreg &>/dev/null || \
docker run --rm -d -p 127.0.0.1:0:5000 --name ffbuildreg registry:2
LOCAL_REG_PORT="$(docker container inspect --format='{{range $p, $conf := .NetworkSettings.Ports}}{{(index $conf 0).HostPort}}{{end}}' ffbuildreg)"
LOCAL_ROOT="127.0.0.1:${LOCAL_REG_PORT}/local"
trap "rm -f '$TMPCFG'; docker container stop ffbuildreg" EXIT
docker container inspect ffbuildreg &>/dev/null || \
docker run --rm -d -p 127.0.0.1:64647:5000 --name ffbuildreg registry:2
LOCAL_REG_PORT="$(docker container inspect --format='{{range $p, $conf := .NetworkSettings.Ports}}{{(index $conf 0).HostPort}}{{end}}' ffbuildreg)"
LOCAL_ROOT="127.0.0.1:${LOCAL_REG_PORT}/local"
export REGISTRY_OVERRIDE_DL="127.0.0.1:${LOCAL_REG_PORT}" GITHUB_REPOSITORY_DL="local"
if [[ -z "$QUICKBUILD" ]]; then
if grep "FROM.*base.*" "images/base-${TARGET}/Dockerfile" >/dev/null 2>&1; then
docker buildx --builder ffbuilder build \
--cache-from=type=local,src=.cache/"${BASE_IMAGE/:/_}" \
@ -38,14 +39,29 @@ if [[ -z "$QUICKBUILD" ]]; then
--push --tag "${LOCAL_ROOT}/base-${TARGET}:latest" \
--build-arg GH_REPO="$LOCAL_ROOT" "images/base-${TARGET}"
export REGISTRY_OVERRIDE="127.0.0.1:${LOCAL_REG_PORT}" GITHUB_REPOSITORY="local"
export REGISTRY_OVERRIDE="$REGISTRY_OVERRIDE_DL" GITHUB_REPOSITORY="$GITHUB_REPOSITORY_DL"
fi
./generate.sh "$TARGET" "$VARIANT" "${ADDINS[@]}"
DL_CACHE_TAG="$(./util/get_dl_cache_tag.sh)"
DL_IMAGE="${DL_IMAGE_RAW}:${DL_CACHE_TAG}"
if docker pull "${DL_IMAGE}"; then
export REGISTRY_OVERRIDE_DL="$REGISTRY" GITHUB_REPOSITORY_DL="$REPO"
./generate.sh "$TARGET" "$VARIANT" "${ADDINS[@]}"
else
DL_IMAGE="${LOCAL_ROOT}/dl_cache:${DL_CACHE_TAG}"
docker manifest inspect --insecure "${DL_IMAGE}" >/dev/null ||
docker buildx --builder ffbuilder build -f Dockerfile.dl \
--cache-from=type=local,src=.cache/dl_image_cache \
--cache-to=type=local,mode=max,dest=.cache/dl_image_cache \
--push --tag "${DL_IMAGE}" .
fi
docker buildx --builder ffbuilder build \
--cache-from=type=local,src=.cache/"${IMAGE/:/_}" \
--cache-to=type=local,mode=max,dest=.cache/"${IMAGE/:/_}" \
--load --tag "$IMAGE" .
docker container stop ffbuildreg
docker buildx rm -f ffbuilder

View file

@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mingw-std-threads
cd mingw-std-threads
cd "$FFBUILD_DLDIR/$SELF"
mkdir -p "$FFBUILD_PREFIX"/include
cp *.h "$FFBUILD_PREFIX"/include

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/mirror/mingw-w64.git"
SCRIPT_COMMIT="d4a0c84d908243a45255a06dc293d3d7c06db98c"
SCRIPT_REPO="https://git.code.sf.net/p/mingw-w64/mingw-w64.git"
SCRIPT_COMMIT="3638d5e9a6f28354bc3e18f04ba0d97e2cc3b44c"
ffbuild_enabled() {
[[ $TARGET == win* ]] || return -1
@ -17,9 +17,12 @@ ffbuild_dockerfinal() {
to_df "COPY --from=${PREVLAYER} /opt/mingw/. /"
}
ffbuild_dockerdl() {
to_df "RUN retry-tool sh -c \"rm -rf mingw && git clone '$SCRIPT_REPO' mingw\" && cd mingw && git checkout \"$SCRIPT_COMMIT\""
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mingw
cd mingw
cd "$FFBUILD_DLDIR/mingw"
cd mingw-w64-headers
@ -34,6 +37,7 @@ ffbuild_dockerbuild() {
--prefix="$GCC_SYSROOT/usr/$FFBUILD_TOOLCHAIN"
--host="$FFBUILD_TOOLCHAIN"
--with-default-win32-winnt="0x601"
--with-default-msvcrt=ucrt
--enable-idl
)

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/util/macros.git"
SCRIPT_COMMIT="0326ba3c4caa34116c0e7e4af98661858cf25d1c"
SCRIPT_COMMIT="cb147377e9341af05232f95814022abdecf14024"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -14,8 +14,7 @@ ffbuild_dockerlayer() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xorg-macros
cd xorg-macros
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i
./configure --prefix="$FFBUILD_PREFIX"

View file

@ -1,18 +1,21 @@
#!/bin/bash
SCRIPT_REPO="https://git.savannah.gnu.org/git/libiconv.git"
SCRIPT_COMMIT="2582e7bb06f1638877713400e2d11db547798a49"
SCRIPT_COMMIT="6e2b31f6d66739c5abd850338ea68c6bd2012812"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" iconv
cd iconv
ffbuild_dockerdl() {
to_df "RUN retry-tool sh -c \"rm -rf $SELF && git clone '$SCRIPT_REPO' $SELF\" && git -C $SELF checkout \"$SCRIPT_COMMIT\""
to_df "RUN cd $SELF && retry-tool ./autopull.sh --one-time"
}
./gitsub.sh pull
./autogen.sh
ffbuild_dockerbuild() {
cd "$FFBUILD_DLDIR/$SELF"
(unset CC CFLAGS GMAKE && ./autogen.sh)
local myconf=(
--prefix="$FFBUILD_PREFIX"

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.gnome.org/GNOME/libxml2.git"
SCRIPT_COMMIT="ad338ca737c4df5a4d1c28f8ee18b878572f2964"
SCRIPT_COMMIT="884474477284474e0151280aaa275a18e3d7a036"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxml2
cd libxml2
cd "$FFBUILD_DLDIR/$SELF"
local myconf=(
--prefix="$FFBUILD_PREFIX"

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/madler/zlib.git"
SCRIPT_COMMIT="21767c654d31d2dccdde4330529775c6c5fd5389"
SCRIPT_COMMIT="04f42ceca40f73e2978b50e93806c2a18c1281fc"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" zlib
cd zlib
cd "$FFBUILD_DLDIR/$SELF"
local myconf=(
--prefix="$FFBUILD_PREFIX"

View file

@ -1,17 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/FFTW/fftw3.git"
SCRIPT_COMMIT="619564efbf84199f87e1a3047da00b600208fca2"
SCRIPT_COMMIT="69f6c1a6ebd7ac5af33e7074134fb79fbc729c3d"
ffbuild_enabled() {
# Dependency of GPL-Only librubberband
[[ $VARIANT == lgpl* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT_PINNED" fftw3
cd fftw3
cd "$FFBUILD_DLDIR/$SELF"
local myconf=(
--prefix="$FFBUILD_PREFIX"

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/freetype/freetype.git"
SCRIPT_COMMIT="dd91f6e7f5a051818070c49715125fb72074023e"
SCRIPT_COMMIT="dec2743e6a2a40cddfc8a9892895cb4f861e1eeb"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" freetype
cd freetype
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/fribidi/fribidi.git"
SCRIPT_COMMIT="6428d8469e536bcbb6e12c7b79ba6659371c435a"
SCRIPT_COMMIT="b54871c339dabb7434718da3fed2fa63320997e5"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fribidi
cd fribidi
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://gmplib.org/repo/gmp/"
SCRIPT_HGREV="b0d6b9f5807e"
SCRIPT_REPO="https://github.com/BtbN/gmplib.git"
SCRIPT_COMMIT="1d7f62515fc8f5109fabace9592d863417f17c37"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
retry-tool sh -c "rm -rf gmp && hg clone -r '$SCRIPT_HGREV' -u '$SCRIPT_HGREV' '$SCRIPT_REPO' gmp"
cd gmp
cd "$FFBUILD_DLDIR/$SELF"
./.bootstrap

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/xiph/ogg.git"
SCRIPT_COMMIT="3069cc2bb44160982cdb21b2b8f0660c76b17572"
SCRIPT_COMMIT="db5c7a49ce7ebda47b15b78471e78fb7f2483e22"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ogg
cd ogg
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,16 +1,20 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/openssl/openssl.git"
SCRIPT_COMMIT="OpenSSL_1_1_1q"
SCRIPT_TAGFILTER="OpenSSL_1_1_1*"
SCRIPT_COMMIT="openssl-3.0.9"
SCRIPT_TAGFILTER="openssl-3.0.*"
ffbuild_enabled() {
return 0
}
ffbuild_dockerdl() {
default_dl "$SELF"
to_df "RUN git -C \"$SELF\" submodule update --init --recursive --depth=1"
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" openssl
cd openssl
cd "$FFBUILD_DLDIR/$SELF"
local myconf=(
threads
@ -20,6 +24,7 @@ ffbuild_dockerbuild() {
enable-ec
enable-srp
--prefix="$FFBUILD_PREFIX"
--libdir=lib
)
if [[ $TARGET == win64 ]]; then
@ -47,10 +52,24 @@ ffbuild_dockerbuild() {
return -1
fi
export CFLAGS="$CFLAGS -fno-strict-aliasing"
export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
# OpenSSL build system prepends the cross prefix itself
export CC="${CC/${FFBUILD_CROSS_PREFIX}/}"
export CXX="${CXX/${FFBUILD_CROSS_PREFIX}/}"
export AR="${AR/${FFBUILD_CROSS_PREFIX}/}"
export RANLIB="${RANLIB/${FFBUILD_CROSS_PREFIX}/}"
./Configure "${myconf[@]}"
sed -i -e "/^CFLAGS=/s|=.*|=${CFLAGS}|" -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" Makefile
make -j$(nproc)
make -j$(nproc) build_sw
make install_sw
}
ffbuild_configure() {
[[ $TARGET == win* ]] && return 0
echo --enable-openssl
}

View file

@ -1,20 +1,20 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/xz-mirror/xz.git"
SCRIPT_COMMIT="4773608554d1b684a05ff9c1d879cf5c42266d33"
SCRIPT_COMMIT="66bdcfa85fef2911cc80f5f30fed3f9610faccb4"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xz
cd xz
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh --no-po4a
./autogen.sh --no-po4a --no-doxygen
local myconf=(
--prefix="$FFBUILD_PREFIX"
--disable-symbol-versions
--disable-shared
--enable-static
--with-pic

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/fontconfig/fontconfig.git"
SCRIPT_COMMIT="fd0753af88f746fd3d729bf6e1df08eefeeaa3ac"
SCRIPT_COMMIT="7e2a1b2577e8d90ea5be3f14091e809ac7742438"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fc
cd fc
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh --noconf
@ -22,7 +21,13 @@ ffbuild_dockerbuild() {
--enable-static
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
if [[ $TARGET == linux* ]]; then
myconf+=(
--sysconfdir=/etc
--localstatedir=/var
--host="$FFBUILD_TOOLCHAIN"
)
elif [[ $TARGET == win* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/harfbuzz/harfbuzz.git"
SCRIPT_COMMIT="29d5c7f67adc673391bcb8ab1ffeb8f4d4524eb8"
SCRIPT_COMMIT="73ee9c346f3acccbe14a4caf258b636de7c459be"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" harfbuzz
cd harfbuzz
cd "$FFBUILD_DLDIR/$SELF"
local myconf=(
--prefix="$FFBUILD_PREFIX"

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/libsndfile/libsamplerate.git"
SCRIPT_COMMIT="aee38d0bc797d0d1a3774ef574af1d5d248d2398"
SCRIPT_COMMIT="22bd06eb114850ebe31981eb794d150a95439fef"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libsr
cd libsr
cd "$FFBUILD_DLDIR/$SELF"
mkdir build
cd build

View file

@ -8,8 +8,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libudfread
cd libudfread
cd "$FFBUILD_DLDIR/$SELF"
./bootstrap

View file

@ -8,8 +8,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vorbis
cd vorbis
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,28 +1,33 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/KhronosGroup/OpenCL-Headers.git"
SCRIPT_COMMIT="3c4c95c2cd1b1ba1f13dabe827d047db30f68257"
SCRIPT_COMMIT="e049b16b5f157e2f28e7b5c301e71e1ccb3fe288"
SCRIPT_REPO2="https://github.com/KhronosGroup/OpenCL-ICD-Loader.git"
SCRIPT_COMMIT2="7072cf2ae9d9acb6be8f4fc956f1cdbf0675695b"
SCRIPT_COMMIT2="229410f86a8c8c9e0f86f195409e5481a2bae067"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
mkdir opencl && cd opencl
ffbuild_dockerdl() {
default_dl opencl/headers
to_df "RUN git-mini-clone \"$SCRIPT_REPO2\" \"$SCRIPT_COMMIT2\" opencl/loader"
}
ffbuild_dockerbuild() {
cd "$FFBUILD_DLDIR"/opencl
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" headers
mkdir -p "$FFBUILD_PREFIX"/include/CL
cp -r headers/CL/* "$FFBUILD_PREFIX"/include/CL/.
git-mini-clone "$SCRIPT_REPO2" "$SCRIPT_COMMIT2" loader
cd loader
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DOPENCL_ICD_LOADER_HEADERS_DIR="$FFBUILD_PREFIX"/include -DOPENCL_ICD_LOADER_BUILD_SHARED_LIBS=OFF -DOPENCL_ICD_LOADER_DISABLE_OPENCLON12=ON -DOPENCL_ICD_LOADER_PIC=ON -DOPENCL_ICD_LOADER_BUILD_TESTING=OFF -DBUILD_TESTING=OFF ..
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DOPENCL_ICD_LOADER_HEADERS_DIR="$FFBUILD_PREFIX"/include -DOPENCL_ICD_LOADER_BUILD_SHARED_LIBS=OFF \
-DOPENCL_ICD_LOADER_DISABLE_OPENCLON12=ON -DOPENCL_ICD_LOADER_PIC=ON \
-DOPENCL_ICD_LOADER_BUILD_TESTING=OFF -DBUILD_TESTING=OFF ..
make -j$(nproc)
make install
@ -34,12 +39,13 @@ ffbuild_dockerbuild() {
echo "Name: OpenCL" >> OpenCL.pc
echo "Description: OpenCL ICD Loader" >> OpenCL.pc
echo "Version: 9999" >> OpenCL.pc
echo "Libs: -L\${libdir} -lOpenCL" >> OpenCL.pc
echo "Cflags: -I\${includedir}" >> OpenCL.pc
if [[ $TARGET == linux* ]]; then
echo "Libs: -L\${libdir} -lOpenCL" >> OpenCL.pc
echo "Libs.private: -ldl" >> OpenCL.pc
elif [[ $TARGET == win* ]]; then
echo "Libs: -L\${libdir} -l:OpenCL.a" >> OpenCL.pc
echo "Libs.private: -lole32 -lshlwapi -lcfgmgr32" >> OpenCL.pc
fi

View file

@ -1,17 +1,19 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git"
SCRIPT_COMMIT="8fe50bbc31e11abf2f30864f1e2dbdaa16d0e1c3"
SCRIPT_COMMIT="e96d278bfc514f290b60c9e924fabc1c772e1689"
ffbuild_enabled() {
[[ $TARGET == linux* ]] || return 1
return 0
}
ffbuild_dockerdl() {
to_df "RUN git clone --filter=blob:none \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\""
}
ffbuild_dockerbuild() {
git clone --filter=blob:none "$SCRIPT_REPO" pa
cd pa
git checkout "$SCRIPT_COMMIT"
cd "$FFBUILD_DLDIR/$SELF"
# Kill build of utils and their sndfile dep
echo > src/utils/meson.build

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/Netflix/vmaf.git"
SCRIPT_COMMIT="23d3bb6d4d6f33cdc057bc5660c12ea896908741"
SCRIPT_COMMIT="98bdd77b296da207ab42c3113ec8f30de58db197"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vmaf
cd vmaf
cd "$FFBUILD_DLDIR/$SELF"
# Kill build of unused and broken tools
echo > libvmaf/tools/meson.build

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/proto/xcbproto.git"
SCRIPT_COMMIT="23865049477f44a6b2fdc9580ee6e857a7f99854"
SCRIPT_COMMIT="91178913c25b19e0457cdf6d21e00e6a613823e2"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xcbproto
cd xcbproto
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/proto/xorgproto.git"
SCRIPT_COMMIT="aa1543ef9d156ff5f41e31777310cb2f8bc92a92"
SCRIPT_COMMIT="766967322209f2dcb72e6a8edea0c651f586201d"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xproto
cd xproto
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxtrans.git"
SCRIPT_COMMIT="c761c6505d49e8381a3eae94f2e5e118cbdf6487"
SCRIPT_COMMIT="3b3a3bd75d86aec78f6ef893b198c3efc378bc64"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxtrans
cd libxtrans
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxau.git"
SCRIPT_COMMIT="4fbefa02d6c842401ff79065d364edd7087a12a6"
SCRIPT_COMMIT="df1bf4fe528a5a9eef420f78efb225e4696ac467"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxau
cd libxau
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcb.git"
SCRIPT_COMMIT="9dcb08170898d3bd5ddb3bc26c514a6bfccf3fae"
SCRIPT_COMMIT="8935793f1f3751a6aa9d78955c7d6236177986de"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxcb
cd libxcb
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libx11.git"
SCRIPT_COMMIT="1272879074ad9612314858a75cf844783c1963b2"
SCRIPT_COMMIT="af2b6dfab1616dc85be9c9b196e4c56d00447851"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libx11
cd libx11
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxext.git"
SCRIPT_COMMIT="c6eded76e212419518bd955cad58c96b8653840e"
SCRIPT_COMMIT="de2ebd62c1eb8fe16c11aceac4a6981bda124cf4"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxext
cd libxext
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxfixes.git"
SCRIPT_COMMIT="d10ec36c81a6b488d1f700a28c5bff4714287b78"
SCRIPT_COMMIT="c1cab28e27dd1c5a81394965248b57e490ccf2ca"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxfixes
cd libxfixes
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxi.git"
SCRIPT_COMMIT="08431d0684f9a1edf199f6c6060d2bef1ac78399"
SCRIPT_COMMIT="3a7503ec7703f10de17c622ea22b7bff736cea74"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxi
cd libxi
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxinerama.git"
SCRIPT_COMMIT="f7c9b2cdd92cfcc1fcf0eb94c7fc5daaed2786f4"
SCRIPT_COMMIT="51c28095951676a5896437c4c3aa40fb1972bad2"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxinerama
cd libxinerama
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrender.git"
SCRIPT_COMMIT="e314946813bcb96e8baedc1a290c48a2aa6ef162"
SCRIPT_COMMIT="07efd80468f6b595e6432edd28b8560ca7695ba0"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxrender
cd libxrender
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxscrnsaver.git"
SCRIPT_COMMIT="d39f92be6b513c28546ebb0baf335f32ab154a89"
SCRIPT_COMMIT="9b4e000c6c4ae213a3e52345751d885543f17929"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxscrnsaver
cd libxscrnsaver
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxxf86vm.git"
SCRIPT_COMMIT="8cb2b07b8f83bc6385c41c7cdd6051a66dced0ff"
SCRIPT_COMMIT="cfda59347e3a04415340a99f925a9cd85c0531b2"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxxf86vm
cd libxxf86vm
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/glvnd/libglvnd.git"
SCRIPT_COMMIT="1d270ce502bd5510754422377139a2028e7f477f"
SCRIPT_COMMIT="179d7278d7485ceea2d440807be9d677d32aedc4"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" glvnd
cd glvnd
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxcursor.git"
SCRIPT_COMMIT="27adb16027fa99d83818a0ed9f6623cb03f0c574"
SCRIPT_COMMIT="a353f02a7ac4504ad5edb5407278c7a03c507aef"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxcursor
cd libxcursor
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrandr.git"
SCRIPT_COMMIT="d66693441f688867e6fd4a5d4a4bdade9a338755"
SCRIPT_COMMIT="5b96863cf2a34ee9e72ffc4ec6415bc59b6121fc"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxrandr
cd libxrandr
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxv.git"
SCRIPT_COMMIT="ee48980aca0bc9deb61458fdb5ebda3928d944a0"
SCRIPT_COMMIT="b022c9cf7004fe6f794c4c00dd519a2e4c74eca0"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -10,8 +10,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxv
cd libxv
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -12,6 +12,10 @@ ffbuild_dockerlayer() {
to_df "COPY --from=${SELFLAYER} \$FFBUILD_PREFIX/share/aclocal/. /usr/share/aclocal"
}
ffbuild_dockerdl() {
return 0
}
ffbuild_dockerbuild() {
rm "$FFBUILD_PREFIX"/lib/lib*.so* || true
rm "$FFBUILD_PREFIX"/lib/*.la || true

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git"
SCRIPT_COMMIT="9f558757af85029541110139586c35f8d4c6b2ad"
SCRIPT_COMMIT="68f2396f1a55a5b12767f5433411bb4093ea65ed"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" amf
cd amf
cd "$FFBUILD_DLDIR/$SELF"
mkdir -p "$FFBUILD_PREFIX"/include
mv amf/public/include "$FFBUILD_PREFIX"/include/AMF

View file

@ -1,19 +1,18 @@
#!/bin/bash
SCRIPT_REPO="https://aomedia.googlesource.com/aom"
SCRIPT_COMMIT="ff3923f48404c91ae3000cf66399f6a18f396ab0"
SCRIPT_COMMIT="83ccc009eade321c8723ae0da8655fc68ce6a128"
ffbuild_enabled() {
return 0
}
ffbuild_dockerstage() {
to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/aom,dst=/patches run_stage /stage.sh"
to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=/,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/aom,dst=/patches run_stage /stage.sh"
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aom
cd aom
cd "$FFBUILD_DLDIR/$SELF"
for patch in /patches/*.patch; do
echo "Applying $patch"

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/glennrp/libpng.git"
SCRIPT_COMMIT="a37d4836519517bdce6cb9d956092321eca3e73b"
SCRIPT_COMMIT="82414985c1085737bccd3eedb0aaa997451f5d32"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libpng
cd libpng
cd "$FFBUILD_DLDIR/$SELF"
autoreconf -i

View file

@ -8,12 +8,11 @@ ffbuild_enabled() {
}
ffbuild_dockerstage() {
to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/aribb24,dst=/patches run_stage /stage.sh"
to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=/,dst=\$FFBUILD_DLDIR,from=${DL_IMAGE},rw --mount=src=patches/aribb24,dst=/patches run_stage /stage.sh"
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aribb24
cd aribb24
cd "$FFBUILD_DLDIR/$SELF"
for patch in /patches/*.patch; do
echo "Applying $patch"

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/AviSynth/AviSynthPlus.git"
SCRIPT_COMMIT="9b55e9cd7e0f2b251b6a3d6930af08d31cd90d6e"
SCRIPT_COMMIT="fc5b9bc41fd47001b7da39ea777d29c0ede2a2a7"
ffbuild_enabled() {
[[ $VARIANT == lgpl* ]] && return -1
@ -9,8 +9,10 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" avisynth
cd avisynth
cd "$FFBUILD_DLDIR/$SELF"
# their version check is insistant on a tag to exist, so make one
git tag -a ffbuild -m "FFbuild Version"
mkdir build && cd build

33
scripts.d/50-chromaprint.sh Executable file
View file

@ -0,0 +1,33 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/acoustid/chromaprint.git"
SCRIPT_COMMIT="aa67c95b9e486884a6d3ee8b0c91207d8c2b0551"
ffbuild_enabled() {
# pkg-config check is currently only available in master
[[ $ADDINS_STR == *4.4* ]] && return -1
[[ $ADDINS_STR == *5.0* ]] && return -1
[[ $ADDINS_STR == *5.1* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_SHARED_LIBS=OFF -DBUILD_TOOLS=OFF -DBUILD_TESTS=OFF -DFFT_LIB=fftw3 ..
make -j$(nproc)
make install
echo "Libs.private: -lfftw3 -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/libchromaprint.pc
echo "Cflags.private: -DCHROMAPRINT_NODLL" >> "$FFBUILD_PREFIX"/lib/pkgconfig/libchromaprint.pc
}
ffbuild_configure() {
echo --enable-chromaprint
}
ffbuild_unconfigure() {
echo --disable-chromaprint
}

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://code.videolan.org/videolan/dav1d.git"
SCRIPT_COMMIT="a3a55b18494f5dd1e34f289298f78ffa4f32a25d"
SCRIPT_COMMIT="a7e12b628472516718d37108fde7d438b14a0372"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" dav1d
cd dav1d
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/pkuvcl/davs2.git"
SCRIPT_COMMIT="b06d7585620f4e90a6d19a2926bb4e59793b8942"
SCRIPT_COMMIT="b41cf117452e2d73d827f02d3e30aa20f1c721ac"
ffbuild_enabled() {
[[ $VARIANT == lgpl* ]] && return -1
@ -11,10 +11,12 @@ ffbuild_enabled() {
return 0
}
ffbuild_dockerdl() {
to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\""
}
ffbuild_dockerbuild() {
git clone "$SCRIPT_REPO" davs2
cd davs2
git checkout "$SCRIPT_COMMIT"
cd "$FFBUILD_DLDIR/$SELF"
cd build/linux
local myconf=(
@ -33,6 +35,10 @@ ffbuild_dockerbuild() {
return -1
fi
# Work around configure endian check failing on modern gcc/binutils.
# Assumes all supported archs are little endian.
sed -i -e 's/EGIB/bss/g' -e 's/naidnePF/bss/g' configure
./configure "${myconf[@]}"
make -j$(nproc)
make install

View file

@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fdk
cd fdk
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,15 +1,27 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/FFmpeg/nv-codec-headers.git"
SCRIPT_COMMIT="3ed7c9a0a2c0b698b83088e13008f3ec983219b2"
SCRIPT_COMMIT="855f8263d97bbdcaeabaaaa2997e1ccad7c52dc3"
SCRIPT_REPO2="https://github.com/FFmpeg/nv-codec-headers.git"
SCRIPT_COMMIT2="dc3e4484dc83485734e503991fe5ed3bdf256fba"
SCRIPT_BRANCH2="sdk/11.1"
ffbuild_enabled() {
return 0
}
ffbuild_dockerdl() {
default_dl ffnvcodec
to_df "RUN git-mini-clone \"$SCRIPT_REPO2\" \"$SCRIPT_COMMIT2\" ffnvcodec2"
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ffnvcodec
cd ffnvcodec
if [[ $ADDINS_STR == *4.4* || $ADDINS_STR == *5.0* || $ADDINS_STR == *5.1* ]]; then
cd "$FFBUILD_DLDIR"/ffnvcodec2
else
cd "$FFBUILD_DLDIR"/ffnvcodec
fi
make PREFIX="$FFBUILD_PREFIX" install
}

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/dyne/frei0r.git"
SCRIPT_COMMIT="a9d15ff07e130baf3408da6e1f1b22f82e7c62b6"
SCRIPT_COMMIT="c3f987c4cc8c1a7f6928e574f4cb272a7770ca6f"
ffbuild_enabled() {
[[ $VARIANT == lgpl* ]] && return -1
@ -10,32 +10,19 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" frei0r
cd frei0r
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh
mkdir build && cd build
local myconf=(
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--with-pic
--enable-cpuflags
)
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" ..
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return -1
fi
mkdir -p "$FFBUILD_PREFIX"/lib/pkgconfig
cp frei0r.pc "$FFBUILD_PREFIX"/lib/pkgconfig
./configure "${myconf[@]}"
make -C include -j$(nproc)
make -C include install
make install-pkgconfigDATA
mkdir -p "$FFBUILD_PREFIX"/include
cp ../include/frei0r.h "$FFBUILD_PREFIX"/include
cat frei0r.pc
}
ffbuild_configure() {

View file

@ -7,10 +7,12 @@ ffbuild_enabled() {
return 0
}
ffbuild_dockerdl() {
to_df "RUN git clone \"$SCRIPT_REPO\" \"$SELF\" && git -C \"$SELF\" checkout \"$SCRIPT_COMMIT\""
}
ffbuild_dockerbuild() {
git clone "$SCRIPT_REPO" gme
cd gme
git checkout "$SCRIPT_COMMIT"
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/ultravideo/kvazaar.git"
SCRIPT_COMMIT="d6032feab140a294cb72da708ea19c05a27d77d0"
SCRIPT_COMMIT="aaae5b0f4926065136f287876c6bc41631bae692"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" kvazaar
cd kvazaar
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/libass/libass.git"
SCRIPT_COMMIT="a48c98c274df25cc8d60cac1402948387d49840c"
SCRIPT_COMMIT="1a599b1db748dfc07df98cd37d8603edb87da2fd"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ass
cd ass
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh
@ -29,6 +28,8 @@ ffbuild_dockerbuild() {
return -1
fi
export CFLAGS="$CFLAGS -Dread_file=libass_internal_read_file"
./configure "${myconf[@]}"
make -j$(nproc)
make install

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://code.videolan.org/videolan/libbluray.git"
SCRIPT_COMMIT="9a2d23d049760ef9cc9661ff90011a84d90368f1"
SCRIPT_COMMIT="bb5bc108ec695889855f06df338958004ff289ef"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libbluray
cd libbluray
cd "$FFBUILD_DLDIR/$SELF"
./bootstrap

View file

@ -1,34 +1,19 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/google/brotli.git"
SCRIPT_COMMIT="9801a2c5d6c67c467ffad676ac301379bb877fc3"
SCRIPT_COMMIT="413b098564a90a2e6cae192d30642d33a9197a39"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" brotli
cd brotli
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=OFF ..
ninja -j$(nproc)
ninja install
# Build system is severely lacking in options, clean up after it
rm -r "${FFBUILD_PREFIX}"/bin
mv "${FFBUILD_PREFIX}"/lib/libbrotlienc{-static,}.a
mv "${FFBUILD_PREFIX}"/lib/libbrotlidec{-static,}.a
mv "${FFBUILD_PREFIX}"/lib/libbrotlicommon{-static,}.a
if [[ $TARGET == win* ]]; then
rm "${FFBUILD_PREFIX}"/lib/libbrotli*.dll.a
elif [[ $TARGET == linux* ]]; then
rm "${FFBUILD_PREFIX}"/lib/libbrotli*.so*
else
echo "Unknown target"
return -1
fi
}

View file

@ -1,18 +1,23 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/libjxl/libjxl.git"
SCRIPT_COMMIT="0103e5a901b776c46b55081fd6b647fbdd618472"
SCRIPT_COMMIT="c3a4f9ca89ae59c6265a2f1bf2a6d2a87a71fc16"
ffbuild_enabled() {
[[ $ADDINS_STR == *4.4* ]] && return -1
[[ $ADDINS_STR == *5.0* ]] && return -1
[[ $ADDINS_STR == *5.1* ]] && return -1
[[ $ADDINS_STR == *6.0* ]] && return -1
return 0
}
ffbuild_dockerdl() {
default_dl "$SELF"
to_df "RUN git -C \"$SELF\" submodule update --init --recursive --depth 1 --recommend-shallow third_party/highway third_party/skcms"
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" jxl
cd jxl
git submodule update --init --recursive --depth 1 --recommend-shallow third_party/{highway,skcms}
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build
@ -27,7 +32,7 @@ ffbuild_dockerbuild() {
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DBUILD_SHARED_LIBS=OFF -DJPEGXL_STATIC=OFF -DJPEGXL_ENABLE_TOOLS=OFF -DJPEGXL_ENABLE_VIEWERS=OFF -DJPEGXL_EMSCRIPTEN=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF \
-DBUILD_TESTING=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JNI=OFF -DJPEGXL_ENABLE_PLUGINS=OFF \
-DJPEGXL_ENABLE_JPEGLI=OFF -DBUILD_TESTING=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_JNI=OFF -DJPEGXL_ENABLE_PLUGINS=OFF \
-DJPEGXL_ENABLE_DEVTOOLS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_BUNDLE_LIBPNG=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON ..
ninja -j$(nproc)
ninja install

View file

@ -7,9 +7,12 @@ ffbuild_enabled() {
return 0
}
ffbuild_dockerdl() {
to_df "RUN retry-tool sh -c \"rm -rf lame && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' lame\""
}
ffbuild_dockerbuild() {
retry-tool sh -c "rm -rf lame && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' lame"
cd lame
cd "$FFBUILD_DLDIR"/lame
autoreconf -i
@ -33,6 +36,8 @@ ffbuild_dockerbuild() {
return -1
fi
export CFLAGS="$CFLAGS -DNDEBUG"
./configure "${myconf[@]}"
make -j$(nproc)
make install

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/xiph/opus.git"
SCRIPT_COMMIT="997fdf54e781ae1c04dee42018f35388a04fe483"
SCRIPT_COMMIT="9fc8fc4cf432640f284113ba502ee027268b0d9f"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" opus
cd opus
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/ARMmbed/mbedtls.git"
SCRIPT_COMMIT="v3.2.1"
SCRIPT_COMMIT="v3.4.0"
SCRIPT_TAGFILTER="v3.*"
ffbuild_enabled() {
@ -9,8 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mbedtls
cd mbedtls
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build
@ -21,8 +20,3 @@ ffbuild_dockerbuild() {
make -j$(nproc)
make install
}
ffbuild_configure() {
[[ $TARGET == win* ]] && return -1
echo --enable-mbedtls
}

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://code.videolan.org/rist/librist.git"
SCRIPT_COMMIT="809390b3b75a259a704079d0fb4d8f1b5f7fa956"
SCRIPT_COMMIT="04ba78abb6f8f673da0cc75056df876178e504fb"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" librist
cd librist
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://git.libssh.org/projects/libssh.git"
SCRIPT_COMMIT="e5af9524e325eb534528df4964e84037ed2f8b2d"
SCRIPT_COMMIT="a7f85944c8c04cd1aba1a122b766f5d04db51050"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libssh
cd libssh
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -8,8 +8,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" theora
cd theora
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://chromium.googlesource.com/webm/libvpx"
SCRIPT_COMMIT="028fc1b50f196cab1ec93816654fbefe64f20cf3"
SCRIPT_COMMIT="b2c2955c8200ff434f178009df41a1e1e1623156"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libvpx
cd libvpx
cd "$FFBUILD_DLDIR/$SELF"
local myconf=(
--disable-shared
@ -18,6 +17,7 @@ ffbuild_dockerbuild() {
--disable-examples
--disable-tools
--disable-docs
--disable-unit-tests
--enable-vp9-highbitdepth
--prefix="$FFBUILD_PREFIX"
)
@ -50,6 +50,9 @@ ffbuild_dockerbuild() {
./configure "${myconf[@]}"
make -j$(nproc)
make install
# Work around strip breaking LTO symbol index
"$RANLIB" "$FFBUILD_PREFIX"/lib/libvpx.a
}
ffbuild_configure() {

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://chromium.googlesource.com/webm/libwebp"
SCRIPT_COMMIT="e8f83de2867456a75b13aa1e876b22e2d1e1c077"
SCRIPT_COMMIT="eac3bd5c53da8bec55a635c6f4234c9cd5753820"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" webp
cd webp
cd "$FFBUILD_DLDIR/$SELF"
./autogen.sh

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/lv2/lv2.git"
SCRIPT_COMMIT="6594c7c90901bb027b288363b8830d724581fbc3"
SCRIPT_COMMIT="bb6a2103c7adf3c1339728915d7f1497ee98dcbf"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" lv2
cd lv2
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/drobilla/serd.git"
SCRIPT_COMMIT="26579820a960fcb02576a92d6adb26e87ff271ad"
SCRIPT_COMMIT="dbf48d099a78d2075e224549a28e690d56a6d503"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" serd
cd serd
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

37
scripts.d/50-lilv/96-zix.sh Executable file
View file

@ -0,0 +1,37 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/drobilla/zix.git"
SCRIPT_COMMIT="a5c18d52a5351430d370084f25aaf7d166f7afd5"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build
local myconf=(
--prefix="$FFBUILD_PREFIX"
--buildtype=release
--default-library=static
-Ddocs=disabled
-Dbenchmarks=disabled
-Dtests=disabled
-Dtests_cpp=disabled
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--cross-file=/cross.meson
)
else
echo "Unknown target"
return -1
fi
meson "${myconf[@]}" ..
ninja -j"$(nproc)"
ninja install
}

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/drobilla/sord.git"
SCRIPT_COMMIT="53f071a571899faf27dd730ea24838c16887836c"
SCRIPT_COMMIT="46f4bcbe04330645a11d00e56a7754cc1386bc45"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" sord
cd sord
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/lv2/sratom.git"
SCRIPT_COMMIT="145ed2fe9756f707d9fd5f03ada5327d04e1b972"
SCRIPT_COMMIT="b97b447d77fbf172260b4b40f184959f59c3623e"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" sratom
cd sratom
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,15 +1,14 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/lv2/lilv.git"
SCRIPT_COMMIT="8cbf2a3dfce848c099536cf0f5e59c4fa8e04d87"
SCRIPT_COMMIT="54b32c1949d60225602a7161d5d6c4853230307a"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" lilv
cd lilv
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build

View file

@ -1,46 +0,0 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/lu-zero/mfx_dispatch.git"
SCRIPT_COMMIT="7e4d221c36c630c1250b23a5dfa15657bc04c10c"
ffbuild_enabled() {
[[ $TARGET == linuxarm64 ]] && return -1
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mfx
cd mfx
autoreconf -i
local myconf=(
--prefix="$FFBUILD_PREFIX"
--disable-shared
--enable-static
--with-pic
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
)
else
echo "Unknown target"
return -1
fi
./configure "${myconf[@]}"
make -j$(nproc)
make install
ln -s libmfx.pc "$FFBUILD_PREFIX"/lib/pkgconfig/mfx.pc
}
ffbuild_configure() {
[[ $ADDINS_STR == *onevpl* ]] || echo --enable-libmfx
}
ffbuild_unconfigure() {
echo --disable-libmfx
}

View file

@ -1,7 +1,7 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/oneapi-src/oneVPL.git"
SCRIPT_COMMIT="15b79165c30fc4a7bf6efdf261a39b128b63b896"
SCRIPT_COMMIT="e12ace9761bb52786409e830f619916b86e87fc5"
ffbuild_enabled() {
[[ $TARGET == *arm64 ]] && return -1
@ -12,8 +12,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" onevpl
cd onevpl
cd "$FFBUILD_DLDIR/$SELF"
mkdir build && cd build
@ -27,12 +26,10 @@ ffbuild_dockerbuild() {
ninja install
rm -rf "$FFBUILD_PREFIX"/{etc,share}
cat /opt/ffbuild/lib/pkgconfig/vpl.pc
}
ffbuild_configure() {
[[ $ADDINS_STR == *onevpl* ]] && echo --enable-libvpl
echo --enable-libvpl
}
ffbuild_unconfigure() {

36
scripts.d/50-openal.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/kcat/openal-soft.git"
SCRIPT_COMMIT="05f9ce8b978239cebecef1a60f0d451a118fa3df"
ffbuild_enabled() {
[[ $ADDINS_STR == *4.4* ]] && return -1
[[ $ADDINS_STR == *5.0* ]] && return -1
[[ $ADDINS_STR == *5.1* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
cd "$FFBUILD_DLDIR/$SELF"
mkdir cm_build && cd cm_build
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DLIBTYPE=STATIC -DALSOFT_UTILS=OFF -DALSOFT_EXAMPLES=OFF ..
make -j$(nproc)
make install
echo "Libs.private: -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/openal.pc
if [[ $TARGET == win* ]]; then
echo "Libs.private: -lole32" >> "$FFBUILD_PREFIX"/lib/pkgconfig/openal.pc
fi
}
ffbuild_configure() {
echo --enable-openal
}
ffbuild_unconfigure() {
echo --disable-openal
}

Some files were not shown because too many files have changed in this diff Show more