Merge remote-tracking branch 'upstream/master' into merge

This commit is contained in:
Florian Fetz 2023-04-30 13:07:32 +02:00
commit cb45012074
144 changed files with 2947 additions and 598 deletions

View file

@ -2,34 +2,50 @@ name: Build FFmpeg
on:
workflow_dispatch:
inputs:
doRelease:
description: 'Publish new release'
type: boolean
default: false
required: false
buildOnly:
description: 'Only build ffmpeg'
type: boolean
default: false
required: false
env:
DOCKER_BUILDKIT: 1
HAVE_CLEANUP_PAT: ${{ secrets.CLEANUP_PAT != '' }}
jobs:
build_base:
name: Build base image
if: ${{ github.event.inputs.buildOnly != 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
with:
config: .github/buildkit.toml
- name: Login to Docker
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Image Name
id: imagename
run: echo "::set-output name=name::ghcr.io/${GITHUB_REPOSITORY,,}/base"
run: |
IMG="${GITHUB_REPOSITORY,,}/base"
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
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
context: images/base
pull: true
@ -37,8 +53,20 @@ 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: 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_target_bases:
name: Build target base image
if: ${{ github.event.inputs.buildOnly != 'true' }}
needs: build_base
runs-on: ubuntu-latest
strategy:
@ -47,24 +75,27 @@ jobs:
target: [win64]
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
with:
config: .github/buildkit.toml
- name: Login to Docker
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
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
- 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
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
context: images/base-${{ matrix.target }}
pull: true
@ -72,24 +103,36 @@ 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: 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' }}
needs: build_target_bases
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [win64]
variant: [gpl-shared 4.4,gpl-shared 5.0]
target: [win64,linux64,linuxarm64]
variant: [gpl-shared 4.4,gpl-shared 5.1,gpl-shared 6.0]
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
with:
config: .github/buildkit.toml
- name: Login to Docker
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
@ -99,12 +142,14 @@ jobs:
- name: Image Name
id: imagename
run: |
IMG="ghcr.io/${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
echo "::set-output name=name::${IMG/ /-}"
IMG="${GITHUB_REPOSITORY,,}/${{ matrix.target }}-${{ matrix.variant }}"
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
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
context: .
pull: true
@ -112,20 +157,34 @@ 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() }}
needs: build_targets
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [win64,linux64]
variant: [gpl,lgpl,gpl 4.4,gpl 5.0,lgpl 4.4,lgpl 5.0,gpl-shared,lgpl-shared,gpl-shared 4.4,gpl-shared 5.0,lgpl-shared 4.4,lgpl-shared 5.0]
target: [win64,linux64,linuxarm64]
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@v2
uses: actions/checkout@v3
- name: Login to Docker
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
@ -135,20 +194,20 @@ jobs:
T="$(echo -n ${{ github.token }} | sha256sum | head -c 64)" && echo -e "::add-mask::${T}\n::stop-commands::${T}"
./build.sh ${{ matrix.target }} ${{ matrix.variant }}
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ffmpeg
path: artifacts/*
publish_release:
name: Publish release
if: ${{ github.event_name == 'schedule' || github.event.inputs.doRelease == 'true' }}
if: ${{ !cancelled() && ( github.event_name == 'schedule' || github.event.inputs.doRelease == 'true' ) && needs.build_ffmpeg.result == 'success' }}
needs: build_ffmpeg
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Download artifacts
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: ffmpeg
path: artifacts
@ -156,24 +215,26 @@ jobs:
id: create_release
run: |
set -xe
shopt -s nullglob
RELDATE="$(date +'%Y-%m-%d %H:%M')"
NAME="Auto-Build $RELDATE"
TAGNAME="autobuild-$(date +'%Y-%m-%d-%H-%M')"
hub release create $(for a in artifacts/*.zip; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME"
echo "::set-output name=tag_name::${TAGNAME}"
echo "::set-output name=rel_date::${RELDATE}"
hub release create $(for a in artifacts/*.{zip,tar.xz}; do echo -a $a; done) -m "$NAME" -t "master" "$TAGNAME"
echo "tag_name=${TAGNAME}" >> $GITHUB_OUTPUT
echo "rel_date=${RELDATE}" >> $GITHUB_OUTPUT
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Update Latest
run: |
set -xe
shopt -s nullglob
mkdir latest_artifacts
./util/repack_latest.sh latest_artifacts artifacts/*.zip
NAME="Latest Auto-Build (${{ steps.create_release.outputs.rel_date }})"
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,21 +18,34 @@ jobs:
fail-fast: false
matrix:
target: [win64]
variant: [gpl-shared 4.4,gpl-shared 5.0]
variant: [gpl-shared 6.0,lgpl-shared 6.0]
quickbuild: [1]
include:
- target: win64
variant: gpl
quickbuild: ''
- target: linux64
variant: gpl
quickbuild: ''
- target: linuxarm64
variant: gpl
quickbuild: ''
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Install buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
with:
config: .github/buildkit.toml
driver: docker
- name: Build Image
run: ./makeimage.sh ${{ matrix.target }} ${{ matrix.variant }}
env:
QUICKBUILD: ${{ matrix.quickbuild }}
- name: Build ffmpeg
run: ./build.sh ${{ matrix.target }} ${{ matrix.variant }}
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ffmpeg
path: artifacts/*

1
.gitignore vendored
View file

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

View file

@ -6,13 +6,15 @@ Static Windows (x86_64) and Linux (x86_64) Builds of ffmpeg master and latest re
Windows builds are targetting Windows 7 and newer.
Linux builds are targetting Ubuntu 16.04 (glibc-2.23 + linux-4.4) and anything more recent.
Linux (x86_64) builds are targetting Ubuntu 16.04 (glibc-2.23 + linux-4.4) and anything more recent.
Linux (arm64) builds are targetting Ubuntu 18.04 (glibc-2.27 + linux-4.15) and anything more recent.
## Auto-Builds
Builds run daily at 12:00 UTC (or GitHubs idea of that time) and are automatically released on success.
**Auto-Builds run ONLY for win64 and linux64. There are no win32/x86 auto-builds, though you can produce win32 builds yourself following the instructions below.**
**Auto-Builds run ONLY for win64 and linux(arm)64. There are no win32/x86 auto-builds, though you can produce win32 builds yourself following the instructions below.**
### Release Retention Policy
@ -34,11 +36,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.
@ -48,13 +50,22 @@ Available targets:
* `win64` (x86_64 Windows)
* `win32` (x86 Windows)
* `linux64` (x86_64 Linux, glibc>=2.23, linux>=4.4)
* `linuxarm64` (arm64 (aarch64) Linux, glibc>=2.27, linux>=4.15)
Available:
The linuxarm64 target will not build some dependencies due to lack of arm64 (aarch64) architecture support or cross-compiling restrictions.
* `davs2` and `xavs2`: aarch64 support is broken.
* `libmfx` and `libva`: Library for Intel QSV, so there is no aarch64 support.
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.
* `gpl-shared` Same as gpl, but comes with the libav* family of shared libs instead of pure static executables.
* `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.
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/5.1.sh Normal file
View file

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

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

@ -102,6 +102,6 @@ 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

@ -29,6 +29,13 @@ to_df() {
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

@ -1,5 +1,5 @@
ARG GH_REPO=btbn/ffmpeg-builds
FROM ghcr.io/$GH_REPO/base:latest
ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds
FROM $GH_REPO/base:latest
RUN --mount=src=ct-ng-config,dst=/.config \
git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \
@ -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.24.0.533_681aaef Configuration
# crosstool-NG 1.25.0.152_89671bf 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.24.0.533_681aaef"
CT_VERSION="1.25.0.152_89671bf"
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,12 @@ 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_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
# CT_LINUX_V_5_15 is not set
# CT_LINUX_V_5_14 is not set
# CT_LINUX_V_5_13 is not set
@ -301,14 +312,18 @@ CT_LINUX_V_4_4=y
# CT_LINUX_V_3_4 is not set
# CT_LINUX_V_3_2 is not set
# CT_LINUX_V_2_6_32 is not set
CT_LINUX_VERSION="4.4.292"
CT_LINUX_VERSION="4.4.302"
CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})"
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
CT_LINUX_older_than_5_5=y
CT_LINUX_5_3_or_older=y
CT_LINUX_older_than_5_3=y
CT_LINUX_4_8_or_older=y
@ -360,7 +375,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
@ -373,12 +390,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
@ -407,13 +426,11 @@ CT_ALL_BINUTILS_CHOICES="BINUTILS"
#
# C-library
#
# CT_LIBC_BIONIC is not set
CT_LIBC_GLIBC=y
# CT_LIBC_MUSL is not set
# CT_LIBC_UCLIBC_NG is not set
CT_LIBC="glibc"
CT_LIBC_CHOICE_KSYM="GLIBC"
CT_THREADS="nptl"
CT_LIBC_GLIBC_SHOW=y
#
@ -435,6 +452,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
@ -450,15 +469,20 @@ CT_GLIBC_PATCH_ORDER="global"
CT_GLIBC_V_2_23=y
# CT_GLIBC_V_2_19 is not set
# CT_GLIBC_V_2_17 is not set
# CT_GLIBC_V_2_12_1 is not set
CT_GLIBC_VERSION="2.23"
CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)"
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_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
CT_GLIBC_older_than_2_32=y
CT_GLIBC_2_31_or_older=y
CT_GLIBC_older_than_2_31=y
CT_GLIBC_2_30_or_older=y
CT_GLIBC_older_than_2_30=y
CT_GLIBC_2_29_or_older=y
@ -486,13 +510,15 @@ CT_GLIBC_DEP_BINUTILS=y
CT_GLIBC_DEP_GCC=y
CT_GLIBC_DEP_PYTHON=y
CT_GLIBC_SPARC_ALLOW_V7=y
CT_THREADS="nptl"
CT_GLIBC_HAS_LIBIDN_ADDON=y
# CT_GLIBC_USE_LIBIDN_ADDON is not set
CT_GLIBC_NO_SPARC_V8=y
CT_GLIBC_HAS_OBSOLETE_RPC=y
CT_GLIBC_EXTRA_CONFIG_ARRAY="--with-pic"
CT_GLIBC_CONFIGPARMS=""
CT_GLIBC_EXTRA_CFLAGS="-fPIC -DPIC"
# CT_GLIBC_ENABLE_DEBUG is not set
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
@ -502,9 +528,9 @@ CT_GLIBC_FORCE_UNWIND=y
# CT_GLIBC_KERNEL_VERSION_NONE is not set
CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y
# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set
CT_GLIBC_MIN_KERNEL="4.4.292"
CT_GLIBC_MIN_KERNEL="4.4.302"
CT_GLIBC_ENABLE_COMMON_FLAG=y
CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC 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
@ -523,6 +549,8 @@ CT_CC_CORE_NEEDED=y
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
@ -538,6 +566,7 @@ CT_CC_GCC_PKG_KSYM="GCC"
CT_GCC_DIR_NAME="gcc"
CT_GCC_USE_GNU=y
# CT_GCC_USE_LINARO is not set
# CT_GCC_USE_ORACLE is not set
CT_GCC_USE="GCC"
CT_GCC_PKG_NAME="gcc"
CT_GCC_SRC_RELEASE=y
@ -550,7 +579,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_11=y
CT_GCC_V_12=y
# CT_GCC_V_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
# CT_GCC_V_8 is not set
@ -558,12 +588,14 @@ CT_GCC_V_11=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="11.2.0"
CT_GCC_VERSION="12.2.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_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
CT_GCC_11_or_later=y
CT_GCC_later_than_10=y
@ -584,7 +616,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
@ -599,6 +631,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
@ -606,6 +639,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.
@ -633,7 +667,9 @@ 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
# CT_CC_LANG_OBJCXX is not set
# CT_CC_LANG_GOLANG is not set
@ -730,7 +766,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_25=y
# 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
# CT_ISL_V_0_20 is not set
@ -739,7 +777,8 @@ 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_V_0_11 is not set
CT_ISL_VERSION="0.25"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -789,7 +828,7 @@ CT_MPC_PATCH_ORDER="global"
CT_MPC_V_1_2=y
# CT_MPC_V_1_1 is not set
# CT_MPC_V_1_0 is not set
CT_MPC_VERSION="1.2.0"
CT_MPC_VERSION="1.2.1"
CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)"
CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -866,14 +905,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_11=y
CT_ZLIB_VERSION="1.2.11"
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_2=y
CT_ZSTD_VERSION="1.5.2"
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
@ -882,6 +943,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
@ -890,6 +952,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

@ -0,0 +1,63 @@
ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds
FROM $GH_REPO/base:latest
RUN --mount=src=ct-ng-config,dst=/.config \
git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \
./bootstrap && \
./configure --enable-local && \
make -j$(nproc) && \
cp /.config .config && \
./ct-ng build && \
cd / && \
rm -rf ct-ng
# Prepare cross environment to heavily favour static builds
RUN \
find /opt/ct-ng -type l \
-and -name '*.so' \
-and -not -ipath '*plugin*' \
-and -not -name 'libdl.*' \
-and -not -name 'libc.*' \
-and -not -name 'libm.*' \
-and -not -name 'libmvec.*' \
-and -not -name 'librt.*' \
-and -not -name 'libpthread.*' \
-delete && \
find /opt/ct-ng \
-name 'libdl.a' \
-or -name 'libc.a' \
-or -name 'libm.a' \
-or -name 'libmvec.a' \
-or -name 'librt.a' \
-or -name 'libpthread.a' \
-delete && \
mkdir /opt/ffbuild
RUN rustup target add aarch64-unknown-linux-gnu
ADD toolchain.cmake /toolchain.cmake
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=${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 \
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

@ -0,0 +1,13 @@
[binaries]
c = 'aarch64-ffbuild-linux-gnu-gcc'
cpp = 'aarch64-ffbuild-linux-gnu-g++'
ld = 'aarch64-ffbuild-linux-gnu-ld'
ar = 'aarch64-ffbuild-linux-gnu-gcc-ar'
ranlib = 'x86_64-ffbuild-linux-gnu-gcc-ranlib'
strip = 'aarch64-ffbuild-linux-gnu-strip'
[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

View file

@ -0,0 +1,988 @@
#
# Automatically generated file; DO NOT EDIT.
# crosstool-NG 1.25.0.152_89671bf Configuration
#
CT_CONFIGURE_has_static_link=y
CT_CONFIGURE_has_cxx11=y
CT_CONFIGURE_has_wget=y
CT_CONFIGURE_has_curl=y
CT_CONFIGURE_has_meson=y
CT_CONFIGURE_has_ninja=y
CT_CONFIGURE_has_rsync=y
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_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
CT_CONFIGURE_has_md5sum=y
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.152_89671bf"
CT_VCHECK=""
CT_CONFIG_VERSION_ENV="4"
CT_CONFIG_VERSION_CURRENT="4"
CT_CONFIG_VERSION="4"
CT_MODULES=y
#
# Paths and misc options
#
#
# crosstool-NG behavior
#
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
#
# Paths
#
CT_LOCAL_TARBALLS_DIR="${HOME}/src"
# CT_SAVE_TARBALLS is not set
# CT_TARBALLS_BUILDROOT_LAYOUT is not set
CT_WORK_DIR="${CT_TOP_DIR}/build"
CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}"
CT_BUILD_DIR="${CT_BUILD_TOP_DIR}/build"
CT_PREFIX_DIR="/opt/ct-ng"
CT_RM_RF_PREFIX_DIR=y
CT_REMOVE_DOCS=y
# CT_INSTALL_LICENSES is not set
# 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
#
CT_DOWNLOAD_AGENT_WGET=y
# CT_DOWNLOAD_AGENT_CURL is not set
# CT_DOWNLOAD_AGENT_NONE is not set
# CT_FORBID_DOWNLOAD is not set
# CT_FORCE_DOWNLOAD is not set
CT_CONNECT_TIMEOUT=10
CT_DOWNLOAD_WGET_OPTIONS="--passive-ftp --tries=3 -nc --progress=dot:binary"
# CT_ONLY_DOWNLOAD is not set
# CT_USE_MIRROR is not set
CT_VERIFY_DOWNLOAD_DIGEST=y
CT_VERIFY_DOWNLOAD_DIGEST_SHA512=y
# CT_VERIFY_DOWNLOAD_DIGEST_SHA256 is not set
# CT_VERIFY_DOWNLOAD_DIGEST_SHA1 is not set
# CT_VERIFY_DOWNLOAD_DIGEST_MD5 is not set
CT_VERIFY_DOWNLOAD_DIGEST_ALG="sha512"
# CT_VERIFY_DOWNLOAD_SIGNATURE is not set
#
# Extracting
#
# CT_FORCE_EXTRACT is not set
CT_OVERRIDE_CONFIG_GUESS_SUB=y
# CT_ONLY_EXTRACT is not set
CT_PATCH_BUNDLED=y
# CT_PATCH_LOCAL is not set
# CT_PATCH_BUNDLED_LOCAL is not set
# CT_PATCH_LOCAL_BUNDLED is not set
# CT_PATCH_NONE is not set
CT_PATCH_ORDER="bundled"
#
# Build behavior
#
CT_PARALLEL_JOBS=0
CT_LOAD=""
CT_USE_PIPES=y
CT_EXTRA_CFLAGS_FOR_BUILD="-fPIC -DPIC"
CT_EXTRA_CXXFLAGS_FOR_BUILD="-fPIC -DPIC"
CT_EXTRA_LDFLAGS_FOR_BUILD=""
CT_EXTRA_CFLAGS_FOR_HOST="-fPIC -DPIC"
CT_EXTRA_LDFLAGS_FOR_HOST=""
# CT_CONFIG_SHELL_SH is not set
# CT_CONFIG_SHELL_ASH is not set
CT_CONFIG_SHELL_BASH=y
# CT_CONFIG_SHELL_CUSTOM is not set
CT_CONFIG_SHELL="${bash}"
#
# Logging
#
# CT_LOG_ERROR is not set
# CT_LOG_WARN is not set
# CT_LOG_INFO is not set
# CT_LOG_EXTRA is not set
# CT_LOG_ALL is not set
CT_LOG_DEBUG=y
CT_LOG_LEVEL_MAX="DEBUG"
# CT_LOG_SEE_TOOLS_WARN is not set
# CT_LOG_TO_FILE is not set
# end of Paths and misc options
#
# Target options
#
# CT_ARCH_ALPHA is not set
# 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
# CT_ARCH_MOXIE is not set
# CT_ARCH_MSP430 is not set
# CT_ARCH_NIOS2 is not set
# CT_ARCH_POWERPC is not set
# CT_ARCH_PRU is not set
# CT_ARCH_RISCV is not set
# CT_ARCH_S390 is not set
# CT_ARCH_SH is not set
# CT_ARCH_SPARC is not set
# CT_ARCH_X86 is not set
# CT_ARCH_XTENSA is not set
CT_ARCH="arm"
CT_ARCH_CHOICE_KSYM="ARM"
CT_ARCH_CPU=""
CT_ARCH_TUNE=""
CT_ARCH_ARM_SHOW=y
#
# Options for arm
#
CT_ARCH_ARM_PKG_KSYM=""
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
#
# Generic target options
#
# CT_MULTILIB is not set
CT_DEMULTILIB=y
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
CT_ARCH_LE=y
CT_ARCH_ENDIAN="little"
CT_ARCH_SUPPORTS_32=y
CT_ARCH_SUPPORTS_64=y
CT_ARCH_DEFAULT_32=y
CT_ARCH_BITNESS=64
# CT_ARCH_32 is not set
CT_ARCH_64=y
#
# Target optimisations
#
CT_ARCH_SUPPORTS_WITH_ARCH=y
CT_ARCH_SUPPORTS_WITH_CPU=y
CT_ARCH_SUPPORTS_WITH_TUNE=y
CT_ARCH_EXCLUSIVE_WITH_CPU=y
CT_ARCH_ARCH=""
CT_TARGET_CFLAGS="-fPIC -DPIC"
CT_TARGET_LDFLAGS=""
# end of Target options
#
# Toolchain options
#
#
# General toolchain options
#
CT_USE_SYSROOT=y
CT_SYSROOT_NAME="sysroot"
CT_SYSROOT_DIR_PREFIX=""
# CT_STATIC_TOOLCHAIN is not set
CT_SHOW_CT_VERSION=y
CT_TOOLCHAIN_PKGVERSION=""
CT_TOOLCHAIN_BUGURL=""
#
# Tuple completion and aliasing
#
CT_TARGET_VENDOR="ffbuild"
CT_TARGET_ALIAS_SED_EXPR=""
CT_TARGET_ALIAS=""
#
# Toolchain type
#
# CT_NATIVE is not set
CT_CROSS=y
# CT_CROSS_NATIVE is not set
# CT_CANADIAN is not set
CT_TOOLCHAIN_TYPE="cross"
#
# Build system
#
CT_BUILD=""
CT_BUILD_PREFIX=""
CT_BUILD_SUFFIX=""
#
# Misc options
#
# CT_TOOLCHAIN_ENABLE_NLS is not set
# end of Toolchain options
#
# Operating System
#
CT_KERNEL_SUPPORTS_SHARED_LIBS=y
# CT_KERNEL_BARE_METAL is not set
CT_KERNEL_LINUX=y
CT_KERNEL="linux"
CT_KERNEL_CHOICE_KSYM="LINUX"
CT_KERNEL_LINUX_SHOW=y
#
# Options for linux
#
CT_KERNEL_LINUX_PKG_KSYM="LINUX"
CT_LINUX_DIR_NAME="linux"
CT_LINUX_USE_WWW_KERNEL_ORG=y
# CT_LINUX_USE_ORACLE is not set
CT_LINUX_USE="LINUX"
CT_LINUX_PKG_NAME="linux"
CT_LINUX_SRC_RELEASE=y
# CT_LINUX_SRC_DEVEL is not set
# CT_LINUX_SRC_CUSTOM is not set
CT_LINUX_PATCH_GLOBAL=y
# CT_LINUX_PATCH_BUNDLED is not set
# CT_LINUX_PATCH_LOCAL is not set
# CT_LINUX_PATCH_BUNDLED_LOCAL is not set
# CT_LINUX_PATCH_LOCAL_BUNDLED is not set
# CT_LINUX_PATCH_NONE is not set
CT_LINUX_PATCH_ORDER="global"
# 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
# CT_LINUX_V_5_15 is not set
# CT_LINUX_V_5_14 is not set
# CT_LINUX_V_5_13 is not set
# CT_LINUX_V_5_12 is not set
# CT_LINUX_V_5_11 is not set
# CT_LINUX_V_5_10 is not set
# CT_LINUX_V_5_9 is not set
# CT_LINUX_V_5_8 is not set
# CT_LINUX_V_5_7 is not set
# CT_LINUX_V_5_5 is not set
# CT_LINUX_V_5_4 is not set
# CT_LINUX_V_5_3 is not set
# CT_LINUX_V_5_2 is not set
# CT_LINUX_V_5_1 is not set
# CT_LINUX_V_5_0 is not set
# CT_LINUX_V_4_20 is not set
# CT_LINUX_V_4_19 is not set
# CT_LINUX_V_4_18 is not set
# CT_LINUX_V_4_17 is not set
# CT_LINUX_V_4_16 is not set
CT_LINUX_V_4_15=y
# CT_LINUX_V_4_14 is not set
# CT_LINUX_V_4_13 is not set
# CT_LINUX_V_4_12 is not set
# CT_LINUX_V_4_11 is not set
# CT_LINUX_V_4_10 is not set
# CT_LINUX_V_4_9 is not set
# CT_LINUX_V_4_4 is not set
# CT_LINUX_V_4_1 is not set
# CT_LINUX_V_3_18 is not set
# CT_LINUX_V_3_16 is not set
# CT_LINUX_V_3_13 is not set
# CT_LINUX_V_3_12 is not set
# CT_LINUX_V_3_10 is not set
CT_LINUX_VERSION="4.15.18"
CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})"
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
CT_LINUX_older_than_5_5=y
CT_LINUX_5_3_or_older=y
CT_LINUX_older_than_5_3=y
CT_LINUX_later_than_4_8=y
CT_LINUX_4_8_or_later=y
CT_LINUX_later_than_3_7=y
CT_LINUX_3_7_or_later=y
CT_LINUX_REQUIRE_3_7_or_later=y
CT_LINUX_later_than_3_2=y
CT_LINUX_3_2_or_later=y
CT_LINUX_REQUIRE_3_2_or_later=y
CT_KERNEL_DEP_RSYNC=y
CT_KERNEL_LINUX_VERBOSITY_0=y
# CT_KERNEL_LINUX_VERBOSITY_1 is not set
# CT_KERNEL_LINUX_VERBOSITY_2 is not set
CT_KERNEL_LINUX_VERBOSE_LEVEL=0
# CT_KERNEL_LINUX_INSTALL_CHECK is not set
CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS"
#
# Common kernel options
#
CT_SHARED_LIBS=y
# end of Operating System
#
# Binary utilities
#
CT_ARCH_BINFMT_ELF=y
CT_BINUTILS_BINUTILS=y
CT_BINUTILS="binutils"
CT_BINUTILS_CHOICE_KSYM="BINUTILS"
CT_BINUTILS_BINUTILS_SHOW=y
#
# Options for binutils
#
CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS"
CT_BINUTILS_DIR_NAME="binutils"
CT_BINUTILS_USE_GNU=y
# CT_BINUTILS_USE_LINARO is not set
# CT_BINUTILS_USE_ORACLE is not set
CT_BINUTILS_USE="BINUTILS"
CT_BINUTILS_PKG_NAME="binutils"
CT_BINUTILS_SRC_RELEASE=y
# CT_BINUTILS_SRC_DEVEL is not set
# CT_BINUTILS_SRC_CUSTOM is not set
CT_BINUTILS_PATCH_GLOBAL=y
# CT_BINUTILS_PATCH_BUNDLED is not set
# CT_BINUTILS_PATCH_LOCAL is not set
# CT_BINUTILS_PATCH_BUNDLED_LOCAL is not set
# CT_BINUTILS_PATCH_LOCAL_BUNDLED is not set
# CT_BINUTILS_PATCH_NONE is not set
CT_BINUTILS_PATCH_ORDER="global"
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
# CT_BINUTILS_V_2_34 is not set
# CT_BINUTILS_V_2_33 is not set
# CT_BINUTILS_V_2_32 is not set
# CT_BINUTILS_V_2_31 is not set
# CT_BINUTILS_V_2_30 is not set
# CT_BINUTILS_V_2_29 is not set
# 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.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
CT_BINUTILS_2_27_or_later=y
CT_BINUTILS_later_than_2_26=y
CT_BINUTILS_2_26_or_later=y
#
# GNU binutils
#
CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
CT_BINUTILS_GOLD_SUPPORT=y
CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y
CT_BINUTILS_LINKER_LD=y
# CT_BINUTILS_LINKER_LD_GOLD is not set
CT_BINUTILS_LINKERS_LIST="ld"
CT_BINUTILS_LINKER_DEFAULT="bfd"
CT_BINUTILS_PLUGINS=y
CT_BINUTILS_RELRO=m
CT_BINUTILS_DETERMINISTIC_ARCHIVES=y
CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
# CT_BINUTILS_FOR_TARGET is not set
CT_ALL_BINUTILS_CHOICES="BINUTILS"
# end of Binary utilities
#
# C-library
#
CT_LIBC_GLIBC=y
# CT_LIBC_MUSL is not set
# CT_LIBC_UCLIBC_NG is not set
CT_LIBC="glibc"
CT_LIBC_CHOICE_KSYM="GLIBC"
CT_LIBC_GLIBC_SHOW=y
#
# Options for glibc
#
CT_LIBC_GLIBC_PKG_KSYM="GLIBC"
CT_GLIBC_DIR_NAME="glibc"
CT_GLIBC_USE_GNU=y
# CT_GLIBC_USE_ORACLE is not set
CT_GLIBC_USE="GLIBC"
CT_GLIBC_PKG_NAME="glibc"
CT_GLIBC_SRC_RELEASE=y
# CT_GLIBC_SRC_DEVEL is not set
# CT_GLIBC_SRC_CUSTOM is not set
CT_GLIBC_PATCH_GLOBAL=y
# CT_GLIBC_PATCH_BUNDLED is not set
# CT_GLIBC_PATCH_LOCAL is not set
# CT_GLIBC_PATCH_BUNDLED_LOCAL is not set
# 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
# CT_GLIBC_V_2_32 is not set
# CT_GLIBC_V_2_31 is not set
# CT_GLIBC_V_2_30 is not set
# CT_GLIBC_V_2_29 is not set
# CT_GLIBC_V_2_28 is not set
CT_GLIBC_V_2_27=y
# CT_GLIBC_V_2_26 is not set
# CT_GLIBC_V_2_25 is not set
# CT_GLIBC_V_2_24 is not set
# CT_GLIBC_V_2_23 is not set
# CT_GLIBC_V_2_19 is not set
# CT_GLIBC_V_2_17 is not set
CT_GLIBC_VERSION="2.27"
CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)"
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_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
CT_GLIBC_older_than_2_32=y
CT_GLIBC_2_31_or_older=y
CT_GLIBC_older_than_2_31=y
CT_GLIBC_2_30_or_older=y
CT_GLIBC_older_than_2_30=y
CT_GLIBC_2_29_or_older=y
CT_GLIBC_older_than_2_29=y
CT_GLIBC_2_28_or_older=y
CT_GLIBC_older_than_2_28=y
CT_GLIBC_2_27_or_later=y
CT_GLIBC_2_27_or_older=y
CT_GLIBC_later_than_2_26=y
CT_GLIBC_2_26_or_later=y
CT_GLIBC_later_than_2_25=y
CT_GLIBC_2_25_or_later=y
CT_GLIBC_later_than_2_24=y
CT_GLIBC_2_24_or_later=y
CT_GLIBC_later_than_2_23=y
CT_GLIBC_2_23_or_later=y
CT_GLIBC_later_than_2_20=y
CT_GLIBC_2_20_or_later=y
CT_GLIBC_later_than_2_17=y
CT_GLIBC_2_17_or_later=y
CT_GLIBC_later_than_2_14=y
CT_GLIBC_2_14_or_later=y
CT_GLIBC_DEP_KERNEL_HEADERS_VERSION=y
CT_GLIBC_DEP_BINUTILS=y
CT_GLIBC_DEP_GCC=y
CT_GLIBC_DEP_PYTHON=y
CT_GLIBC_SPARC_ALLOW_V7=y
CT_THREADS="nptl"
CT_GLIBC_BUILD_SSP=y
CT_GLIBC_HAS_LIBIDN_ADDON=y
# CT_GLIBC_USE_LIBIDN_ADDON is not set
CT_GLIBC_NO_SPARC_V8=y
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_ENABLE_OBSOLETE_RPC=y
# CT_GLIBC_ENABLE_FORTIFIED_BUILD is not set
# CT_GLIBC_DISABLE_VERSIONING is not set
CT_GLIBC_OLDEST_ABI=""
CT_GLIBC_FORCE_UNWIND=y
# CT_GLIBC_LOCALES is not set
# CT_GLIBC_KERNEL_VERSION_NONE is not set
CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y
# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set
CT_GLIBC_MIN_KERNEL="4.15.18"
CT_GLIBC_SSP_DEFAULT=y
# CT_GLIBC_SSP_NO is not set
# CT_GLIBC_SSP_YES is not set
# 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 PICOLIBC UCLIBC_NG"
CT_LIBC_SUPPORT_THREADS_ANY=y
CT_LIBC_SUPPORT_THREADS_NATIVE=y
#
# Common C library options
#
CT_THREADS_NATIVE=y
# CT_CREATE_LDSO_CONF is not set
CT_LIBC_XLDD=y
# end of C-library
#
# C compiler
#
CT_CC_CORE_NEEDED=y
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
CT_CC_GCC=y
CT_CC="gcc"
CT_CC_CHOICE_KSYM="GCC"
CT_CC_GCC_SHOW=y
#
# Options for gcc
#
CT_CC_GCC_PKG_KSYM="GCC"
CT_GCC_DIR_NAME="gcc"
CT_GCC_USE_GNU=y
# CT_GCC_USE_LINARO is not set
# CT_GCC_USE_ORACLE is not set
CT_GCC_USE="GCC"
CT_GCC_PKG_NAME="gcc"
CT_GCC_SRC_RELEASE=y
# CT_GCC_SRC_DEVEL is not set
# CT_GCC_SRC_CUSTOM is not set
CT_GCC_PATCH_GLOBAL=y
# CT_GCC_PATCH_BUNDLED is not set
# CT_GCC_PATCH_LOCAL is not set
# CT_GCC_PATCH_BUNDLED_LOCAL is not set
# 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_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
# CT_GCC_V_8 is not set
# CT_GCC_V_7 is not set
# 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.2.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_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
CT_GCC_11_or_later=y
CT_GCC_later_than_10=y
CT_GCC_10_or_later=y
CT_GCC_later_than_9=y
CT_GCC_9_or_later=y
CT_GCC_later_than_8=y
CT_GCC_8_or_later=y
CT_GCC_later_than_7=y
CT_GCC_7_or_later=y
CT_GCC_later_than_6=y
CT_GCC_6_or_later=y
CT_GCC_later_than_5=y
CT_GCC_5_or_later=y
CT_GCC_later_than_4_9=y
CT_GCC_4_9_or_later=y
CT_GCC_REQUIRE_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="--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
#
# Optimisation features
#
CT_CC_GCC_USE_GRAPHITE=y
CT_CC_GCC_USE_LTO=y
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.
#
CT_CC_CXA_ATEXIT=y
CT_CC_GCC_TM_CLONE_REGISTRY=m
# CT_CC_GCC_DISABLE_PCH is not set
CT_CC_GCC_SJLJ_EXCEPTIONS=m
CT_CC_GCC_LDBL_128=m
# CT_CC_GCC_BUILD_ID is not set
CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y
# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set
# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set
# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set
CT_CC_GCC_LNK_HASH_STYLE=""
CT_CC_GCC_DEC_FLOATS_AUTO=y
# CT_CC_GCC_DEC_FLOATS_BID is not set
# CT_CC_GCC_DEC_FLOATS_DPD is not set
# CT_CC_GCC_DEC_FLOATS_NO is not set
CT_CC_GCC_DEC_FLOATS=""
CT_ALL_CC_CHOICES="GCC"
#
# Additional supported languages:
#
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
# CT_CC_LANG_OBJCXX is not set
# CT_CC_LANG_GOLANG is not set
CT_CC_LANG_OTHERS=""
# end of C compiler
#
# Debug facilities
#
# CT_DEBUG_DUMA is not set
# CT_DEBUG_GDB is not set
# CT_DEBUG_LTRACE is not set
# CT_DEBUG_STRACE is not set
CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE"
# end of Debug facilities
#
# Companion libraries
#
# CT_COMPLIBS_CHECK is not set
# CT_COMP_LIBS_CLOOG is not set
# CT_COMP_LIBS_EXPAT is not set
CT_COMP_LIBS_GETTEXT=y
CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT"
CT_GETTEXT_DIR_NAME="gettext"
CT_GETTEXT_PKG_NAME="gettext"
CT_GETTEXT_SRC_RELEASE=y
# CT_GETTEXT_SRC_DEVEL is not set
# CT_GETTEXT_SRC_CUSTOM is not set
CT_GETTEXT_PATCH_GLOBAL=y
# CT_GETTEXT_PATCH_BUNDLED is not set
# CT_GETTEXT_PATCH_LOCAL is not set
# CT_GETTEXT_PATCH_BUNDLED_LOCAL is not set
# CT_GETTEXT_PATCH_LOCAL_BUNDLED is not set
# CT_GETTEXT_PATCH_NONE is not set
CT_GETTEXT_PATCH_ORDER="global"
CT_GETTEXT_V_0_21=y
# CT_GETTEXT_V_0_20_1 is not set
# CT_GETTEXT_V_0_19_8_1 is not set
CT_GETTEXT_VERSION="0.21"
CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)"
CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.gz"
CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig"
CT_GETTEXT_0_21_or_later=y
CT_GETTEXT_0_21_or_older=y
CT_GETTEXT_INCOMPATIBLE_WITH_UCLIBC_NG=y
#
# This version of gettext is not compatible with uClibc-NG. Select
#
#
# a different version if uClibc-NG is used on the target or (in a
#
#
# Canadian cross build) on the host.
#
CT_COMP_LIBS_GMP=y
CT_COMP_LIBS_GMP_PKG_KSYM="GMP"
CT_GMP_DIR_NAME="gmp"
CT_GMP_PKG_NAME="gmp"
CT_GMP_SRC_RELEASE=y
# CT_GMP_SRC_DEVEL is not set
# CT_GMP_SRC_CUSTOM is not set
CT_GMP_PATCH_GLOBAL=y
# CT_GMP_PATCH_BUNDLED is not set
# CT_GMP_PATCH_LOCAL is not set
# CT_GMP_PATCH_BUNDLED_LOCAL is not set
# CT_GMP_PATCH_LOCAL_BUNDLED is not set
# CT_GMP_PATCH_NONE is not set
CT_GMP_PATCH_ORDER="global"
CT_GMP_V_6_2=y
# CT_GMP_V_6_1 is not set
CT_GMP_VERSION="6.2.1"
CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)"
CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2"
CT_GMP_SIGNATURE_FORMAT="packed/.sig"
CT_COMP_LIBS_ISL=y
CT_COMP_LIBS_ISL_PKG_KSYM="ISL"
CT_ISL_DIR_NAME="isl"
CT_ISL_PKG_NAME="isl"
CT_ISL_SRC_RELEASE=y
# CT_ISL_SRC_DEVEL is not set
# CT_ISL_SRC_CUSTOM is not set
CT_ISL_PATCH_GLOBAL=y
# CT_ISL_PATCH_BUNDLED is not set
# CT_ISL_PATCH_LOCAL is not set
# CT_ISL_PATCH_BUNDLED_LOCAL is not set
# CT_ISL_PATCH_LOCAL_BUNDLED is not set
# CT_ISL_PATCH_NONE is not set
CT_ISL_PATCH_ORDER="global"
CT_ISL_V_0_25=y
# 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
# CT_ISL_V_0_20 is not set
# CT_ISL_V_0_19 is not set
# CT_ISL_V_0_18 is not set
# 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_V_0_11 is not set
CT_ISL_VERSION="0.25"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz"
CT_ISL_SIGNATURE_FORMAT=""
CT_ISL_later_than_0_18=y
CT_ISL_0_18_or_later=y
CT_ISL_later_than_0_15=y
CT_ISL_0_15_or_later=y
# CT_COMP_LIBS_LIBELF is not set
CT_COMP_LIBS_LIBICONV=y
CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV"
CT_LIBICONV_DIR_NAME="libiconv"
CT_LIBICONV_PKG_NAME="libiconv"
CT_LIBICONV_SRC_RELEASE=y
# CT_LIBICONV_SRC_DEVEL is not set
# CT_LIBICONV_SRC_CUSTOM is not set
CT_LIBICONV_PATCH_GLOBAL=y
# CT_LIBICONV_PATCH_BUNDLED is not set
# CT_LIBICONV_PATCH_LOCAL is not set
# CT_LIBICONV_PATCH_BUNDLED_LOCAL is not set
# CT_LIBICONV_PATCH_LOCAL_BUNDLED is not set
# CT_LIBICONV_PATCH_NONE is not set
CT_LIBICONV_PATCH_ORDER="global"
CT_LIBICONV_V_1_16=y
# CT_LIBICONV_V_1_15 is not set
CT_LIBICONV_VERSION="1.16"
CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)"
CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz"
CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig"
CT_COMP_LIBS_MPC=y
CT_COMP_LIBS_MPC_PKG_KSYM="MPC"
CT_MPC_DIR_NAME="mpc"
CT_MPC_PKG_NAME="mpc"
CT_MPC_SRC_RELEASE=y
# CT_MPC_SRC_DEVEL is not set
# CT_MPC_SRC_CUSTOM is not set
CT_MPC_PATCH_GLOBAL=y
# CT_MPC_PATCH_BUNDLED is not set
# CT_MPC_PATCH_LOCAL is not set
# CT_MPC_PATCH_BUNDLED_LOCAL is not set
# CT_MPC_PATCH_LOCAL_BUNDLED is not set
# CT_MPC_PATCH_NONE is not set
CT_MPC_PATCH_ORDER="global"
CT_MPC_V_1_2=y
# CT_MPC_V_1_1 is not set
# CT_MPC_V_1_0 is not set
CT_MPC_VERSION="1.2.1"
CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)"
CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_MPC_ARCHIVE_FORMATS=".tar.gz"
CT_MPC_SIGNATURE_FORMAT="packed/.sig"
CT_MPC_later_than_1_1_0=y
CT_MPC_1_1_0_or_later=y
CT_COMP_LIBS_MPFR=y
CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR"
CT_MPFR_DIR_NAME="mpfr"
CT_MPFR_PKG_NAME="mpfr"
CT_MPFR_SRC_RELEASE=y
# CT_MPFR_SRC_DEVEL is not set
# CT_MPFR_SRC_CUSTOM is not set
CT_MPFR_PATCH_GLOBAL=y
# CT_MPFR_PATCH_BUNDLED is not set
# CT_MPFR_PATCH_LOCAL is not set
# CT_MPFR_PATCH_BUNDLED_LOCAL is not set
# CT_MPFR_PATCH_LOCAL_BUNDLED is not set
# CT_MPFR_PATCH_NONE is not set
CT_MPFR_PATCH_ORDER="global"
CT_MPFR_V_4_1=y
# CT_MPFR_V_4_0 is not set
# CT_MPFR_V_3_1 is not set
CT_MPFR_VERSION="4.1.0"
CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)"
CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip"
CT_MPFR_SIGNATURE_FORMAT="packed/.asc"
CT_MPFR_later_than_4_0_0=y
CT_MPFR_4_0_0_or_later=y
CT_COMP_LIBS_NCURSES=y
CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES"
CT_NCURSES_DIR_NAME="ncurses"
CT_NCURSES_PKG_NAME="ncurses"
CT_NCURSES_SRC_RELEASE=y
# CT_NCURSES_SRC_DEVEL is not set
# CT_NCURSES_SRC_CUSTOM is not set
CT_NCURSES_PATCH_GLOBAL=y
# CT_NCURSES_PATCH_BUNDLED is not set
# CT_NCURSES_PATCH_LOCAL is not set
# CT_NCURSES_PATCH_BUNDLED_LOCAL is not set
# 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_1 is not set
# CT_NCURSES_V_6_0 is not set
CT_NCURSES_VERSION="6.2"
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}"
CT_NCURSES_ARCHIVE_FORMATS=".tar.gz"
CT_NCURSES_SIGNATURE_FORMAT="packed/.sig"
# CT_NCURSES_NEW_ABI is not set
CT_NCURSES_HOST_CONFIG_ARGS=""
CT_NCURSES_HOST_DISABLE_DB=y
CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100"
CT_NCURSES_TARGET_CONFIG_ARGS=""
# CT_NCURSES_TARGET_DISABLE_DB is not set
CT_NCURSES_TARGET_FALLBACKS=""
CT_COMP_LIBS_ZLIB=y
CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB"
CT_ZLIB_DIR_NAME="zlib"
CT_ZLIB_PKG_NAME="zlib"
CT_ZLIB_SRC_RELEASE=y
# CT_ZLIB_SRC_DEVEL is not set
# CT_ZLIB_SRC_CUSTOM is not set
CT_ZLIB_PATCH_GLOBAL=y
# CT_ZLIB_PATCH_BUNDLED is not set
# CT_ZLIB_PATCH_LOCAL is not set
# CT_ZLIB_PATCH_BUNDLED_LOCAL is not set
# 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_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_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_2=y
CT_ZSTD_VERSION="1.5.2"
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
CT_MPFR_NEEDED=y
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
CT_MPFR=y
CT_ISL=y
CT_MPC=y
CT_NCURSES=y
CT_ZLIB=y
CT_ZSTD=y
# end of Companion libraries
#
# Companion tools
#
# CT_COMP_TOOLS_FOR_HOST is not set
# CT_COMP_TOOLS_AUTOCONF is not set
# CT_COMP_TOOLS_AUTOMAKE is not set
# CT_COMP_TOOLS_BISON is not set
# CT_COMP_TOOLS_DTC is not set
# CT_COMP_TOOLS_LIBTOOL is not set
# CT_COMP_TOOLS_M4 is not set
# CT_COMP_TOOLS_MAKE is not set
CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE"
# end of Companion tools
#
# Test suite
#
# CT_TEST_SUITE_GCC is not set
# end of Test suite

View file

@ -0,0 +1,17 @@
#!/bin/bash
set -e
if [[ $# != 2 ]]; then
echo "Invalid arguments"
exit 1
fi
IN="$1"
OUT="$2"
TMPDIR="$(mktemp -d)"
trap "rm -rf '$TMPDIR'" EXIT
cd "$TMPDIR"
set -x
python3 /opt/implib/implib-gen.py --target aarch64-linux-gnu --dlopen --lazy-load --verbose "$IN"
${FFBUILD_CROSS_PREFIX}gcc $CFLAGS $STAGE_CFLAGS -DIMPLIB_HIDDEN_SHIMS -c *.tramp.S *.init.c
${FFBUILD_CROSS_PREFIX}ar -rcs "$OUT" *.tramp.o *.init.o

View file

@ -0,0 +1,16 @@
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(triple aarch64-ffbuild-linux-gnu)
set(CMAKE_C_COMPILER ${triple}-gcc)
set(CMAKE_CXX_COMPILER ${triple}-g++)
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)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

View file

@ -1,5 +1,5 @@
ARG GH_REPO=btbn/ffmpeg-builds
FROM ghcr.io/$GH_REPO/base:latest
ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds
FROM $GH_REPO/base:latest
RUN --mount=src=ct-ng-config,dst=/.config \
git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \
@ -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,7 +1,8 @@
[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'
exe_wrapper = ['wine']

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# crosstool-NG 1.24.0.533_681aaef Configuration
# crosstool-NG 1.25.0.152_89671bf 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.24.0.533_681aaef"
CT_VERSION="1.25.0.152_89671bf"
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
@ -241,6 +245,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 +262,7 @@ CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS"
#
# Common kernel options
#
CT_SHARED_LIBS=y
# end of Operating System
#
@ -288,7 +294,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 +309,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,13 +367,14 @@ 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}"
@ -374,7 +385,7 @@ 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 BIONIC 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 +395,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
#
@ -393,6 +406,8 @@ CT_CC_CORE_NEEDED=y
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
@ -408,6 +423,7 @@ CT_CC_GCC_PKG_KSYM="GCC"
CT_GCC_DIR_NAME="gcc"
CT_GCC_USE_GNU=y
# CT_GCC_USE_LINARO is not set
# CT_GCC_USE_ORACLE is not set
CT_GCC_USE="GCC"
CT_GCC_PKG_NAME="gcc"
CT_GCC_SRC_RELEASE=y
@ -420,7 +436,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_11=y
CT_GCC_V_12=y
# CT_GCC_V_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
# CT_GCC_V_8 is not set
@ -428,12 +445,14 @@ CT_GCC_V_11=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="11.2.0"
CT_GCC_VERSION="12.2.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_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
CT_GCC_11_or_later=y
CT_GCC_later_than_10=y
@ -453,8 +472,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
@ -474,6 +493,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.
@ -501,7 +521,9 @@ 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
# CT_CC_LANG_OBJCXX is not set
# CT_CC_LANG_GOLANG is not set
@ -598,7 +620,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_25=y
# 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
# CT_ISL_V_0_20 is not set
@ -607,7 +631,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.25"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -636,7 +660,7 @@ CT_MPC_PATCH_ORDER="global"
CT_MPC_V_1_2=y
# CT_MPC_V_1_1 is not set
# CT_MPC_V_1_0 is not set
CT_MPC_VERSION="1.2.0"
CT_MPC_VERSION="1.2.1"
CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)"
CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -684,14 +708,35 @@ 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_11=y
CT_ZLIB_VERSION="1.2.11"
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_2=y
CT_ZSTD_VERSION="1.5.2"
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
@ -699,11 +744,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

@ -1,5 +1,5 @@
ARG GH_REPO=btbn/ffmpeg-builds
FROM ghcr.io/$GH_REPO/base:latest
ARG GH_REPO=ghcr.io/btbn/ffmpeg-builds
FROM $GH_REPO/base:latest
RUN --mount=src=ct-ng-config,dst=/.config \
git clone --filter=blob:none https://github.com/crosstool-ng/crosstool-ng.git /ct-ng && cd /ct-ng && \
@ -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,7 +1,8 @@
[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'
exe_wrapper = ['wine']

View file

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# crosstool-NG 1.24.0.533_681aaef Configuration
# crosstool-NG 1.25.0.152_89671bf 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.24.0.533_681aaef"
CT_VERSION="1.25.0.152_89671bf"
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,13 +368,14 @@ 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}"
@ -374,7 +386,7 @@ 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 BIONIC 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 +396,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
#
@ -393,6 +407,8 @@ CT_CC_CORE_NEEDED=y
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
@ -408,6 +424,7 @@ CT_CC_GCC_PKG_KSYM="GCC"
CT_GCC_DIR_NAME="gcc"
CT_GCC_USE_GNU=y
# CT_GCC_USE_LINARO is not set
# CT_GCC_USE_ORACLE is not set
CT_GCC_USE="GCC"
CT_GCC_PKG_NAME="gcc"
CT_GCC_SRC_RELEASE=y
@ -420,7 +437,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_11=y
CT_GCC_V_12=y
# CT_GCC_V_11 is not set
# CT_GCC_V_10 is not set
# CT_GCC_V_9 is not set
# CT_GCC_V_8 is not set
@ -428,12 +446,14 @@ CT_GCC_V_11=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="11.2.0"
CT_GCC_VERSION="12.2.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_12=y
CT_GCC_12_or_later=y
CT_GCC_later_than_11=y
CT_GCC_11_or_later=y
CT_GCC_later_than_10=y
@ -453,8 +473,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
@ -474,6 +494,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.
@ -501,7 +522,9 @@ 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
# CT_CC_LANG_OBJCXX is not set
# CT_CC_LANG_GOLANG is not set
@ -598,7 +621,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_25=y
# 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
# CT_ISL_V_0_20 is not set
@ -607,7 +632,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.25"
CT_ISL_MIRRORS="https://libisl.sourceforge.io"
CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -636,7 +661,7 @@ CT_MPC_PATCH_ORDER="global"
CT_MPC_V_1_2=y
# CT_MPC_V_1_1 is not set
# CT_MPC_V_1_0 is not set
CT_MPC_VERSION="1.2.0"
CT_MPC_VERSION="1.2.1"
CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)"
CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
@ -684,14 +709,35 @@ 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_11=y
CT_ZLIB_VERSION="1.2.11"
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_2=y
CT_ZSTD_VERSION="1.5.2"
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
@ -699,11 +745,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,10 +1,17 @@
FROM ubuntu:21.10
FROM ubuntu:22.10
ENV DEBIAN_FRONTEND noninteractive
RUN \
apt-get -y update && \
apt-get -y dist-upgrade && \
apt-get -y install build-essential yasm nasm xxd pkgconf git curl wget unzip subversion autoconf automake libtool libtool-bin autopoint cmake clang texinfo texi2html help2man flex bison gperf gettext itstool ragel libc6-dev libssl-dev gtk-doc-tools gobject-introspection gawk meson ninja-build p7zip-full python3-distutils python3-apt python-is-python3 && \
apt-get -y install build-essential yasm nasm \
xxd pkgconf curl wget unzip 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-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

@ -6,17 +6,7 @@ DEST="$3"
git init "$DEST"
git -C "$DEST" remote add origin "$REPO"
RETRY_COUNTER=0
MAX_RETRY=15
while [[ $RETRY_COUNTER -lt $MAX_RETRY ]]; do
timeout 120 git -C "$DEST" fetch --depth=1 origin "$REF" && break || sleep 10
RETRY_COUNTER=$(( $RETRY_COUNTER + 1 ))
echo "Retry $RETRY_COUNTER..."
done
if [[ $RETRY_COUNTER -ge $MAX_RETRY ]]; then
echo "Max retry count exceeded."
exit 1
fi
retry-tool git -C "$DEST" fetch --depth=1 origin "$REF"
git -C "$DEST" config advice.detachedHead false
git -C "$DEST" checkout FETCH_HEAD

16
images/base/retry-tool.sh Executable file
View file

@ -0,0 +1,16 @@
#!/bin/bash
set -xe
RETRY_COUNTER=0
MAX_RETRY=10
CUR_TIMEOUT=120
while [[ $RETRY_COUNTER -lt $MAX_RETRY ]]; do
timeout $CUR_TIMEOUT "$@" && break || sleep $(shuf -i 5-90 -n 1)
RETRY_COUNTER=$(( $RETRY_COUNTER + 1 ))
CUR_TIMEOUT=$(( $CUR_TIMEOUT + 60 ))
echo "Retry $RETRY_COUNTER..."
done
if [[ $RETRY_COUNTER -ge $MAX_RETRY ]]; then
echo "Max retry count exceeded."
exit 1
fi

View file

@ -3,14 +3,49 @@ set -xe
cd "$(dirname "$0")"
source util/vars.sh
TMPCFG="$(mktemp --suffix=.toml)"
cat <<EOF >"$TMPCFG"
[worker.oci]
max-parallelism = 4
EOF
trap "rm -f '$TMPCFG'" EXIT
docker buildx inspect ffbuilder &>/dev/null || docker buildx create \
--bootstrap \
--name ffbuilder \
--config "$TMPCFG" \
--driver-opt network=host \
--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
if grep "FROM.*base.*" "images/base-${TARGET}/Dockerfile" >/dev/null 2>&1; then
docker buildx --builder default build --load --tag "$BASE_IMAGE" images/base
docker buildx --builder ffbuilder build \
--cache-from=type=local,src=.cache/"${BASE_IMAGE/:/_}" \
--cache-to=type=local,mode=max,dest=.cache/"${BASE_IMAGE/:/_}" \
--push --tag "${LOCAL_ROOT}/base:latest" images/base
fi
docker buildx --builder default build --load --build-arg GH_REPO="$REPO" --tag "$TARGET_IMAGE" "images/base-${TARGET}"
docker buildx --builder ffbuilder build \
--cache-from=type=local,src=.cache/"${TARGET_IMAGE/:/_}" \
--cache-to=type=local,mode=max,dest=.cache/"${TARGET_IMAGE/:/_}" \
--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"
fi
./generate.sh "$TARGET" "$VARIANT" "${ADDINS[@]}"
docker buildx --builder default build --load --tag "$IMAGE" .
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 buildx rm -f ffbuilder

31
patches/aribb24/12.patch Normal file
View file

@ -0,0 +1,31 @@
From a5bcc6d17c20e18bdeec295089cc0cdfac9d35c8 Mon Sep 17 00:00:00 2001
From: xtne6f <xt4ubq@gmail.com>
Date: Thu, 7 Feb 2019 20:11:13 +0900
Subject: [PATCH] Fix default macros
---
src/decoder_macro.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/decoder_macro.h b/src/decoder_macro.h
index 86edee4..513b81e 100644
--- a/src/decoder_macro.h
+++ b/src/decoder_macro.h
@@ -30,7 +30,7 @@ static const unsigned char decoder_default_macro_1[] = {
0x1B,0x24,0x39,0x1B,0x29,0x31,0x1B,0x2A,0x30,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D
};
static const unsigned char decoder_default_macro_2[] = {
- 0x1B,0x24,0x39,0x1B,0x29,0x20,0x40,0x1B,0x2A,0x30,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D
+ 0x1B,0x24,0x39,0x1B,0x29,0x20,0x41,0x1B,0x2A,0x30,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D
};
static const unsigned char decoder_default_macro_3[] = {
0x1B,0x28,0x32,0x1B,0x29,0x34,0x1B,0x2A,0x35,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D
@@ -39,7 +39,7 @@ static const unsigned char decoder_default_macro_4[] = {
0x1B,0x28,0x32,0x1B,0x29,0x33,0x1B,0x2A,0x35,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D
};
static const unsigned char decoder_default_macro_5[] = {
- 0x1B,0x28,0x32,0x1B,0x29,0x20,0x40,0x1B,0x2A,0x35,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D
+ 0x1B,0x28,0x32,0x1B,0x29,0x20,0x41,0x1B,0x2A,0x35,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D
};
static const unsigned char decoder_default_macro_6[] = {
0x1B,0x28,0x20,0x41,0x1B,0x29,0x20,0x42,0x1B,0x2A,0x20,0x43,0x1B,0x2B,0x20,0x70,0x0F,0x1B,0x7D

23
patches/aribb24/13.patch Normal file
View file

@ -0,0 +1,23 @@
From facc51923d43f26dec09a9391566de7cba29f8db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= <jeebjp@gmail.com>
Date: Sun, 17 Feb 2019 22:42:31 +0200
Subject: [PATCH] decoder: reset control_time when finalizing decoder
This way finalize_decoder() can properly be utilized as a flush
function.
---
src/decoder.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/decoder.c b/src/decoder.c
index 2b77f38..24c0f06 100644
--- a/src/decoder.c
+++ b/src/decoder.c
@@ -1506,6 +1506,7 @@ void arib_finalize_decoder( arib_decoder_t* decoder )
free( p_region );
}
decoder->p_region = NULL;
+ decoder->i_control_time = 0;
}
size_t arib_decode_buffer( arib_decoder_t* decoder,

151
patches/aribb24/17.patch Normal file
View file

@ -0,0 +1,151 @@
From 58a34b8fabf4d0e9e1984fb603a97f52fb934a09 Mon Sep 17 00:00:00 2001
From: scimmia9286 <scimmia9286@yahoo.co.jp>
Date: Thu, 22 Apr 2021 20:26:45 +0900
Subject: [PATCH] Fixed DRCS parser bug
---
src/decoder.c | 3 ++-
src/drcs.c | 12 ++++++++----
src/drcs.h | 2 +-
src/parser.c | 25 +++++++++++++++++++++----
4 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/src/decoder.c b/src/decoder.c
index 2b77f38..c9d6ac3 100644
--- a/src/decoder.c
+++ b/src/decoder.c
@@ -1139,9 +1139,10 @@ static int decoder_handle_time( arib_decoder_t *decoder )
return 1;
break;
default:
- if( i_mode == 1 && c >= 0x40 && c <= 0x7F )
+ if( i_mode == 1 && c >= 0x40 && c <= 0x7F ) {
decoder->i_control_time += c & 0x3f;
return 1;
+ }
return 0;
}
if( i_mode == 0 )
diff --git a/src/drcs.c b/src/drcs.c
index 114d846..8ff8d4f 100644
--- a/src/drcs.c
+++ b/src/drcs.c
@@ -406,15 +406,19 @@ static void save_drcs_pattern_data_image(
void save_drcs_pattern(
arib_instance_t *p_instance,
int i_width, int i_height,
- int i_depth, const int8_t* p_patternData )
+ int i_depth, const int8_t* p_patternData,
+ int16_t i_CharacterCode )
{
+// int i_drcsPage = (i_CharacterCode >> 16) & 0xff;
+ int i_code = (i_CharacterCode & 0xff) - 0x20;
char* psz_hash = get_drcs_pattern_data_hash( p_instance,
i_width, i_height, i_depth, p_patternData );
- strncpy( p_instance->p->drcs_hash_table[p_instance->p->i_drcs_num], psz_hash, 32 );
- p_instance->p->drcs_hash_table[p_instance->p->i_drcs_num][32] = '\0';
+ strncpy( p_instance->p->drcs_hash_table[i_code-1], psz_hash, 32 );
+ p_instance->p->drcs_hash_table[i_code-1][32] = '\0';
- p_instance->p->i_drcs_num++;
+ p_instance->p->i_drcs_num = i_code > p_instance->p->i_drcs_num ?
+ i_code : p_instance->p->i_drcs_num;
save_drcs_pattern_data_image( p_instance, psz_hash,
i_width, i_height, i_depth, p_patternData );
diff --git a/src/drcs.h b/src/drcs.h
index 274ff44..9c1533e 100644
--- a/src/drcs.h
+++ b/src/drcs.h
@@ -77,6 +77,6 @@ typedef struct drcs_data_s
bool apply_drcs_conversion_table( arib_instance_t * );
bool load_drcs_conversion_table( arib_instance_t * );
-void save_drcs_pattern( arib_instance_t *, int, int, int, const int8_t* );
+void save_drcs_pattern( arib_instance_t *, int, int, int, const int8_t*, int16_t );
#endif
diff --git a/src/parser.c b/src/parser.c
index 1403dd6..6db27ae 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -79,7 +79,6 @@ static void parse_data_unit_DRCS( arib_parser_t *p_parser, bs_t *p_bs,
uint8_t i_data_unit_parameter,
uint32_t i_data_unit_size )
{
- p_parser->p_instance->p->i_drcs_num = 0;
#ifdef ARIBSUB_GEN_DRCS_DATA
if( p_parser->p_drcs_data != NULL )
{
@@ -119,7 +118,7 @@ static void parse_data_unit_DRCS( arib_parser_t *p_parser, bs_t *p_bs,
for( int i = 0; i < i_NumberOfCode; i++ )
{
- bs_skip( p_bs, 16 ); /* i_character_code */
+ int16_t i_CharacterCode = bs_read( p_bs, 16 ); /* i_character_code */
p_parser->i_data_unit_size += 2;
uint8_t i_NumberOfFont = bs_read( p_bs, 8 );
p_parser->i_data_unit_size += 1;
@@ -139,7 +138,11 @@ static void parse_data_unit_DRCS( arib_parser_t *p_parser, bs_t *p_bs,
for( int j = 0; j < i_NumberOfFont; j++ )
{
+#ifdef ARIBSUB_GEN_DRCS_DATA
+ int8_t i_fontId = bs_read( p_bs, 4 ); /* i_fontID */
+#else
bs_skip( p_bs, 4 ); /* i_fontID */
+#endif //ARIBSUB_GEN_DRCS_DATA
uint8_t i_mode = bs_read( p_bs, 4 );
p_parser->i_data_unit_size += 1;
@@ -206,18 +209,26 @@ static void parse_data_unit_DRCS( arib_parser_t *p_parser, bs_t *p_bs,
#ifdef ARIBSUB_GEN_DRCS_DATA
save_drcs_pattern( p_parser->p_instance, i_width, i_height, i_depth + 2,
- p_drcs_pattern_data->p_patternData );
+ p_drcs_pattern_data->p_patternData, i_CharacterCode );
#else
save_drcs_pattern( p_parser->p_instance, i_width, i_height, i_depth + 2,
- p_patternData );
+ p_patternData, i_CharacterCode);
free( p_patternData );
#endif //ARIBSUB_GEN_DRCS_DATA
}
else
{
+#ifdef ARIBSUB_GEN_DRCS_DATA
+ int8_t i_regionX = bs_read( p_bs, 8 ); /* i_regionX */
+#else
bs_skip( p_bs, 8 ); /* i_regionX */
+#endif //ARIBSUB_GEN_DRCS_DATA
p_parser->i_data_unit_size += 1;
+#ifdef ARIBSUB_GEN_DRCS_DATA
+ int8_t i_regionY = bs_read( p_bs, 8 ); /* i_regionY */
+#else
bs_skip( p_bs, 8 ); /* i_regionY */
+#endif //ARIBSUB_GEN_DRCS_DATA
p_parser->i_data_unit_size += 1;
uint16_t i_geometricData_length = bs_read( p_bs, 16 );
p_parser->i_data_unit_size += 2;
@@ -245,7 +256,11 @@ static void parse_data_unit_DRCS( arib_parser_t *p_parser, bs_t *p_bs,
for( int k = 0; k < i_geometricData_length ; k++ )
{
+#ifdef ARIBSUB_GEN_DRCS_DATA
+ int8_t i_geometricData = bs_read( p_bs, 8 ); /* i_geometric_data */
+#else
bs_skip( p_bs, 8 ); /* i_geometric_data */
+#endif //ARIBSUB_GEN_DRCS_DATA
p_parser->i_data_unit_size += 1;
#ifdef ARIBSUB_GEN_DRCS_DATA
@@ -344,6 +359,8 @@ static void parse_caption_management_data( arib_parser_t *p_parser, bs_t *p_bs )
p_parser->i_data_unit_size = 0;
p_parser->i_subtitle_data_size = 0;
p_parser->psz_subtitle_data = NULL;
+ p_parser->p_instance->p->i_drcs_num = 0;
+ memset(p_parser->p_instance->p->drcs_hash_table, 0, sizeof(p_parser->p_instance->p->drcs_hash_table));
if( i_data_unit_loop_length > 0 )
{
p_parser->psz_subtitle_data = (unsigned char*) calloc(

View file

@ -1,7 +1,7 @@
#!/bin/bash
MINGW_STD_THREADS_REPO="https://github.com/meganz/mingw-std-threads.git"
MINGW_STD_THREADS_COMMIT="7e2507915900f5589febf0d8972cd5c9c03191f2"
SCRIPT_REPO="https://github.com/meganz/mingw-std-threads.git"
SCRIPT_COMMIT="6c2061b7da41d6aa1b2162ff4383ec3ece864bc6"
ffbuild_enabled() {
[[ $TARGET == win* ]] || return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$MINGW_STD_THREADS_REPO" "$MINGW_STD_THREADS_COMMIT" mingw-std-threads
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mingw-std-threads
cd mingw-std-threads
mkdir -p "$FFBUILD_PREFIX"/include

View file

@ -1,7 +1,7 @@
#!/bin/bash
MINGW_REPO="https://github.com/mirror/mingw-w64.git"
MINGW_COMMIT="99c95def1dcafdd7a2faa671942bdd17cc19864d"
SCRIPT_REPO="https://github.com/mirror/mingw-w64.git"
SCRIPT_COMMIT="eff726c461e09f35eeaed125a3570fa5f807f02b"
ffbuild_enabled() {
[[ $TARGET == win* ]] || return -1
@ -18,7 +18,7 @@ ffbuild_dockerfinal() {
}
ffbuild_dockerbuild() {
git-mini-clone "$MINGW_REPO" "$MINGW_COMMIT" mingw
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mingw
cd mingw
cd mingw-w64-headers

View file

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

View file

@ -1,17 +1,19 @@
#!/bin/bash
# https://ftp.gnu.org/gnu/libiconv/
ICONV_SRC="https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz"
SCRIPT_REPO="https://git.savannah.gnu.org/git/libiconv.git"
SCRIPT_COMMIT="33f08ec1e0fc1e8203a3d81e9161894dc5793908"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
wget -O iconv.tar.gz "$ICONV_SRC"
tar xaf iconv.tar.gz
rm iconv.tar.gz
cd libiconv*
retry-tool sh -c "rm -rf iconv && git clone '$SCRIPT_REPO' iconv"
cd iconv
git checkout "$SCRIPT_COMMIT"
./gitsub.sh pull
./autogen.sh
local myconf=(
--prefix="$FFBUILD_PREFIX"

View file

@ -1,14 +1,14 @@
#!/bin/bash
LIBXML2_REPO="https://gitlab.gnome.org/GNOME/libxml2.git"
LIBXML2_COMMIT="48ed5a74bdf24c630b99b063fa79b1a79c2ae5f3"
SCRIPT_REPO="https://gitlab.gnome.org/GNOME/libxml2.git"
SCRIPT_COMMIT="33fb297b3685f7ff7b11002155c23f9f1ccd957b"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXML2_REPO" "$LIBXML2_COMMIT" libxml2
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxml2
cd libxml2
local myconf=(

View file

@ -1,20 +1,16 @@
#!/bin/bash
ZLIB_SRC="https://zlib.net/zlib-1.2.12.tar.gz"
SCRIPT_REPO="https://github.com/madler/zlib.git"
SCRIPT_COMMIT="04f42ceca40f73e2978b50e93806c2a18c1281fc"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
mkdir zlib
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" zlib
cd zlib
wget "$ZLIB_SRC" -O zlib.tar.gz
tar xaf zlib.tar.gz
rm zlib.tar.gz
cd zlib*
local myconf=(
--prefix="$FFBUILD_PREFIX"
--static

View file

@ -1,26 +1,19 @@
#!/bin/bash
# https://fftw.org/download.html
FFTW3_SRC="https://fftw.org/fftw-3.3.10.tar.gz"
FFTW3_SHA512="2d34b5ccac7b08740dbdacc6ebe451d8a34cf9d9bfec85a5e776e87adf94abfd803c222412d8e10fbaa4ed46f504aa87180396af1b108666cde4314a55610b40"
SCRIPT_REPO="https://github.com/FFTW/fftw3.git"
SCRIPT_COMMIT="0842f00ae6b6e1f3aade155bc0edd17a7313fa6a"
ffbuild_enabled() {
# Dependency of GPL-Only librubberband
[[ $VARIANT == lgpl* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
mkdir fftw3
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT_PINNED" fftw3
cd fftw3
check-wget fftw3.tar.gz "$FFTW3_SRC" "$FFTW3_SHA512"
tar xaf fftw3.tar.gz
rm fftw3.tar.gz
cd fftw*
local myconf=(
--prefix="$FFBUILD_PREFIX"
--enable-maintainer-mode
--disable-shared
--enable-static
--disable-fortran
@ -29,11 +22,16 @@ ffbuild_dockerbuild() {
--enable-threads
--with-combined-threads
--with-incoming-stack-boundary=2
--enable-sse2
--enable-avx
--enable-avx2
)
if [[ $TARGET != *arm64 ]]; then
myconf+=(
--enable-sse2
--enable-avx
--enable-avx2
)
fi
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
@ -43,7 +41,7 @@ ffbuild_dockerbuild() {
return -1
fi
./configure "${myconf[@]}"
./bootstrap.sh "${myconf[@]}"
make -j$(nproc)
make install
}

View file

@ -1,19 +1,17 @@
#!/bin/bash
# https://sourceforge.net/projects/freetype/files/freetype2/
FREETYPE_SRC="https://sourceforge.net/projects/freetype/files/freetype2/2.11.1/freetype-2.11.1.tar.xz/download"
SCRIPT_REPO="https://gitlab.freedesktop.org/freetype/freetype.git"
SCRIPT_COMMIT="c4fe77c3f072fab930267f95510562e7aeb03302"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
mkdir ft
cd ft
wget -O ft.tar.gz "$FREETYPE_SRC"
tar xaf ft.tar.gz
rm ft.tar.gz
cd freetype*
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" freetype
cd freetype
./autogen.sh
local myconf=(
--prefix="$FFBUILD_PREFIX"

View file

@ -1,14 +1,14 @@
#!/bin/bash
FRIBIDI_REPO="https://github.com/fribidi/fribidi.git"
FRIBIDI_COMMIT="cffa3047a0db9f4cd391d68bf98ce7b7425be245"
SCRIPT_REPO="https://github.com/fribidi/fribidi.git"
SCRIPT_COMMIT="2c2a014bf7161d43ed9f0f23f383be176a4f9df3"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$FRIBIDI_REPO" "$FRIBIDI_COMMIT" fribidi
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fribidi
cd fribidi
mkdir build && cd build

View file

@ -1,21 +1,21 @@
#!/bin/bash
GMP_SRC="https://ftp.gnu.org/gnu/gmp/gmp-6.2.1.tar.xz"
SCRIPT_REPO="https://gmplib.org/repo/gmp/"
SCRIPT_HGREV="614a1cd8bb1d"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
wget "$GMP_SRC" -O gmp.tar.xz
tar xaf gmp.tar.xz
rm gmp.tar.xz
cd gmp*
retry-tool sh -c "rm -rf gmp && hg clone -r '$SCRIPT_HGREV' -u '$SCRIPT_HGREV' '$SCRIPT_REPO' gmp"
cd gmp
autoreconf -i
./.bootstrap
local myconf=(
--prefix="$FFBUILD_PREFIX"
--enable-maintainer-mode
--disable-shared
--enable-static
--with-pic

View file

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

View file

@ -1,14 +1,15 @@
#!/bin/bash
OPENSSL_REPO="https://github.com/openssl/openssl.git"
OPENSSL_COMMIT="OpenSSL_1_1_1n"
SCRIPT_REPO="https://github.com/openssl/openssl.git"
SCRIPT_COMMIT="OpenSSL_1_1_1t"
SCRIPT_TAGFILTER="OpenSSL_1_1_1*"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$OPENSSL_REPO" "$OPENSSL_COMMIT" openssl
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" openssl
cd openssl
local myconf=(
@ -36,11 +37,25 @@ ffbuild_dockerbuild() {
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
linux-x86_64
)
elif [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--cross-compile-prefix="$FFBUILD_CROSS_PREFIX"
linux-aarch64
)
else
echo "Unknown target"
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="gcc"
export CXX="g++"
export AR="gcc-ar"
export RANLIB="gcc-ranlib"
./Configure "${myconf[@]}"
sed -i -e "/^CFLAGS=/s|=.*|=${CFLAGS}|" -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" Makefile

View file

@ -1,22 +1,21 @@
#!/bin/bash
XZ_SRC="https://sourceforge.net/projects/lzmautils/files/xz-5.2.5.tar.xz/download"
SCRIPT_REPO="https://github.com/xz-mirror/xz.git"
SCRIPT_COMMIT="1dbe12b90cff79bb51923733ac0840747b4b4131"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
mkdir xz
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xz
cd xz
wget "$XZ_SRC" -O xz.tar.xz
tar xaf xz.tar.xz
rm xz.tar.xz
cd xz*
./autogen.sh --no-po4a
local myconf=(
--prefix="$FFBUILD_PREFIX"
--disable-symbol-versions
--disable-shared
--enable-static
--with-pic

View file

@ -1,19 +1,17 @@
#!/bin/bash
FONTCONFIG_SRC="https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.96.tar.xz"
SCRIPT_REPO="https://gitlab.freedesktop.org/fontconfig/fontconfig.git"
SCRIPT_COMMIT="222d058525506e587a45368f10e45e4b80ca541f"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
mkdir fc
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fc
cd fc
wget "$FONTCONFIG_SRC" -O fc.tar.gz
tar xaf fc.tar.gz
rm fc.tar.gz
cd fontconfig*
./autogen.sh --noconf
local myconf=(
--prefix="$FFBUILD_PREFIX"
@ -24,7 +22,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,14 +1,14 @@
#!/bin/bash
HARFBUZZ_REPO="https://github.com/harfbuzz/harfbuzz.git"
HARFBUZZ_COMMIT="924dd71de3c8444125f532655a8647c713f0cdc0"
SCRIPT_REPO="https://github.com/harfbuzz/harfbuzz.git"
SCRIPT_COMMIT="3db6baa20e0a4661f99654860000e74a2770c2e0"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$HARFBUZZ_REPO" "$HARFBUZZ_COMMIT" harfbuzz
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" harfbuzz
cd harfbuzz
local myconf=(

View file

@ -1,16 +1,14 @@
#!/bin/bash
LIBSR_REPO="https://github.com/libsndfile/libsamplerate.git"
LIBSR_COMMIT="4909e679b3e268a1403608cbd860f3895549b0d5"
SCRIPT_REPO="https://github.com/libsndfile/libsamplerate.git"
SCRIPT_COMMIT="22bd06eb114850ebe31981eb794d150a95439fef"
ffbuild_enabled() {
# Dependency of GPL-Only librubberband
[[ $VARIANT == lgpl* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBSR_REPO" "$LIBSR_COMMIT" libsr
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libsr
cd libsr
mkdir build

View file

@ -1,14 +1,14 @@
#!/bin/bash
LIBUDFREAD_REPO="https://code.videolan.org/videolan/libudfread.git"
LIBUDFREAD_COMMIT="b3e6936a23f8af30a0be63d88f4695bdc0ea26e1"
SCRIPT_REPO="https://code.videolan.org/videolan/libudfread.git"
SCRIPT_COMMIT="b3e6936a23f8af30a0be63d88f4695bdc0ea26e1"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBUDFREAD_REPO" "$LIBUDFREAD_COMMIT" libudfread
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libudfread
cd libudfread
./bootstrap

View file

@ -1,14 +1,14 @@
#!/bin/bash
VORBIS_REPO="https://github.com/xiph/vorbis.git"
VORBIS_COMMIT="84c023699cdf023a32fa4ded32019f194afcdad0"
SCRIPT_REPO="https://github.com/xiph/vorbis.git"
SCRIPT_COMMIT="84c023699cdf023a32fa4ded32019f194afcdad0"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$VORBIS_REPO" "$VORBIS_COMMIT" vorbis
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vorbis
cd vorbis
./autogen.sh

View file

@ -1,10 +1,10 @@
#!/bin/bash
HEADERS_REPO="https://github.com/KhronosGroup/OpenCL-Headers.git"
HEADERS_COMMIT="dcd5bede6859d26833cd85f0d6bbcee7382dc9b3"
SCRIPT_REPO="https://github.com/KhronosGroup/OpenCL-Headers.git"
SCRIPT_COMMIT="4fdcfb0ae675f2f63a9add9552e0af62c2b4ed30"
LOADER_REPO="https://github.com/KhronosGroup/OpenCL-ICD-Loader.git"
LOADER_COMMIT="cd7d07cfa667d8d959b4272be45cf217a65c2948"
SCRIPT_REPO2="https://github.com/KhronosGroup/OpenCL-ICD-Loader.git"
SCRIPT_COMMIT2="b1bce7c3c580a8345205cf65fc1a5f55ba9cdb01"
ffbuild_enabled() {
return -1
@ -13,16 +13,19 @@ ffbuild_enabled() {
ffbuild_dockerbuild() {
mkdir opencl && cd opencl
git-mini-clone "$HEADERS_REPO" "$HEADERS_COMMIT" headers
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 "$LOADER_REPO" "$LOADER_COMMIT" loader
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 +37,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,7 +1,7 @@
#!/bin/bash
PULSEAUDIO_REPO="https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git"
PULSEAUDIO_COMMIT="5af2afba85b8cc33b12189a8b0d40cfc4477ed89"
SCRIPT_REPO="https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git"
SCRIPT_COMMIT="86e9c901289d2e1a3c2c6cb5885294a829f3eb27"
ffbuild_enabled() {
[[ $TARGET == linux* ]] || return 1
@ -9,16 +9,16 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git clone --filter=blob:none "$PULSEAUDIO_REPO" pa
git clone --filter=blob:none "$SCRIPT_REPO" pa
cd pa
git checkout "$PULSEAUDIO_COMMIT"
git checkout "$SCRIPT_COMMIT"
# Kill build of utils and their sndfile dep
echo > src/utils/meson.build
echo > src/pulsecore/sndfile-util.c
echo > src/pulsecore/sndfile-util.h
sed -ri -e 's/(sndfile_dep = .*)\)/\1, required : false)/' meson.build
sed -ri -e 's/shared_library/static_library/g' src/meson.build src/pulse/meson.build
sed -ri -e 's/shared_library/library/g' src/meson.build src/pulse/meson.build
mkdir build && cd build

View file

@ -1,14 +1,14 @@
#!/bin/bash
VMAF_REPO="https://github.com/Netflix/vmaf.git"
VMAF_COMMIT="9e1fb0bbc218855dc695166d77aea0a14e6d3527"
SCRIPT_REPO="https://github.com/Netflix/vmaf.git"
SCRIPT_COMMIT="bf80018c3f21151b7c90324da95ef2de80f49297"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$VMAF_REPO" "$VMAF_COMMIT" vmaf
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" vmaf
cd vmaf
# Kill build of unused and broken tools

View file

@ -1,7 +1,7 @@
#!/bin/bash
XCBPROTO_REPO="https://gitlab.freedesktop.org/xorg/proto/xcbproto.git"
XCBPROTO_COMMIT="70ca65fa35c3760661b090bc4b2601daa7a099b8"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/proto/xcbproto.git"
SCRIPT_COMMIT="cfcc51836c1f2c174b67073cc8bed92e7e9c9569"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$XCBPROTO_REPO" "$XCBPROTO_COMMIT" xcbproto
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" xcbproto
cd xcbproto
autoreconf -i

View file

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

View file

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

View file

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

View file

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

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBX11_REPO="https://gitlab.freedesktop.org/xorg/lib/libx11.git"
LIBX11_COMMIT="4f9eb32709dca705f02ca771bbd47d6c08aba5e0"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libx11.git"
SCRIPT_COMMIT="96cbac89a02220eb21e13ca5fa7c8c5adf77028a"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBX11_REPO" "$LIBX11_COMMIT" libx11
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libx11
cd libx11
autoreconf -i
@ -27,6 +27,12 @@ ffbuild_dockerbuild() {
--enable-ipv6
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXEXT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxext.git"
LIBXEXT_COMMIT="47904063048fa6ef6e8e16219ddef4d14d5d9a4b"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxext.git"
SCRIPT_COMMIT="de2ebd62c1eb8fe16c11aceac4a6981bda124cf4"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXEXT_REPO" "$LIBXEXT_COMMIT" libxext
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxext
cd libxext
autoreconf -i
@ -25,6 +25,12 @@ ffbuild_dockerbuild() {
--without-lint
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"
@ -34,7 +40,7 @@ ffbuild_dockerbuild() {
return -1
fi
export CFLAGS="$RAW_CFLAGS"
export CFLAGS="$RAW_CFLAGS -D_GNU_SOURCE"
export LDFLAFS="$RAW_LDFLAGS"
./configure "${myconf[@]}"

View file

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

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXI_REPO="https://gitlab.freedesktop.org/xorg/lib/libxi.git"
LIBXI_COMMIT="f24d7f43ab4d97203e60677a3d42e11dbc80c8b4"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxi.git"
SCRIPT_COMMIT="826215af0cc46b19555063b8894de6781d4c5993"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXI_REPO" "$LIBXI_COMMIT" libxi
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxi
cd libxi
autoreconf -i
@ -21,6 +21,12 @@ ffbuild_dockerbuild() {
--with-pic
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXINERAMA_REPO="https://gitlab.freedesktop.org/xorg/lib/libxinerama.git"
LIBXINERAMA_COMMIT="c5187f076d16601c15c59c5a2f05c0513d9f042b"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxinerama.git"
SCRIPT_COMMIT="51c28095951676a5896437c4c3aa40fb1972bad2"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXINERAMA_REPO" "$LIBXINERAMA_COMMIT" libxinerama
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxinerama
cd libxinerama
autoreconf -i
@ -21,6 +21,12 @@ ffbuild_dockerbuild() {
--with-pic
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXRENDER_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrender.git"
LIBXRENDER_COMMIT="bce0618839fc33f44edd8b5498b8e33d167806ff"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrender.git"
SCRIPT_COMMIT="07efd80468f6b595e6432edd28b8560ca7695ba0"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXRENDER_REPO" "$LIBXRENDER_COMMIT" libxrender
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxrender
cd libxrender
autoreconf -i
@ -21,6 +21,12 @@ ffbuild_dockerbuild() {
--with-pic
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXSCRNSAVER_REPO="https://gitlab.freedesktop.org/xorg/lib/libxscrnsaver.git"
LIBXSCRNSAVER_COMMIT="aa9fd5061d0a8832480ad0c1acc9d2e864e807f4"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxscrnsaver.git"
SCRIPT_COMMIT="9b4e000c6c4ae213a3e52345751d885543f17929"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXSCRNSAVER_REPO" "$LIBXSCRNSAVER_COMMIT" libxscrnsaver
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxscrnsaver
cd libxscrnsaver
autoreconf -i
@ -21,6 +21,12 @@ ffbuild_dockerbuild() {
--with-pic
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXXF86VM_REPO="https://gitlab.freedesktop.org/xorg/lib/libxxf86vm.git"
LIBXXF86VM_COMMIT="7f43cd2a905e7b93b83c9ce81dabb768f6fa2bc7"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxxf86vm.git"
SCRIPT_COMMIT="cfda59347e3a04415340a99f925a9cd85c0531b2"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXXF86VM_REPO" "$LIBXXF86VM_COMMIT" libxxf86vm
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxxf86vm
cd libxxf86vm
autoreconf -i
@ -21,6 +21,12 @@ ffbuild_dockerbuild() {
--with-pic
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

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

View file

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

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXRANDR_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrandr.git"
LIBXRANDR_COMMIT="55dcda4518eda8ae03ef25ea29d3c994ad71eb0a"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxrandr.git"
SCRIPT_COMMIT="5b96863cf2a34ee9e72ffc4ec6415bc59b6121fc"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXRANDR_REPO" "$LIBXRANDR_COMMIT" libxrandr
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxrandr
cd libxrandr
autoreconf -i
@ -21,6 +21,12 @@ ffbuild_dockerbuild() {
--with-pic
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -1,7 +1,7 @@
#!/bin/bash
LIBXV_REPO="https://gitlab.freedesktop.org/xorg/lib/libxv.git"
LIBXV_COMMIT="03a6f599d060591a9a7cd8558bd2143a1c7c70d7"
SCRIPT_REPO="https://gitlab.freedesktop.org/xorg/lib/libxv.git"
SCRIPT_COMMIT="b022c9cf7004fe6f794c4c00dd519a2e4c74eca0"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
@ -10,7 +10,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBXV_REPO" "$LIBXV_COMMIT" libxv
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libxv
cd libxv
autoreconf -i
@ -23,6 +23,12 @@ ffbuild_dockerbuild() {
--without-lint
)
if [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--disable-malloc0returnsnull
)
fi
if [[ $TARGET == linux* ]]; then
myconf+=(
--host="$FFBUILD_TOOLCHAIN"

View file

@ -1,5 +1,7 @@
#!/bin/bash
SCRIPT_SKIP="1"
ffbuild_enabled() {
[[ $TARGET != linux* ]] && return -1
return 0

View file

@ -1,14 +1,14 @@
#!/bin/bash
AMF_REPO="https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git"
AMF_COMMIT="06b0e29a372b0c491f87ff285ca92be2844dc039"
SCRIPT_REPO="https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git"
SCRIPT_COMMIT="daee84bf3cde928dc1cd0b502c1b6a50cbff2495"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$AMF_REPO" "$AMF_COMMIT" amf
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" amf
cd amf
mkdir -p "$FFBUILD_PREFIX"/include

View file

@ -1,7 +1,7 @@
#!/bin/bash
AOM_REPO="https://aomedia.googlesource.com/aom"
AOM_COMMIT="493cf67c62441838a56c5ea6f8dfbf6777e3cee7"
SCRIPT_REPO="https://aomedia.googlesource.com/aom"
SCRIPT_COMMIT="d6b8177c9e7fe0fa381afb6ed3946c492fc4d6e9"
ffbuild_enabled() {
return -1
@ -12,7 +12,7 @@ ffbuild_dockerstage() {
}
ffbuild_dockerbuild() {
git-mini-clone "$AOM_REPO" "$AOM_COMMIT" aom
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aom
cd aom
for patch in /patches/*.patch; do

View file

@ -0,0 +1,37 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/glennrp/libpng.git"
SCRIPT_COMMIT="e519af8b49f52c4ac400f50f23b48ebe36a5f4df"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libpng
cd libpng
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
export CPPFLAGS="$CPPFLAGS -I$FFBUILD_PREFIX/include"
./configure "${myconf[@]}"
make -j$(nproc)
make install
}

View file

@ -0,0 +1,56 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/nkoriyama/aribb24.git"
SCRIPT_COMMIT="5e9be272f96e00f15a2f3c5f8ba7e124862aec38"
ffbuild_enabled() {
return 0
}
ffbuild_dockerstage() {
to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/aribb24,dst=/patches run_stage /stage.sh"
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" aribb24
cd aribb24
for patch in /patches/*.patch; do
echo "Applying $patch"
git am < "$patch"
done
# Library switched to LGPL on master, but didn't bump version since.
# FFmpeg checks for >1.0.3 to allow LGPL builds.
sed -i 's/1.0.3/1.0.4/' configure.ac
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
}
ffbuild_configure() {
echo --enable-libaribb24
}
ffbuild_unconfigure() {
echo --disable-libaribb24
}

View file

@ -1,7 +1,7 @@
#!/bin/bash
AVISYNTH_REPO="https://github.com/AviSynth/AviSynthPlus.git"
AVISYNTH_COMMIT="c6d9cf4aa062a150995b8ef00eb8f46e7a2caec8"
SCRIPT_REPO="https://github.com/AviSynth/AviSynthPlus.git"
SCRIPT_COMMIT="35706f838a7f6bdda422891c875e60d503d9bdb4"
ffbuild_enabled() {
[[ $VARIANT == lgpl* ]] && return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$AVISYNTH_REPO" "$AVISYNTH_COMMIT" avisynth
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" avisynth
cd avisynth
mkdir build && cd build

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

@ -0,0 +1,34 @@
#!/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() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" chromaprint
cd chromaprint
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,14 +1,14 @@
#!/bin/bash
DAV1D_REPO="https://code.videolan.org/videolan/dav1d.git"
DAV1D_COMMIT="887fa1d718df42aac1ac102580c14eb655979ac6"
SCRIPT_REPO="https://code.videolan.org/videolan/dav1d.git"
SCRIPT_COMMIT="0b809a9281e0a97441728ad763779e7874209d37"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$DAV1D_REPO" "$DAV1D_COMMIT" dav1d
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" dav1d
cd dav1d
mkdir build && cd build

View file

@ -1,7 +1,7 @@
#!/bin/bash
DAVS2_REPO="https://github.com/pkuvcl/davs2.git"
DAVS2_COMMIT="b06d7585620f4e90a6d19a2926bb4e59793b8942"
SCRIPT_REPO="https://github.com/pkuvcl/davs2.git"
SCRIPT_COMMIT="b41cf117452e2d73d827f02d3e30aa20f1c721ac"
ffbuild_enabled() {
[[ $VARIANT == lgpl* ]] && return -1
@ -10,9 +10,9 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git clone "$DAVS2_REPO" davs2
git clone "$SCRIPT_REPO" davs2
cd davs2
git checkout "$DAVS2_COMMIT"
git checkout "$SCRIPT_COMMIT"
cd build/linux
local myconf=(
@ -31,6 +31,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

@ -1,7 +1,7 @@
#!/bin/bash
FDK_REPO="https://github.com/mstorsjo/fdk-aac.git"
FDK_COMMIT="072f2cdafdd2bb7ed2d630d09c2a5697a4aec53d"
SCRIPT_REPO="https://github.com/mstorsjo/fdk-aac.git"
SCRIPT_COMMIT="3f864cce9736cc8e9312835465fae18428d76295"
ffbuild_enabled() {
[[ $VARIANT == nonfree* ]] || return -1
@ -9,7 +9,7 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$FDK_REPO" "$FDK_COMMIT" fdk
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" fdk
cd fdk
./autogen.sh

View file

@ -1,14 +1,22 @@
#!/bin/bash
FFNVCODEC_REPO="https://github.com/FFmpeg/nv-codec-headers.git"
FFNVCODEC_COMMIT="84483da70d903239d4536763fde8c7e6c4e80784"
SCRIPT_REPO="https://github.com/FFmpeg/nv-codec-headers.git"
SCRIPT_COMMIT="450f8a634309b8f212b1a642630e164150d6a427"
SCRIPT_REPO2="https://github.com/FFmpeg/nv-codec-headers.git"
SCRIPT_COMMIT2="2055784e5d5bfb3df78d4d3645f345f19062dce2"
SCRIPT_BRANCH2="sdk/11.1"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$FFNVCODEC_REPO" "$FFNVCODEC_COMMIT" ffnvcodec
if [[ $ADDINS_STR == *4.4* || $ADDINS_STR == *5.0* || $ADDINS_STR == *5.1* ]]; then
SCRIPT_COMMIT="$SCRIPT_COMMIT2"
fi
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ffnvcodec
cd ffnvcodec
make PREFIX="$FFBUILD_PREFIX" install

View file

@ -1,7 +1,7 @@
#!/bin/bash
FREI0R_REPO="https://github.com/dyne/frei0r.git"
FREI0R_COMMIT="febd73874dab6be330398a3b55112451b36ee939"
SCRIPT_REPO="https://github.com/dyne/frei0r.git"
SCRIPT_COMMIT="3e1234b9f2ba86b1deebdd1034735e12d706c095"
ffbuild_enabled() {
[[ $VARIANT == lgpl* ]] && return -1
@ -10,32 +10,20 @@ ffbuild_enabled() {
}
ffbuild_dockerbuild() {
git-mini-clone "$FREI0R_REPO" "$FREI0R_COMMIT" frei0r
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" frei0r
cd frei0r
./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

@ -1,16 +1,16 @@
#!/bin/bash
GME_REPO="https://bitbucket.org/mpyne/game-music-emu.git"
GME_COMMIT="b3d158a30492181fd7c38ef795c8d4dcfd77eaa9"
SCRIPT_REPO="https://bitbucket.org/mpyne/game-music-emu.git"
SCRIPT_COMMIT="6cd4bdb69be304f58c9253fb08b8362f541b3b4b"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git clone "$GME_REPO" gme
git clone "$SCRIPT_REPO" gme
cd gme
git checkout "$GME_COMMIT"
git checkout "$SCRIPT_COMMIT"
mkdir build && cd build

45
scripts.d/50-kvazaar.sh Executable file
View file

@ -0,0 +1,45 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/ultravideo/kvazaar.git"
SCRIPT_COMMIT="37a0404bc8ccdc39515a5aed706205dc53810019"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" kvazaar
cd kvazaar
./autogen.sh
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
echo "Cflags.private: -DKVZ_STATIC_LIB" >> "$FFBUILD_PREFIX"/lib/pkgconfig/kvazaar.pc
}
ffbuild_configure() {
echo --enable-libkvazaar
}
ffbuild_unconfigure() {
echo --disable-libkvazaar
}

View file

@ -1,14 +1,14 @@
#!/bin/bash
ASS_REPO="https://github.com/libass/libass.git"
ASS_COMMIT="ba6bcb3a9c2f06272ca1ff1a65f52dc5bc4528b0"
SCRIPT_REPO="https://github.com/libass/libass.git"
SCRIPT_COMMIT="32dea3434dbd85f9fb2700b6863c1bd92f00b86f"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$ASS_REPO" "$ASS_COMMIT" ass
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" ass
cd ass
./autogen.sh
@ -29,6 +29,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,14 +1,14 @@
#!/bin/bash
LIBBLURAY_REPO="https://code.videolan.org/videolan/libbluray.git"
LIBBLURAY_COMMIT="060d8f055f2ed1b4752340be5d16403bad5ccdc0"
SCRIPT_REPO="https://code.videolan.org/videolan/libbluray.git"
SCRIPT_COMMIT="bb5bc108ec695889855f06df338958004ff289ef"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBBLURAY_REPO" "$LIBBLURAY_COMMIT" libbluray
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libbluray
cd libbluray
./bootstrap

View file

@ -0,0 +1,20 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/google/brotli.git"
SCRIPT_COMMIT="ed1995b6bda19244070ab5d331111f16f67c8054"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" brotli
cd brotli
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 -DBUILD_SHARED_LIBS=OFF ..
ninja -j$(nproc)
ninja install
}

View file

@ -0,0 +1,55 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/libjxl/libjxl.git"
SCRIPT_COMMIT="6c296fb8ca5ea17a36c123eb82bba2102e26c411"
ffbuild_enabled() {
[[ $ADDINS_STR == *4.4* ]] && return -1
[[ $ADDINS_STR == *5.0* ]] && return -1
return 0
}
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}
mkdir build && cd build
if [[ $TARGET == linux* ]]; then
# our glibc is too old(<2.25), and their detection fails for some reason
export CXXFLAGS="$CXXFLAGS -DVQSORT_GETRANDOM=0 -DVQSORT_SECURE_SEED=0"
elif [[ $TARGET == win* ]]; then
# Fix AVX2 related crash due to unaligned stack memory
export CXXFLAGS="$CXXFLAGS -Wa,-muse-unaligned-vector-move"
export CFLAGS="$CFLAGS -Wa,-muse-unaligned-vector-move"
fi
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_DEVTOOLS=OFF -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_BUNDLE_LIBPNG=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_FORCE_SYSTEM_BROTLI=ON ..
ninja -j$(nproc)
ninja install
echo "Cflags.private: -DJXL_STATIC_DEFINE=1" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl.pc
echo "Libs.private: -lstdc++" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl.pc
echo "Cflags.private: -DJXL_STATIC_DEFINE=1" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl_threads.pc
echo "Libs.private: -lstdc++" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl_threads.pc
if [[ $TARGET == win* ]]; then
echo "Libs.private: -ladvapi32" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl.pc
echo "Libs.private: -ladvapi32" >> "${FFBUILD_PREFIX}"/lib/pkgconfig/libjxl_threads.pc
fi
}
ffbuild_configure() {
echo --enable-libjxl
}
ffbuild_unconfigure() {
[[ $ADDINS_STR == *4.4* ]] && return 0
[[ $ADDINS_STR == *5.0* ]] && return 0
echo --disable-libjxl
}

View file

@ -1,18 +1,17 @@
#!/bin/bash
LAME_SRC="https://sourceforge.net/projects/lame/files/lame/3.100/lame-3.100.tar.gz/download"
SCRIPT_REPO="https://svn.code.sf.net/p/lame/svn/trunk/lame"
SCRIPT_REV="6507"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
mkdir lame
retry-tool sh -c "rm -rf lame && svn checkout '${SCRIPT_REPO}@${SCRIPT_REV}' lame"
cd lame
wget -O lame.tar.gz "$LAME_SRC"
tar xaf lame.tar.gz
rm lame.tar.gz
cd lame*
autoreconf -i
local myconf=(
--prefix="$FFBUILD_PREFIX"
@ -22,6 +21,7 @@ ffbuild_dockerbuild() {
--disable-gtktest
--disable-cpml
--disable-frontend
--disable-decoder
)
if [[ $TARGET == win* || $TARGET == linux* ]]; then
@ -33,6 +33,8 @@ ffbuild_dockerbuild() {
return -1
fi
export CFLAGS="$CFLAGS -DNDEBUG"
./configure "${myconf[@]}"
make -j$(nproc)
make install

View file

@ -1,14 +1,14 @@
#!/bin/bash
OPUS_REPO="https://github.com/xiph/opus.git"
OPUS_COMMIT="37aba6e9b382f7dbdb7916adbc335704cf2992e8"
SCRIPT_REPO="https://github.com/xiph/opus.git"
SCRIPT_COMMIT="8cf872a186b96085b1bb3a547afd598354ebeb87"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$OPUS_REPO" "$OPUS_COMMIT" opus
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" opus
cd opus
./autogen.sh

View file

@ -1,21 +1,21 @@
#!/bin/bash
MBEDTLS_REPO="https://github.com/ARMmbed/mbedtls.git"
# HEAD of development_2.x
MBEDTLS_COMMIT="4ed284440582a32bfdf3c223730271a7b2fcf13c"
SCRIPT_REPO="https://github.com/ARMmbed/mbedtls.git"
SCRIPT_COMMIT="v3.4.0"
SCRIPT_TAGFILTER="v3.*"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$MBEDTLS_REPO" "$MBEDTLS_COMMIT" mbedtls
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" mbedtls
cd mbedtls
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF \
-DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF -DGEN_FILES=ON \
-DUSE_STATIC_MBEDTLS_LIBRARY=ON -DUSE_SHARED_MBEDTLS_LIBRARY=OFF -DINSTALL_MBEDTLS_HEADERS=ON \
..
make -j$(nproc)

View file

@ -1,14 +1,14 @@
#!/bin/bash
LIBRIST_REPO="https://code.videolan.org/rist/librist.git"
LIBRIST_COMMIT="6356dde85e97398be8b60a44ee4341e847ce4d5f"
SCRIPT_REPO="https://code.videolan.org/rist/librist.git"
SCRIPT_COMMIT="234c2e224c1dc60276a7b427acd3cc0f8bdb3bda"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBRIST_REPO" "$LIBRIST_COMMIT" librist
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" librist
cd librist
mkdir build && cd build

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

@ -0,0 +1,36 @@
#!/bin/bash
SCRIPT_REPO="https://git.libssh.org/projects/libssh.git"
SCRIPT_COMMIT="c3aa0cb18225f2f9fcefd96aad327c6ffbb2d77c"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libssh
cd libssh
mkdir build && cd build
cmake -GNinja -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DBUILD_SHARED_LIBS=OFF \
-DWITH_EXAMPLES=OFF -DWITH_SERVER=OFF \
-DWITH_SFTP=ON -DWITH_ZLIB=ON ..
ninja -j$(nproc)
ninja install
{
echo "Requires.private: libssl libcrypto zlib"
echo "Cflags.private: -DLIBSSH_STATIC"
} >> "$FFBUILD_PREFIX"/lib/pkgconfig/libssh.pc
}
ffbuild_configure() {
echo --enable-libssh
}
ffbuild_unconfigure() {
echo --disable-libssh
}

View file

@ -1,14 +1,14 @@
#!/bin/bash
THEORA_REPO="https://github.com/xiph/theora.git"
THEORA_COMMIT="7180717276af1ebc7da15c83162d6c5d6203aabf"
SCRIPT_REPO="https://github.com/xiph/theora.git"
SCRIPT_COMMIT="7180717276af1ebc7da15c83162d6c5d6203aabf"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$THEORA_REPO" "$THEORA_COMMIT" theora
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" theora
cd theora
./autogen.sh

View file

@ -1,14 +1,14 @@
#!/bin/bash
LIBVPX_REPO="https://chromium.googlesource.com/webm/libvpx"
LIBVPX_COMMIT="3b21aeac8b7d5a52b6360d878cb4df593e87113e"
SCRIPT_REPO="https://chromium.googlesource.com/webm/libvpx"
SCRIPT_COMMIT="8f14f66490f8bfbbf01ce809629c02631baf5b8f"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$LIBVPX_REPO" "$LIBVPX_COMMIT" libvpx
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" libvpx
cd libvpx
local myconf=(
@ -18,6 +18,7 @@ ffbuild_dockerbuild() {
--disable-examples
--disable-tools
--disable-docs
--disable-unit-tests
--enable-vp9-highbitdepth
--prefix="$FFBUILD_PREFIX"
)
@ -32,11 +33,16 @@ ffbuild_dockerbuild() {
--target=x86-win32-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
elif [[ $TARGET == linux* ]]; then
elif [[ $TARGET == linux64 ]]; then
myconf+=(
--target=x86_64-linux-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
elif [[ $TARGET == linuxarm64 ]]; then
myconf+=(
--target=arm64-linux-gcc
)
export CROSS="$FFBUILD_CROSS_PREFIX"
else
echo "Unknown target"
return -1
@ -45,6 +51,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,14 +1,14 @@
#!/bin/bash
WEBP_REPO="https://chromium.googlesource.com/webm/libwebp"
WEBP_COMMIT="0fa0ea5488ab37f229b42c363c73c4bae3d90386"
SCRIPT_REPO="https://chromium.googlesource.com/webm/libwebp"
SCRIPT_COMMIT="761f49c3ab1c91b8e911840a4f6f246308b7c242"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$WEBP_REPO" "$WEBP_COMMIT" webp
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" webp
cd webp
./autogen.sh

View file

@ -1,24 +1,38 @@
#!/bin/bash
LV2_REPO="https://github.com/lv2/lv2.git"
LV2_COMMIT="6cefc7df1a6158c79d23029df183c09b10b88cad"
SCRIPT_REPO="https://github.com/lv2/lv2.git"
SCRIPT_COMMIT="bdaebafd3223551b3d9d890070ac0671b3b645c1"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$LV2_REPO" "$LV2_COMMIT" lv2
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" lv2
cd lv2
git submodule update --init --recursive --depth 1
local mywaf=(
mkdir build && cd build
local myconf=(
--prefix="$FFBUILD_PREFIX"
--no-plugins
--no-coverage
--buildtype=release
--default-library=static
-Ddocs=disabled
-Dplugins=disabled
-Dtests=disabled
-Donline_docs=false
)
CC="${FFBUILD_CROSS_PREFIX}gcc" CXX="${FFBUILD_CROSS_PREFIX}g++" ./waf configure "${mywaf[@]}"
./waf -j$(nproc)
./waf install
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,29 +1,37 @@
#!/bin/bash
SERD_REPO="https://github.com/drobilla/serd.git"
SERD_COMMIT="c05fdaa19be53ef618435d3629122a4ebdc7cb63"
SCRIPT_REPO="https://github.com/drobilla/serd.git"
SCRIPT_COMMIT="a6cd7dd91d93015ec118286b868c3fd43133f3ac"
ffbuild_enabled() {
return -1
}
ffbuild_dockerbuild() {
git-mini-clone "$SERD_REPO" "$SERD_COMMIT" serd
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" serd
cd serd
git submodule update --init --recursive --depth 1
local mywaf=(
mkdir build && cd build
local myconf=(
--prefix="$FFBUILD_PREFIX"
--no-utils
--static
--no-shared
--largefile
--stack-check
--buildtype=release
--default-library=static
-Ddocs=disabled
-Dtools=disabled
-Dtests=disabled
)
CC="${FFBUILD_CROSS_PREFIX}gcc" CXX="${FFBUILD_CROSS_PREFIX}g++" ./waf configure "${mywaf[@]}"
./waf -j$(nproc)
./waf install
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--cross-file=/cross.meson
)
else
echo "Unknown target"
return -1
fi
sed -i 's/Cflags:/Cflags: -DSERD_STATIC/' "$FFBUILD_PREFIX"/lib/pkgconfig/serd-0.pc
meson "${myconf[@]}" ..
ninja -j"$(nproc)"
ninja install
}

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

@ -0,0 +1,38 @@
#!/bin/bash
SCRIPT_REPO="https://github.com/drobilla/zix.git"
SCRIPT_COMMIT="262d4a1522c38be0588746e874159da5c7bb457d"
ffbuild_enabled() {
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SCRIPT_REPO" "$SCRIPT_COMMIT" zix
cd zix
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
}

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