mirror of
https://github.com/bensuperpc/dockcross.git
synced 2026-08-14 14:16:12 +02:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d01cbaa098 | |||
| 76dedb50da |
@@ -1,22 +1,22 @@
|
|||||||
name: 'Close stale issues and PRs'
|
name: 'Close stale issues and PRs'
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 */12 * * *'
|
- cron: '0 0 */2 * *'
|
||||||
jobs:
|
jobs:
|
||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v10
|
- uses: actions/stale@v9
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
exempt-issue-milestones: 'future,alpha,beta,release,bugfix,improvement,enhancement,help wanted'
|
exempt-issue-milestones: 'future,alpha,beta,release,bugfix,improvement,enhancement,help wanted'
|
||||||
exempt-pr-milestones: 'bugfix,improvement,enhancement,help wanted'
|
exempt-pr-milestones: 'bugfix,improvement,enhancement,help wanted'
|
||||||
exempt-all-pr-assignees: true
|
exempt-all-pr-assignees: true
|
||||||
stale-issue-message: 'This issue is stale because it has been open 240 days with no activity. Remove stale label or comment or this will be closed in 90 days.'
|
stale-issue-message: 'This issue is stale because it has been open 240 days with no activity. Remove stale label or comment or this will be closed in 30 days.'
|
||||||
stale-pr-message: 'This PR is stale because it has been open 240 days with no activity. Remove stale label or comment or this will be closed in 90 days.'
|
stale-pr-message: 'This PR is stale because it has been open 240 days with no activity. Remove stale label or comment or this will be closed in 30 days.'
|
||||||
close-issue-message: 'This issue was closed because it has been stale for 90 days with no activity.'
|
close-issue-message: 'This issue was closed because it has been stalled for 30 days with no activity.'
|
||||||
close-pr-message: 'This PR was closed because it has been stale for 90 days with no activity.'
|
close-pr-message: 'This PR was closed because it has been stalled for 30 days with no activity.'
|
||||||
days-before-issue-stale: 240
|
days-before-issue-stale: 240
|
||||||
days-before-pr-stale: 240
|
days-before-pr-stale: 240
|
||||||
days-before-issue-close: 90
|
days-before-issue-close: 60
|
||||||
days-before-pr-close: 90
|
days-before-pr-close: 60
|
||||||
|
|||||||
+1427
-161
File diff suppressed because it is too large
Load Diff
@@ -18,7 +18,7 @@ jobs:
|
|||||||
name: Shellcheck
|
name: Shellcheck
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v4
|
||||||
- name: Run ShellCheck
|
- name: Run ShellCheck
|
||||||
uses: ludeeus/action-shellcheck@master
|
uses: ludeeus/action-shellcheck@master
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
bin
|
bin
|
||||||
.dockcross-test-cache
|
|
||||||
dockcross
|
dockcross
|
||||||
dockcross-*
|
dockcross-*
|
||||||
build
|
build
|
||||||
|
|||||||
Vendored
-3
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"python-envs.defaultEnvManager": "ms-python.python:system"
|
|
||||||
}
|
|
||||||
+46
-72
@@ -198,51 +198,39 @@ Once this part is finished, there must be 3 files in the `linux-arm64` folder:
|
|||||||
|
|
||||||
### Makefile
|
### Makefile
|
||||||
|
|
||||||
The [Makefile](Makefile) is generic: it knows how to generate/build/test/push
|
For this last part, we will see how to add the image to the [Makefile](Makefile) and to a github action.
|
||||||
an image out of a "preset" directory, but it has no built-in knowledge of the
|
|
||||||
actual list of dockcross images. Every image folder is a preset that is
|
|
||||||
auto-discovered because it contains a `preset.mk` file - there is no central
|
|
||||||
list to edit anymore.
|
|
||||||
|
|
||||||
To add the image to the build system, create **`linux-arm64/preset.mk`**:
|
You need to add the image/folder name (**linux-arm64**) to the **STANDARD_IMAGES** variable in the [Makefile](Makefile):
|
||||||
|
|
||||||
```make
|
```make
|
||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
# These images are built using the "build implicit rule"
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
STANDARD_IMAGES = android-arm android-arm64 android-x86 android-x86_64 \
|
||||||
BASE_IMAGE_NAME = base
|
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
|
||||||
BASE_IMAGE_TAG = latest
|
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-m68k-uclibc linux-s390x linux-x64-tinycc \
|
||||||
|
linux-armv6 linux-armv6-lts linux-armv6-musl linux-arm64-lts \
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
linux-armv7l-musl linux-armv7 linux-armv7a linux-armv7-lts linux-x86_64-full \
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
linux-mips linux-ppc64le linux-riscv64 linux-riscv32 linux-xtensa-uclibc \
|
||||||
OUTPUT_IMAGE_NAME = linux-arm64
|
web-wasi \
|
||||||
|
windows-static-x86 windows-static-x64 windows-static-x64-posix windows-armv7 \
|
||||||
|
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix windows-arm64
|
||||||
```
|
```
|
||||||
|
|
||||||
`BASE_IMAGE_NAME = base` / `BASE_IMAGE_TAG = latest` matches the common case
|
You need to add the image/folder name (`linux-arm64`) to the `GEN_IMAGES` variable in the [Makefile](Makefile):
|
||||||
where `Dockerfile.in` starts with `ARG ORG=dockcross` / `FROM ${ORG}/base:latest`
|
|
||||||
(the image is built on top of the local `base` preset). `OUTPUT_IMAGE_NAME`
|
|
||||||
should match the folder name so the built image is tagged
|
|
||||||
`<registry>/<path>/linux-arm64`.
|
|
||||||
|
|
||||||
A `preset.mk` can override or add anything the generic Makefile doesn't
|
```make
|
||||||
already do the right thing for, for example:
|
# Generated Dockerfiles.
|
||||||
|
GEN_IMAGES = android-arm android-arm64 \
|
||||||
- `TEST_IMAGE_CMD` / `TEST_IMAGE_ARGS`: override the command run by `make
|
linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
|
||||||
<image>.test` (defaults to `python3 test/run.py`). E.g. an image that only
|
manylinux2014-x64 manylinux2014-x86 \
|
||||||
supports C needs `TEST_IMAGE_ARGS = --languages C`.
|
manylinux2014-aarch64 linux-arm64-lts \
|
||||||
- `BUILD_CONTEXT_DIR`: override the docker build context directory. Defaults
|
web-wasm web-wasi linux-mips windows-arm64 windows-armv7 \
|
||||||
to the preset's own folder; a few images (the manylinux\*-aarch64/x64/x86
|
windows-static-x86 windows-static-x64 windows-static-x64-posix \
|
||||||
family) `COPY` files from sibling folders and need
|
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix \
|
||||||
`BUILD_CONTEXT_DIR = $(PRESET_DIR)` (the repository root) instead.
|
linux-armv7 linux-armv7a linux-armv7l-musl linux-armv7-lts linux-x86_64-full \
|
||||||
- `DEPENDS_ON`: list of `<preset>.build` targets that must be built first,
|
linux-armv6 linux-armv6-lts linux-armv6-musl \
|
||||||
for images whose `Dockerfile.in` is `FROM ${ORG}/<other-image>:latest`
|
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-ppc64le linux-s390x \
|
||||||
(e.g. `manylinux2014-aarch64` depends on `manylinux2014-x64`).
|
linux-riscv64 linux-riscv32 linux-m68k-uclibc linux-x64-tinycc linux-xtensa-uclibc
|
||||||
- `EXTRA_BUILD_ARGS`: extra `--build-arg KEY=VALUE` flags.
|
```
|
||||||
- `STATIC_DOCKERFILE = yes`: for the rare image that ships a committed
|
|
||||||
`Dockerfile` instead of a generated `Dockerfile.in`.
|
|
||||||
|
|
||||||
See [linux-arm64/preset.mk](linux-arm64/preset.mk) and, for the more
|
|
||||||
involved cases, [manylinux2014-aarch64/preset.mk](manylinux2014-aarch64/preset.mk)
|
|
||||||
or [web-wasm/preset.mk](web-wasm/preset.mk).
|
|
||||||
|
|
||||||
### Image building and testing
|
### Image building and testing
|
||||||
|
|
||||||
@@ -280,41 +268,27 @@ With CMake + Ninja:
|
|||||||
|
|
||||||
### CI (github action)
|
### CI (github action)
|
||||||
|
|
||||||
To finish, you have to add the image/folder name to the `images` job's matrix
|
To finish, you have to add to `.github/workflows/main.yml` the image/folder name:
|
||||||
in `.github/workflows/main.yml`:
|
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
# Linux arm64/armv8 images
|
# Linux arm64/armv8 images
|
||||||
- { image: "linux-arm64", multiarch: "yes" }
|
- {
|
||||||
|
image: "linux-arm64",
|
||||||
|
stockfish: "yes",
|
||||||
|
stockfish_arg: "ARCH=armv8",
|
||||||
|
ninja: "yes",
|
||||||
|
ninja_arg: "",
|
||||||
|
openssl: "yes",
|
||||||
|
openssl_arg: "linux-aarch64",
|
||||||
|
C: "yes",
|
||||||
|
C_arg: "",
|
||||||
|
C-Plus-Plus: "yes",
|
||||||
|
C-Plus-Plus_arg: "",
|
||||||
|
fmt: "yes",
|
||||||
|
fmt_arg: "",
|
||||||
|
cpython: "yes",
|
||||||
|
cpython_arg: "--host=aarch64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu",
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
`multiarch: "yes"` is only for the handful of images that are natively built
|
You can disable and enable the build of certain tests which can cause problems with certain CPU architectures (eg. OpenSSL with Risc-V...).
|
||||||
and published for both amd64 and arm64 (see `deploy-multi-arch-images` in the
|
|
||||||
same file); everything else should leave it empty.
|
|
||||||
|
|
||||||
That's the only thing the CI workflow needs to know. It builds the image with
|
|
||||||
`make <image>`, runs the fast in-container smoke test with `make
|
|
||||||
<image>.test`, and then `make <image>.test-extra` - which builds a handful of
|
|
||||||
real upstream projects (Stockfish, CMake, OpenSSL, CPython, ...) with the
|
|
||||||
image's toolchain. Which of those extra tests apply to this image and their
|
|
||||||
architecture-specific flags are **not** set in the workflow: they belong in
|
|
||||||
the image's own `preset.mk`, e.g.:
|
|
||||||
|
|
||||||
```make
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv8
|
|
||||||
OPENSSL_ARGS = linux-aarch64
|
|
||||||
CPYTHON_ARGS = --host=aarch64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu
|
|
||||||
```
|
|
||||||
|
|
||||||
What each extra test actually clones and builds is defined once in the
|
|
||||||
[Makefile](Makefile) ("Extra tests" section) so it stays identical across
|
|
||||||
every image. You can run any of them locally, the same way CI does:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
make linux-arm64.test-extra # everything EXTRA_TESTS lists
|
|
||||||
make linux-arm64.test-stockfish # one test directly, regardless of EXTRA_TESTS
|
|
||||||
```
|
|
||||||
|
|
||||||
Leave `EXTRA_TESTS` unset for images where a given upstream project doesn't
|
|
||||||
build (e.g. OpenSSL on some RISC-V targets).
|
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
ARG BASE_IMAGE=debian:bookworm-slim
|
ARG DOCKER_IMAGE=debian:bookworm-slim
|
||||||
FROM $BASE_IMAGE
|
FROM $DOCKER_IMAGE
|
||||||
|
|
||||||
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
|
LABEL maintainer="Matt McCormick matt@mmmccormick.com"
|
||||||
|
|
||||||
|
|||||||
@@ -1,420 +1,405 @@
|
|||||||
# ==============================================================================
|
|
||||||
# Preset detection
|
|
||||||
# ==============================================================================
|
|
||||||
PRESET_DIR ?= .
|
|
||||||
|
|
||||||
HOST_ARCH := $(or $(HOST_ARCH), $(shell uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/'))
|
#
|
||||||
|
# Parameters
|
||||||
|
#
|
||||||
|
|
||||||
preset-path = $(if $(filter base,$(1)),$(PRESET_DIR),$(PRESET_DIR)/$(1))
|
# Name of the docker-equivalent executable for building images.
|
||||||
|
# OCI: open container interface.
|
||||||
|
# Common values: docker, podman, buildah
|
||||||
|
DOCKER := $(or $(OCI_EXE), docker)
|
||||||
|
BUILD_DOCKER := $(or $(BUILD_DOCKER), $(DOCKER))
|
||||||
|
BUILDAH := $(or $(BUILDAH_EXE), buildah)
|
||||||
|
# Name of the docker-equivalent executable for running test containers.
|
||||||
|
# Supports the use case:
|
||||||
|
#
|
||||||
|
# DOCKER=buildah
|
||||||
|
# TEST_DOCKER=podman
|
||||||
|
#
|
||||||
|
# because buildah does not run containers.
|
||||||
|
TEST_DOCKER := $(or $(TEST_DOCKER), $(DOCKER))
|
||||||
|
|
||||||
build-context-dir = $(if $(BUILD_CONTEXT_DIR),$(BUILD_CONTEXT_DIR),$(call preset-path,$(1)))
|
# The build sub-command. Use:
|
||||||
|
#
|
||||||
|
# export "BUILD_CMD=buildx build --platform linux/amd64,linux/arm64"
|
||||||
|
#
|
||||||
|
# to generate multi-platform images.
|
||||||
|
BUILD_CMD := $(or $(BUILD_CMD), build)
|
||||||
|
TAG_FLAG := $(or $(TAG_FLAG), --tag)
|
||||||
|
|
||||||
PRESET_FILES := $(shell find $(PRESET_DIR) -name .git -prune -o -mindepth 2 -name "preset.mk" -print)
|
# Docker organization to pull the images from
|
||||||
ALL_PRESETS := base $(patsubst $(PRESET_DIR)/%/preset.mk,%,$(PRESET_FILES))
|
ORG = dockcross
|
||||||
|
|
||||||
CURRENT_TARGET_NAME := $(firstword $(MAKECMDGOALS))
|
# Host architecture
|
||||||
|
HOST_ARCH := $(or $(HOST_ARCH), $(shell uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/'))
|
||||||
|
|
||||||
POSSIBLE_PRESET := $(basename $(CURRENT_TARGET_NAME))
|
# Directory where to generate the dockcross script for each images (e.g bin/dockcross-manylinux2014-x64)
|
||||||
|
BIN = ./bin
|
||||||
|
|
||||||
ifeq ($(POSSIBLE_PRESET),base)
|
RM = --rm
|
||||||
-include $(PRESET_DIR)/preset.mk
|
|
||||||
else ifneq ($(wildcard $(PRESET_DIR)/$(POSSIBLE_PRESET)/preset.mk),)
|
# These images are built using the "build implicit rule"
|
||||||
include $(PRESET_DIR)/$(POSSIBLE_PRESET)/preset.mk
|
STANDARD_IMAGES := android-arm android-arm64 android-x86 android-x86_64 \
|
||||||
|
linux-i686 linux-x86 linux-x64 linux-x64-clang linux-arm64-musl linux-arm64-full \
|
||||||
|
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-m68k-uclibc linux-s390x linux-x64-tinycc \
|
||||||
|
linux-armv6 linux-armv6-lts linux-armv6-musl linux-arm64-lts linux-mipsel-lts \
|
||||||
|
linux-armv7l-musl linux-armv7 linux-armv7a linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
|
||||||
|
linux-mips linux-mips-uclibc linux-mips-lts linux-ppc linux-ppc64le linux-ppc64le-lts linux-riscv64 linux-riscv32 linux-xtensa-uclibc \
|
||||||
|
windows-static-x86 windows-static-x64 windows-static-x64-posix windows-armv7 \
|
||||||
|
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix windows-arm64 \
|
||||||
|
bare-armv7emhf-nano_newlib
|
||||||
|
|
||||||
|
# Generated Dockerfiles.
|
||||||
|
GEN_IMAGES := android-arm android-arm64 \
|
||||||
|
linux-i686 linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
|
||||||
|
manylinux_2_28-x64 manylinux_2_34-x64 \
|
||||||
|
manylinux2014-x64 manylinux2014-x86 \
|
||||||
|
manylinux2014-aarch64 linux-arm64-lts \
|
||||||
|
web-wasm web-wasi web-wasi-emulated-threads web-wasi-threads linux-mips linux-mips-uclibc linux-mips-lts windows-arm64 windows-armv7 \
|
||||||
|
windows-static-x86 windows-static-x64 windows-static-x64-posix \
|
||||||
|
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix \
|
||||||
|
linux-armv7 linux-armv7a linux-armv7l-musl linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
|
||||||
|
linux-armv6 linux-armv6-lts linux-armv6-musl linux-mipsel-lts \
|
||||||
|
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-ppc linux-ppc64le linux-ppc64le-lts linux-s390x \
|
||||||
|
linux-riscv64 linux-riscv32 linux-m68k-uclibc linux-x64-tinycc linux-xtensa-uclibc \
|
||||||
|
bare-armv7emhf-nano_newlib
|
||||||
|
|
||||||
|
# Generate both amd64 and arm64 images
|
||||||
|
MULTIARCH_IMAGES := linux-arm64 \
|
||||||
|
web-wasi web-wasi-emulated-threads
|
||||||
|
|
||||||
|
GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES))
|
||||||
|
|
||||||
|
# These images are expected to have explicit rules for *both* build and testing
|
||||||
|
NON_STANDARD_IMAGES := manylinux_2_28-x64 manylinux_2_34-x64 manylinux2014-x64 manylinux2014-x86 \
|
||||||
|
manylinux2014-aarch64 web-wasm web-wasi-emulated-threads web-wasi-threads
|
||||||
|
|
||||||
|
# Docker composite files
|
||||||
|
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux2014 common.manylinux_2_28 common.manylinux_2_34 common.buildroot \
|
||||||
|
common.crosstool common.webassembly common.windows common-manylinux.crosstool common.dockcross \
|
||||||
|
common.label-and-env
|
||||||
|
DOCKER_COMPOSITE_FOLDER_PATH = common/
|
||||||
|
DOCKER_COMPOSITE_PATH = $(addprefix $(DOCKER_COMPOSITE_FOLDER_PATH),$(DOCKER_COMPOSITE_SOURCES))
|
||||||
|
|
||||||
|
# This list all available images
|
||||||
|
IMAGES := $(STANDARD_IMAGES) $(NON_STANDARD_IMAGES) $(MULTIARCH_IMAGES)
|
||||||
|
|
||||||
|
# Optional arguments for test runner (test/run.py) associated with "testing implicit rule"
|
||||||
|
linux-x64-tinycc.test_ARGS = --languages C
|
||||||
|
windows-static-x86.test_ARGS = --exe-suffix ".exe"
|
||||||
|
windows-static-x64.test_ARGS = --exe-suffix ".exe"
|
||||||
|
windows-static-x64-posix.test_ARGS = --exe-suffix ".exe"
|
||||||
|
windows-shared-x86.test_ARGS = --exe-suffix ".exe"
|
||||||
|
windows-shared-x64.test_ARGS = --exe-suffix ".exe"
|
||||||
|
windows-shared-x64-posix.test_ARGS = --exe-suffix ".exe"
|
||||||
|
windows-armv7.test_ARGS = --exe-suffix ".exe"
|
||||||
|
windows-arm64.test_ARGS = --exe-suffix ".exe"
|
||||||
|
bare-armv7emhf-nano_newlib.test_ARGS = --linker-flags="--specs=nosys.specs"
|
||||||
|
|
||||||
|
# Tag images with date and Git short hash in addition to revision
|
||||||
|
TAG := $(shell date '+%Y%m%d')-$(shell git rev-parse --short HEAD)
|
||||||
|
|
||||||
|
# shellcheck executable
|
||||||
|
SHELLCHECK := shellcheck
|
||||||
|
|
||||||
|
# Defines the level of verification (error, warning, info...)
|
||||||
|
SHELLCHECK_SEVERITY_LEVEL := error
|
||||||
|
|
||||||
|
#
|
||||||
|
# images: This target builds all IMAGES (because it is the first one, it is built by default)
|
||||||
|
#
|
||||||
|
images: base $(IMAGES)
|
||||||
|
|
||||||
|
#
|
||||||
|
# test: This target ensures all IMAGES are built and run the associated tests
|
||||||
|
#
|
||||||
|
test: base.test $(addsuffix .test,$(IMAGES))
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generic Targets (can specialize later).
|
||||||
|
#
|
||||||
|
|
||||||
|
$(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOSITE_PATH)
|
||||||
|
sed $(foreach f,$(DOCKER_COMPOSITE_SOURCES),-e '/$(f)/ r $(DOCKER_COMPOSITE_FOLDER_PATH)$(f)') $< > $@
|
||||||
|
|
||||||
|
#
|
||||||
|
# web-wasm
|
||||||
|
#
|
||||||
|
ifeq ($(HOST_ARCH),amd64)
|
||||||
|
EMSCRIPTEN_HOST_ARCH_TAG = ""
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(HOST_ARCH),arm64)
|
||||||
# ==============================================================================
|
EMSCRIPTEN_HOST_ARCH_TAG = "-arm64"
|
||||||
# Main config Makefile for Docker SDK Images
|
|
||||||
# ==============================================================================
|
|
||||||
AUTHOR ?= dockcross
|
|
||||||
WEB_SITE ?= dockcross.org
|
|
||||||
|
|
||||||
# Registries
|
|
||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?=
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
|
|
||||||
# Docker Config
|
|
||||||
DOCKER_EXEC ?= docker
|
|
||||||
PROGRESS_OUTPUT ?= plain
|
|
||||||
|
|
||||||
PUSH_ON_BUILD ?= false
|
|
||||||
ifeq ($(PUSH_ON_BUILD),true)
|
|
||||||
DOCKER_DRIVER := --push
|
|
||||||
BUILD_IMAGE_ARGS += --sbom=true --provenance=true
|
|
||||||
BUILD_IMAGE_ARGS += --cache-from=type=registry,ref=$(OUTPUT_IMAGE_FINAL):cache
|
|
||||||
BUILD_IMAGE_ARGS += --cache-to=type=registry,ref=$(OUTPUT_IMAGE_FINAL):cache,mode=max
|
|
||||||
else
|
|
||||||
DOCKER_DRIVER := --load
|
|
||||||
endif
|
endif
|
||||||
|
web-wasm: web-wasm/Dockerfile
|
||||||
ARCH_LIST ?= linux/$(HOST_ARCH)
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
PLATFORMS ?= $(subst $(space),$(comma),$(strip $(ARCH_LIST)))
|
cp -r test web-wasm/
|
||||||
TMPFS_SIZE ?= 4g
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/web-wasm:$(TAG)-$(HOST_ARCH) \
|
||||||
|
$(TAG_FLAG) $(ORG)/web-wasm:latest-$(HOST_ARCH) \
|
||||||
DOCKER_BUILD_NETWORK ?= host
|
--build-arg IMAGE=$(ORG)/web-wasm \
|
||||||
|
|
||||||
# Folders
|
|
||||||
COMMON_DIR ?= common
|
|
||||||
BIN_DIR ?= ./bin
|
|
||||||
TEST_SCRATCH_DIR ?= ./.dockcross-test-cache
|
|
||||||
|
|
||||||
EXTRA_TESTS ?=
|
|
||||||
|
|
||||||
ORG ?= $(OUTPUT_IMAGE_REGISTRY)/$(OUTPUT_IMAGE_PATH)
|
|
||||||
|
|
||||||
DOCKER_COMPOSITE_SOURCES = common.docker common.debian \
|
|
||||||
common.manylinux2014 common.manylinux_2_28 common.manylinux_2_34 \
|
|
||||||
common.buildroot common.crosstool common.webassembly common.windows \
|
|
||||||
common-manylinux.crosstool common-manylinux_2_28.crosstool common-manylinux_2_34.crosstool \
|
|
||||||
common.dockcross common.label-and-env
|
|
||||||
|
|
||||||
# RUN/TEST
|
|
||||||
TEST_IMAGE_CMD ?= python3 test/run.py
|
|
||||||
TEST_IMAGE_ARGS ?=
|
|
||||||
RUN_IMAGE_CMD ?= /bin/bash
|
|
||||||
RUN_IMAGE_ARGS ?=
|
|
||||||
|
|
||||||
BUILD_CONTEXT_DIR ?=
|
|
||||||
STATIC_DOCKERFILE ?= no
|
|
||||||
DEPENDS_ON ?= base.build
|
|
||||||
EXTRA_BUILD_ARGS ?=
|
|
||||||
|
|
||||||
BIND_HOST_DIR := $(shell pwd)
|
|
||||||
BIND_CONTAINER_DIR ?= /work
|
|
||||||
WORKDIR ?= /work
|
|
||||||
|
|
||||||
# Automatic variables
|
|
||||||
CURRENT_USER := $(shell whoami)
|
|
||||||
UID := $(shell id -u ${CURRENT_USER})
|
|
||||||
GID := $(shell id -g ${CURRENT_USER})
|
|
||||||
CURRENT_GROUP := $(shell id -gn ${CURRENT_USER})
|
|
||||||
|
|
||||||
BUILDER_ENV := -e BUILDER_UID=$(UID) -e BUILDER_GID=$(GID) -e BUILDER_USER=$(CURRENT_USER) -e BUILDER_GROUP=$(CURRENT_GROUP)
|
|
||||||
DATE := $(shell date -u +"%Y%m%d")
|
|
||||||
GIT_SHA := $(shell git rev-parse --short HEAD 2>/dev/null || echo nogit)
|
|
||||||
GIT_ORIGIN := $(shell git config --get remote.origin.url 2>/dev/null || echo unknown)
|
|
||||||
UUID := $(shell uuidgen)
|
|
||||||
|
|
||||||
TRIVY_IMAGE ?= aquasec/trivy:0.68.2
|
|
||||||
HADOLINT_IMAGE ?= hadolint/hadolint:v2.14.0
|
|
||||||
SHELLCHECK_IMAGE ?= koalaman/shellcheck:stable
|
|
||||||
|
|
||||||
# Tag images with date and Git short hash, mirroring the historical dockcross tagging scheme
|
|
||||||
TAG := $(DATE)-$(GIT_SHA)
|
|
||||||
|
|
||||||
comma := ,
|
|
||||||
space := $(subst ,, )
|
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# Presets logic
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
PRESET_TARGETS := all help build test push pull generate scan lint update clean run inspect sbom script \
|
|
||||||
rebuild sign history cache check prepare-imagefiles test-extra
|
|
||||||
.PHONY: $(ALL_PRESETS)
|
|
||||||
|
|
||||||
.DEFAULT_GOAL := list
|
|
||||||
|
|
||||||
define BIND_PRESET_DEPENDENCIES
|
|
||||||
$(1).test: $(1).build
|
|
||||||
$(1).run: $(1).build
|
|
||||||
$(1).push: $(1).test
|
|
||||||
$(1).scan: $(1).build
|
|
||||||
$(1).lint: $(1).generate
|
|
||||||
$(1).sbom: $(1).build
|
|
||||||
$(1).inspect: $(1).build
|
|
||||||
$(1).history: $(1).build
|
|
||||||
$(1).script: $(1).build
|
|
||||||
endef
|
|
||||||
|
|
||||||
$(foreach p,$(ALL_PRESETS),$(eval $(call BIND_PRESET_DEPENDENCIES,$(p))))
|
|
||||||
|
|
||||||
# Generate final image names
|
|
||||||
ifeq ($(strip $(BASE_IMAGE_PATH)),)
|
|
||||||
BASE_IMAGE_FINAL := $(BASE_IMAGE_REGISTRY)/$(BASE_IMAGE_NAME)
|
|
||||||
else
|
|
||||||
BASE_IMAGE_FINAL := $(BASE_IMAGE_REGISTRY)/$(BASE_IMAGE_PATH)/$(BASE_IMAGE_NAME)
|
|
||||||
endif
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_FINAL := $(ORG)/$(OUTPUT_IMAGE_NAME)
|
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# Mandatory variables check
|
|
||||||
# ==============================================================================
|
|
||||||
MANDATORY_VARS = BASE_IMAGE_NAME BASE_IMAGE_TAG OUTPUT_IMAGE_NAME OUTPUT_IMAGE_REGISTRY \
|
|
||||||
OUTPUT_IMAGE_PATH BASE_IMAGE_REGISTRY
|
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# Useful functions
|
|
||||||
# ==============================================================================
|
|
||||||
define docker-tags
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest-$(HOST_ARCH) \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):$(TAG)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define docker-push-tags
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):$(TAG)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define docker-run-cmd
|
|
||||||
$(DOCKER_EXEC) run --rm $(1) $(BUILDER_ENV) \
|
|
||||||
--security-opt no-new-privileges \
|
|
||||||
--mount type=bind,source=$(BIND_HOST_DIR),target=$(BIND_CONTAINER_DIR) \
|
|
||||||
--workdir $(WORKDIR) \
|
|
||||||
--mount type=tmpfs,target=/tmp,tmpfs-mode=1777,tmpfs-size=$(TMPFS_SIZE) \
|
|
||||||
--platform $(firstword $(ARCH_LIST)) \
|
|
||||||
--name $(OUTPUT_IMAGE_NAME)-$(UUID) \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest $(2) $(3)
|
|
||||||
endef
|
|
||||||
|
|
||||||
define extra-test-run
|
|
||||||
$(DOCKER_EXEC) run --rm $(BUILDER_ENV) \
|
|
||||||
--mount type=bind,source=$(abspath $(TEST_SCRATCH_DIR)/$(1)),target=/work \
|
|
||||||
--workdir /work \
|
|
||||||
--platform $(firstword $(ARCH_LIST)) \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest bash -c "$(2)"
|
|
||||||
endef
|
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# Preset targets
|
|
||||||
# ==============================================================================
|
|
||||||
|
|
||||||
.PHONY: %.all %.generate %.build %.test %.run %.push %.pull %.scan %.clean %.prune %.update %.lint %.inspect %.sbom %.script %.prepare-imagefiles \
|
|
||||||
%.rebuild %.sign %.history %.cache %.check %.test-extra \
|
|
||||||
%.test-stockfish %.test-ninja %.test-openssl %.test-C %.test-SQLite %.test-llama_cpp \
|
|
||||||
%.test-fmt %.test-cpython %.test-raylib %.test-mbedtls %.test-libopencm3
|
|
||||||
|
|
||||||
$(ALL_PRESETS): %: %.build
|
|
||||||
|
|
||||||
%.all: %.update %.generate %.build %.test %.check %.push ;
|
|
||||||
|
|
||||||
.PHONY: %.guard
|
|
||||||
%.guard:
|
|
||||||
$(foreach v,$(MANDATORY_VARS), \
|
|
||||||
$(if $(strip $($(v))),, \
|
|
||||||
$(error Missing mandatory var: $(v) (preset=$*))))
|
|
||||||
|
|
||||||
%.generate: %.guard %.clean
|
|
||||||
ifeq ($(STATIC_DOCKERFILE),yes)
|
|
||||||
@test -f $(call preset-path,$*)/Dockerfile || \
|
|
||||||
(echo "Missing committed Dockerfile for $* (STATIC_DOCKERFILE=yes)" && exit 1)
|
|
||||||
else
|
|
||||||
@echo ">>> Generating Dockerfile for $*"
|
|
||||||
@sed $(foreach f,$(DOCKER_COMPOSITE_SOURCES),\
|
|
||||||
-e '/$(f)/ r $(COMMON_DIR)/$(f)') \
|
|
||||||
$(call preset-path,$*)/Dockerfile.in > $(call preset-path,$*)/Dockerfile
|
|
||||||
endif
|
|
||||||
|
|
||||||
%.prepare-imagefiles:
|
|
||||||
@ctx="$(call build-context-dir,$*)"; \
|
|
||||||
if [ "$$ctx" != "$(PRESET_DIR)" ]; then \
|
|
||||||
mkdir -p "$$ctx/imagefiles" && cp -r $(PRESET_DIR)/imagefiles/. "$$ctx/imagefiles/"; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
%.build: %.generate %.prepare-imagefiles
|
|
||||||
@$(DOCKER_EXEC) image inspect $(BASE_IMAGE_FINAL):$(BASE_IMAGE_TAG) >/dev/null 2>&1 || \
|
|
||||||
{ $(foreach d,$(DEPENDS_ON),$(MAKE) $(d);) true; }
|
|
||||||
$(DOCKER_EXEC) buildx build $(call build-context-dir,$*) \
|
|
||||||
--file $(call preset-path,$*)/Dockerfile \
|
|
||||||
--network $(DOCKER_BUILD_NETWORK) \
|
|
||||||
--platform $(PLATFORMS) --progress $(PROGRESS_OUTPUT) \
|
|
||||||
$(foreach tag,$(call docker-tags),--tag $(tag)) \
|
|
||||||
--build-arg BUILD_DATE=$(DATE) \
|
|
||||||
--build-arg ORG=$(ORG) \
|
|
||||||
--build-arg HOST_ARCH=$(HOST_ARCH) \
|
|
||||||
--build-arg IMAGE=$(ORG)/$(OUTPUT_IMAGE_NAME) \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
--build-arg VERSION=$(TAG) \
|
||||||
--build-arg VCS_REF=$(GIT_SHA) \
|
--build-arg HOST_ARCH_TAG=$(EMSCRIPTEN_HOST_ARCH_TAG) \
|
||||||
--build-arg VCS_URL=$(GIT_ORIGIN) \
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
--build-arg AUTHOR=$(AUTHOR) \
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
--build-arg URL=$(WEB_SITE) \
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
--build-arg BASE_IMAGE=$(BASE_IMAGE_FINAL):$(BASE_IMAGE_TAG) \
|
web-wasm
|
||||||
--build-arg BASE_IMAGE_NAME=$(BASE_IMAGE_NAME) \
|
rm -rf web-wasm/test
|
||||||
--build-arg BASE_IMAGE_TAG=$(BASE_IMAGE_TAG) \
|
rm -rf $@/imagefiles
|
||||||
$(EXTRA_BUILD_ARGS) \
|
|
||||||
$(BUILD_IMAGE_ARGS) $(DOCKER_DRIVER)
|
|
||||||
|
|
||||||
%.script: %.build
|
web-wasm.test: web-wasm
|
||||||
@mkdir -p $(BIN_DIR)
|
cp -r test web-wasm/
|
||||||
$(DOCKER_EXEC) run --rm $(OUTPUT_IMAGE_FINAL):latest > $(BIN_DIR)/dockcross-$* && chmod +x $(BIN_DIR)/dockcross-$*
|
$(TEST_DOCKER) run $(RM) $(ORG)/web-wasm:latest-$(HOST_ARCH) > $(BIN)/dockcross-web-wasm && chmod +x $(BIN)/dockcross-web-wasm
|
||||||
|
$(BIN)/dockcross-web-wasm -i $(ORG)/web-wasm:latest-$(HOST_ARCH) python test/run.py --exe-suffix ".js"
|
||||||
|
rm -rf web-wasm/test
|
||||||
|
|
||||||
%.test: %.build %.script
|
#
|
||||||
$(call docker-run-cmd,,$(TEST_IMAGE_CMD),$(TEST_IMAGE_ARGS))
|
# web-wasi-threads
|
||||||
|
#
|
||||||
|
web-wasi-threads: web-wasi web-wasi-threads/Dockerfile
|
||||||
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
|
cp -r test web-wasi-threads/
|
||||||
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/web-wasi-threads:$(TAG)-$(HOST_ARCH) \
|
||||||
|
-t $(ORG)/web-wasi-threads:latest-$(HOST_ARCH) \
|
||||||
|
--build-arg IMAGE=$(ORG)/web-wasi-threads \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg HOST_ARCH=$(HOST_ARCH) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
web-wasi-threads
|
||||||
|
|
||||||
%.run: %.build
|
#
|
||||||
$(call docker-run-cmd,-it,$(RUN_IMAGE_CMD),$(RUN_IMAGE_ARGS))
|
# manylinux2014-aarch64
|
||||||
|
#
|
||||||
|
manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile manylinux2014-x64
|
||||||
|
@# Register qemu
|
||||||
|
docker run --rm --privileged hypriot/qemu-register
|
||||||
|
@# Get libstdc++ from quay.io/pypa/manylinux2014_aarch64 container
|
||||||
|
docker run -v `pwd`:/host --rm -e LIB_PATH=/host/$@/xc_script/ quay.io/pypa/manylinux2014_aarch64 bash -c "PASS=1 /host/$@/xc_script/docker_setup_scrpits/copy_libstd.sh"
|
||||||
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-aarch64:$(TAG) \
|
||||||
|
$(TAG_FLAG) $(ORG)/manylinux2014-aarch64:latest \
|
||||||
|
--build-arg IMAGE=$(ORG)/manylinux2014-aarch64 \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
-f manylinux2014-aarch64/Dockerfile .
|
||||||
|
rm -rf $@/imagefiles
|
||||||
|
@# libstdc++ is coppied into image, now remove it
|
||||||
|
docker run -v `pwd`:/host --rm quay.io/pypa/manylinux2014_aarch64 bash -c "rm -rf /host/$@/xc_script/usr"
|
||||||
|
|
||||||
# ==============================================================================
|
manylinux2014-aarch64.test: manylinux2014-aarch64
|
||||||
# Extra tests
|
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-aarch64:latest > $(BIN)/dockcross-manylinux2014-aarch64 \
|
||||||
# ==============================================================================
|
&& chmod +x $(BIN)/dockcross-manylinux2014-aarch64
|
||||||
|
$(BIN)/dockcross-manylinux2014-aarch64 -i $(ORG)/manylinux2014-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
|
||||||
|
|
||||||
%.test-extra: %.build
|
#
|
||||||
@$(foreach t,$(EXTRA_TESTS),$(MAKE) $*.test-$(t);)
|
# manylinux_2_28-x64
|
||||||
|
#
|
||||||
|
manylinux_2_28-x64: manylinux_2_28-x64/Dockerfile
|
||||||
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux_2_28-x64:$(TAG) \
|
||||||
|
$(TAG_FLAG) $(ORG)/manylinux_2_28-x64:latest \
|
||||||
|
--build-arg IMAGE=$(ORG)/manylinux_2_28-x64 \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
-f manylinux_2_28-x64/Dockerfile .
|
||||||
|
rm -rf $@/imagefiles
|
||||||
|
|
||||||
%.test-stockfish: %.build
|
manylinux_2_28-x64.test: manylinux_2_28-x64
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/stockfish
|
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux_2_28-x64:latest > $(BIN)/dockcross-manylinux_2_28-x64 \
|
||||||
git clone --depth 1 --branch sf_17.1 https://github.com/official-stockfish/Stockfish.git $(TEST_SCRATCH_DIR)/stockfish
|
&& chmod +x $(BIN)/dockcross-manylinux_2_28-x64
|
||||||
$(call extra-test-run,stockfish,make -C src net && make -C src build $(STOCKFISH_ARGS) -j$$(nproc))
|
$(BIN)/dockcross-manylinux_2_28-x64 -i $(ORG)/manylinux_2_28-x64:latest /opt/python/cp310-cp310/bin/python test/run.py
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/stockfish
|
|
||||||
|
|
||||||
%.test-ninja: %.build
|
#
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/ninja
|
# manylinux_2_34-x64
|
||||||
git clone --depth 1 --branch v1.11.1 https://github.com/ninja-build/ninja.git $(TEST_SCRATCH_DIR)/ninja
|
#
|
||||||
$(call extra-test-run,ninja,cmake -Bbuild -S. -GNinja $(NINJA_ARGS) && cmake --build build)
|
manylinux_2_34-x64: manylinux_2_34-x64/Dockerfile
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/ninja
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
|
$(DOCKER) build -t $(ORG)/manylinux_2_34-x64:$(TAG) \
|
||||||
|
-t $(ORG)/manylinux_2_34-x64:latest \
|
||||||
|
--build-arg IMAGE=$(ORG)/manylinux_2_34-x64 \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
-f manylinux_2_34-x64/Dockerfile .
|
||||||
|
rm -rf $@/imagefiles
|
||||||
|
|
||||||
%.test-openssl: %.build
|
manylinux_2_34-x64.test: manylinux_2_34-x64
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/openssl
|
$(DOCKER) run $(RM) $(ORG)/manylinux_2_34-x64:latest > $(BIN)/dockcross-manylinux_2_34-x64 \
|
||||||
git clone --depth 1 --branch OpenSSL_1_1_1w https://github.com/openssl/openssl.git $(TEST_SCRATCH_DIR)/openssl
|
&& chmod +x $(BIN)/dockcross-manylinux_2_34-x64
|
||||||
cd $(TEST_SCRATCH_DIR)/openssl && \
|
$(BIN)/dockcross-manylinux_2_34-x64 -i $(ORG)/manylinux_2_34-x64:latest /opt/python/cp310-cp310/bin/python test/run.py
|
||||||
wget -q https://raw.githubusercontent.com/mavlink/MAVSDK/17ad598f0e004d225f5e939aa2947a95791f2f9b/cpp/third_party/openssl/dockcross-android.patch && \
|
|
||||||
patch -p0 < dockcross-android.patch
|
|
||||||
$(call extra-test-run,openssl,./Configure $(OPENSSL_ARGS) && make -j$$(nproc))
|
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/openssl
|
|
||||||
|
|
||||||
%.test-C: %.build
|
#
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/C
|
# manylinux2014-x64
|
||||||
git clone https://github.com/TheAlgorithms/C.git $(TEST_SCRATCH_DIR)/C
|
#
|
||||||
cd $(TEST_SCRATCH_DIR)/C && git checkout b0a41bb38c67ddebb31d3fe06d11e171410c3379
|
manylinux2014-x64: manylinux2014-x64/Dockerfile
|
||||||
$(call extra-test-run,C,cmake -Bbuild -S. -GNinja $(C_ARGS) && cmake --build build)
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/C
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-x64:$(TAG) \
|
||||||
|
$(TAG_FLAG) $(ORG)/manylinux2014-x64:latest \
|
||||||
|
--build-arg IMAGE=$(ORG)/manylinux2014-x64 \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
-f manylinux2014-x64/Dockerfile .
|
||||||
|
rm -rf $@/imagefiles
|
||||||
|
|
||||||
%.test-SQLite: %.build
|
manylinux2014-x64.test: manylinux2014-x64
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/sqlite
|
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-x64:latest > $(BIN)/dockcross-manylinux2014-x64 \
|
||||||
git clone https://github.com/sqlite/sqlite.git $(TEST_SCRATCH_DIR)/sqlite
|
&& chmod +x $(BIN)/dockcross-manylinux2014-x64
|
||||||
cd $(TEST_SCRATCH_DIR)/sqlite && git checkout 1cf61ce636915a5e92d4aa883755cee258aa98d6
|
$(BIN)/dockcross-manylinux2014-x64 -i $(ORG)/manylinux2014-x64:latest /opt/python/cp311-cp311/bin/python test/run.py
|
||||||
$(call extra-test-run,sqlite,./configure $(SQLITE_ARGS) && make -j$$(nproc) sqlite3 sqlite3.c sqldiff)
|
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/sqlite
|
|
||||||
|
|
||||||
%.test-llama_cpp: %.build
|
#
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/llama.cpp
|
# manylinux2014-x86
|
||||||
git clone https://github.com/ggerganov/llama.cpp.git $(TEST_SCRATCH_DIR)/llama.cpp
|
#
|
||||||
cd $(TEST_SCRATCH_DIR)/llama.cpp && git checkout 76614f352e94d25659306d9e97321f204e5de0d3
|
manylinux2014-x86: manylinux2014-x86/Dockerfile
|
||||||
$(call extra-test-run,llama.cpp,cmake -Bbuild -S. -GNinja $(LLAMA_CPP_ARGS) && cmake --build build)
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/llama.cpp
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-x86:$(TAG) \
|
||||||
|
-t $(ORG)/manylinux2014-x86:latest \
|
||||||
|
--build-arg IMAGE=$(ORG)/manylinux2014-x86 \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
-f manylinux2014-x86/Dockerfile .
|
||||||
|
rm -rf $@/imagefiles
|
||||||
|
|
||||||
%.test-fmt: %.build
|
manylinux2014-x86.test: manylinux2014-x86
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/fmt
|
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-x86:latest > $(BIN)/dockcross-manylinux2014-x86 \
|
||||||
git clone --depth 1 --branch 9.1.0 https://github.com/fmtlib/fmt.git $(TEST_SCRATCH_DIR)/fmt
|
&& chmod +x $(BIN)/dockcross-manylinux2014-x86
|
||||||
$(call extra-test-run,fmt,cmake -Bbuild -S. -GNinja $(FMT_ARGS) -DFMT_DOC=OFF && cmake --build build)
|
$(BIN)/dockcross-manylinux2014-x86 -i $(ORG)/manylinux2014-x86:latest /opt/python/cp311-cp311/bin/python test/run.py
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/fmt
|
|
||||||
|
|
||||||
%.test-cpython: %.build
|
#
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/cpython
|
# base-$(HOST_ARCH)
|
||||||
git clone --depth 1 --branch v3.11.2 https://github.com/python/cpython.git $(TEST_SCRATCH_DIR)/cpython
|
#
|
||||||
$(call extra-test-run,cpython,./configure ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no --disable-ipv6 $(CPYTHON_ARGS) --build=x86_64-linux-gnu --with-build-python --enable-shared && make -j$$(nproc))
|
base-$(HOST_ARCH): Dockerfile imagefiles/
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/cpython
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/base:latest-$(HOST_ARCH) \
|
||||||
|
$(TAG_FLAG) $(ORG)/base:$(TAG)-$(HOST_ARCH) \
|
||||||
|
--build-arg IMAGE=$(ORG)/base \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
.
|
||||||
|
|
||||||
%.test-raylib: %.build
|
base-$(HOST_ARCH).test: base-$(HOST_ARCH)
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/raylib
|
$(TEST_DOCKER) run $(RM) $(ORG)/base:latest-$(HOST_ARCH) > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
|
||||||
git clone https://github.com/raysan5/raylib.git $(TEST_SCRATCH_DIR)/raylib
|
|
||||||
cd $(TEST_SCRATCH_DIR)/raylib && git checkout a12ddacb7bfbc6e552e6145456f2fe6dfdfbe1c7
|
|
||||||
$(call extra-test-run,raylib,cmake -Bbuild -S. -GNinja $(RAYLIB_ARGS) && cmake --build build)
|
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/raylib
|
|
||||||
|
|
||||||
%.test-mbedtls: %.build
|
base: Dockerfile imagefiles/
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/mbedtls
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/base:latest \
|
||||||
git clone --depth 1 --branch archive/baremetal https://github.com/Mbed-TLS/mbedtls.git $(TEST_SCRATCH_DIR)/mbedtls
|
$(TAG_FLAG) $(ORG)/base:$(TAG) \
|
||||||
$(call extra-test-run,mbedtls,scripts/config.pl baremetal && cmake -Bbuild -S. -GNinja $(MBEDTLS_ARGS) && cmake --build build)
|
--build-arg IMAGE=$(ORG)/base \
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/mbedtls
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
.
|
||||||
|
|
||||||
%.test-libopencm3: %.build
|
base.test: base
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/libopencm3
|
$(TEST_DOCKER) run $(RM) $(ORG)/base:latest > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
|
||||||
git clone https://github.com/libopencm3/libopencm3.git $(TEST_SCRATCH_DIR)/libopencm3
|
|
||||||
cd $(TEST_SCRATCH_DIR)/libopencm3 && git checkout 467522778329d6f41781a6c951b77d6ff6744de6
|
|
||||||
$(call extra-test-run,libopencm3,make $(LIBOPENCM3_ARGS) -j$$(nproc))
|
|
||||||
rm -rf $(TEST_SCRATCH_DIR)/libopencm3
|
|
||||||
|
|
||||||
%.push: %.test
|
|
||||||
$(foreach tag,$(call docker-push-tags),$(DOCKER_EXEC) push $(tag) &&) true
|
|
||||||
|
|
||||||
%.pull:
|
|
||||||
$(foreach tag,$(call docker-push-tags),$(DOCKER_EXEC) pull $(tag) &&) true
|
|
||||||
|
|
||||||
%.update:
|
|
||||||
@echo ">>> Updating base image for $*"
|
|
||||||
$(DOCKER_EXEC) pull $(BASE_IMAGE_FINAL):$(BASE_IMAGE_TAG)
|
|
||||||
|
|
||||||
%.clean:
|
|
||||||
@echo "Cleaning generated Dockerfile for $*"
|
|
||||||
ifneq ($(STATIC_DOCKERFILE),yes)
|
|
||||||
@rm -f $(call preset-path,$*)/Dockerfile
|
|
||||||
endif
|
|
||||||
@ctx="$(call build-context-dir,$*)"; \
|
|
||||||
if [ "$$ctx" != "$(PRESET_DIR)" ]; then rm -rf "$$ctx/imagefiles"; fi
|
|
||||||
|
|
||||||
%.prune: %.clean
|
|
||||||
$(DOCKER_EXEC) builder prune -f --filter name=$(OUTPUT_IMAGE_FINAL)
|
|
||||||
|
|
||||||
%.inspect:
|
|
||||||
$(DOCKER_EXEC) image inspect \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest
|
|
||||||
|
|
||||||
%.rebuild:
|
|
||||||
$(MAKE) $*.clean
|
|
||||||
$(MAKE) $*.build BUILD_IMAGE_ARGS="--no-cache"
|
|
||||||
|
|
||||||
%.history:
|
|
||||||
$(DOCKER_EXEC) history \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest
|
|
||||||
|
|
||||||
%.sbom:
|
|
||||||
syft $(OUTPUT_IMAGE_FINAL):latest -o spdx-json > $*.sbom.json
|
|
||||||
|
|
||||||
%.sign:
|
|
||||||
cosign sign $(OUTPUT_IMAGE_FINAL):latest
|
|
||||||
|
|
||||||
%.scan:
|
|
||||||
$(DOCKER_EXEC) run --rm \
|
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
||||||
$(TRIVY_IMAGE) \
|
|
||||||
image --severity HIGH,CRITICAL \
|
|
||||||
$(OUTPUT_IMAGE_FINAL):latest
|
|
||||||
|
|
||||||
%.lint: %.generate
|
|
||||||
$(DOCKER_EXEC) run --rm -i $(HADOLINT_IMAGE) < $(call preset-path,$*)/Dockerfile
|
|
||||||
|
|
||||||
%.check: %.lint %.scan %.sbom
|
|
||||||
|
|
||||||
%.cache:
|
|
||||||
$(DOCKER_EXEC) buildx imagetools inspect $(OUTPUT_IMAGE_FINAL):cache
|
|
||||||
|
|
||||||
# ==============================================================================
|
|
||||||
# Global targets
|
|
||||||
# ==============================================================================
|
|
||||||
.PHONY: $(PRESET_TARGETS) clean purge list display_images bash-check
|
|
||||||
|
|
||||||
%-all:
|
|
||||||
@$(foreach p,$(ALL_PRESETS),$(MAKE) $(p).$* &&) true
|
|
||||||
|
|
||||||
list:
|
|
||||||
@echo "Available presets:"
|
|
||||||
@$(foreach p,$(ALL_PRESETS),echo " - $(p)";)
|
|
||||||
|
|
||||||
|
# display
|
||||||
|
#
|
||||||
display_images:
|
display_images:
|
||||||
@$(foreach p,$(filter-out base,$(ALL_PRESETS)),echo $(p);)
|
for image in $(IMAGES); do echo $$image; done
|
||||||
|
|
||||||
$(VERBOSE).SILENT: display_images
|
$(VERBOSE).SILENT: display_images
|
||||||
|
|
||||||
|
#
|
||||||
|
# build implicit rule
|
||||||
|
#
|
||||||
|
|
||||||
|
$(STANDARD_IMAGES): %: %/Dockerfile base
|
||||||
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/$@:latest \
|
||||||
|
$(TAG_FLAG) $(ORG)/$@:$(TAG) \
|
||||||
|
--build-arg ORG=$(ORG) \
|
||||||
|
--build-arg IMAGE=$(ORG)/$@ \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
$@
|
||||||
|
rm -rf $@/imagefiles
|
||||||
|
|
||||||
|
$(MULTIARCH_IMAGES): %: %/Dockerfile base-$(HOST_ARCH)
|
||||||
|
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
||||||
|
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/$@:latest-$(HOST_ARCH) \
|
||||||
|
$(TAG_FLAG) $(ORG)/$@:$(TAG)-$(HOST_ARCH) \
|
||||||
|
--build-arg ORG=$(ORG) \
|
||||||
|
--build-arg IMAGE=$(ORG)/$@ \
|
||||||
|
--build-arg HOST_ARCH=$(HOST_ARCH) \
|
||||||
|
--build-arg VERSION=$(TAG) \
|
||||||
|
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
||||||
|
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
||||||
|
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
||||||
|
$@
|
||||||
|
rm -rf $@/imagefiles
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@$(foreach p,$(ALL_PRESETS),$(MAKE) $(p).clean &&) true
|
for d in $(IMAGES) ; do rm -rf $$d/imagefiles ; done
|
||||||
@rm -rf $(BIN_DIR)
|
for d in $(IMAGES) ; do rm -rf $(BIN)/dockcross-$$d ; done
|
||||||
|
for d in $(GEN_IMAGE_DOCKERFILES) ; do rm -f $$d ; done
|
||||||
|
rm -f Dockerfile
|
||||||
|
|
||||||
purge: clean
|
purge: clean
|
||||||
$(DOCKER_EXEC) images --filter='reference=$(ORG)/*' --format='{{.Repository}}:{{.Tag}}' | xargs -r $(DOCKER_EXEC) rmi -f
|
# Remove all untagged images
|
||||||
$(DOCKER_EXEC) builder prune -f
|
$(TEST_DOCKER) container ls -aq | xargs -r $(DOCKER) container rm -f
|
||||||
|
# Remove all images with organization (ex dockcross/*)
|
||||||
|
$(BUILD_DOCKER) images --filter=reference='$(ORG)/*' --format='{{.Repository}}:{{.Tag}}' | xargs -r $(DOCKER) rmi -f
|
||||||
|
|
||||||
|
# Check bash syntax
|
||||||
bash-check:
|
bash-check:
|
||||||
find . -type f \( -name "*.sh" -o -name "*.bash" \) -print0 | xargs -0 -P"$(shell nproc)" -I{} \
|
find . -type f \( -name "*.sh" -o -name "*.bash" \) -print0 | xargs -0 -P"$(shell nproc)" -I{} \
|
||||||
$(DOCKER_EXEC) run --rm -v "$(PWD)":/mnt -w /mnt $(SHELLCHECK_IMAGE) --check-sourced --color=auto --format=gcc --severity=warning --shell=bash --enable=all "{}"
|
$(SHELLCHECK) --check-sourced --color=auto --format=gcc --severity=warning --shell=bash --enable=all "{}"
|
||||||
|
|
||||||
docker-container-builder:
|
#
|
||||||
$(DOCKER_EXEC) buildx create --name mybuilder --use
|
# testing implicit rule
|
||||||
$(DOCKER_EXEC) buildx inspect --bootstrap
|
#
|
||||||
$(DOCKER_EXEC) buildx inspect mybuilder
|
.SECONDEXPANSION:
|
||||||
|
$(addsuffix .test,$(STANDARD_IMAGES)): $$(basename $$@)
|
||||||
|
$(TEST_DOCKER) run $(RM) $(ORG)/$(basename $@):latest > $(BIN)/dockcross-$(basename $@) \
|
||||||
|
&& chmod +x $(BIN)/dockcross-$(basename $@)
|
||||||
|
$(BIN)/dockcross-$(basename $@) -i $(ORG)/$(basename $@):latest python3 test/run.py $($@_ARGS)
|
||||||
|
|
||||||
docker-default-builder:
|
.SECONDEXPANSION:
|
||||||
$(DOCKER_EXEC) buildx use default
|
$(addsuffix .test,$(MULTIARCH_IMAGES) web-wasi-threads): $$(basename $$@)
|
||||||
|
$(TEST_DOCKER) run $(RM) $(ORG)/$(basename $@):latest-$(HOST_ARCH) > $(BIN)/dockcross-$(basename $@) \
|
||||||
|
&& chmod +x $(BIN)/dockcross-$(basename $@)
|
||||||
|
$(BIN)/dockcross-$(basename $@) -i $(ORG)/$(basename $@):latest-$(HOST_ARCH) python3 test/run.py $($@_ARGS)
|
||||||
|
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
$(addsuffix .tag-$(HOST_ARCH),$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
|
||||||
|
$(BUILD_DOCKER) tag $(ORG)/$(basename $@):latest-$(HOST_ARCH) \
|
||||||
|
$(ORG)/$(basename $@):$(TAG)-$(HOST_ARCH)
|
||||||
|
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
$(addsuffix .push-$(HOST_ARCH),$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
|
||||||
|
$(BUILD_DOCKER) push $(ORG)/$(basename $@):latest-$(HOST_ARCH) \
|
||||||
|
&& $(BUILD_DOCKER) push $(ORG)/$(basename $@):$(TAG)-$(HOST_ARCH)
|
||||||
|
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
$(addsuffix .push,$(STANDARD_IMAGES) $(NON_STANDARD_IMAGES)): $$(basename $$@)
|
||||||
|
$(BUILD_DOCKER) push $(ORG)/$(basename $@):latest \
|
||||||
|
&& $(BUILD_DOCKER) push $(ORG)/$(basename $@):$(TAG)
|
||||||
|
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
$(addsuffix .manifest,$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
|
||||||
|
if $(BUILDAH) manifest exists $(ORG)/$(basename $@); then \
|
||||||
|
$(BUILDAH) manifest rm $(ORG)/$(basename $@); fi
|
||||||
|
$(BUILDAH) manifest create $(ORG)/$(basename $@)
|
||||||
|
$(BUILDAH) manifest add $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):latest-amd64
|
||||||
|
$(BUILDAH) manifest add $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):latest-arm64
|
||||||
|
|
||||||
|
.SECONDEXPANSION:
|
||||||
|
$(addsuffix .push,$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@).manifest
|
||||||
|
$(BUILDAH) manifest push --all --format v2s2 $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):latest
|
||||||
|
$(BUILDAH) manifest push --all --format v2s2 $(ORG)/$(basename $@) docker://$(ORG)/$(basename $@):$(TAG)
|
||||||
|
|
||||||
|
#
|
||||||
|
# testing prerequisites implicit rule
|
||||||
|
#
|
||||||
|
test.prerequisites:
|
||||||
|
mkdir -p $(BIN)
|
||||||
|
|
||||||
|
$(addsuffix .test,base $(IMAGES)): test.prerequisites
|
||||||
|
|
||||||
|
.PHONY: base images $(IMAGES) test %.test clean purge bash-check display_images
|
||||||
|
|||||||
-440
@@ -1,440 +0,0 @@
|
|||||||
|
|
||||||
#
|
|
||||||
# Parameters
|
|
||||||
#
|
|
||||||
|
|
||||||
# Name of the docker-equivalent executable for building images.
|
|
||||||
# OCI: open container interface.
|
|
||||||
# Common values: docker, podman, buildah
|
|
||||||
DOCKER := $(or $(OCI_EXE), docker)
|
|
||||||
BUILD_DOCKER := $(or $(BUILD_DOCKER), $(DOCKER))
|
|
||||||
MANIFEST_TOOL := $(or $(MANIFEST_TOOL_EXE), manifest-tool)
|
|
||||||
RM = --rm
|
|
||||||
|
|
||||||
# Name of the docker-equivalent executable for running test containers.
|
|
||||||
# Supports the use case:
|
|
||||||
#
|
|
||||||
# DOCKER=buildah
|
|
||||||
# TEST_DOCKER=podman
|
|
||||||
#
|
|
||||||
# because buildah does not run containers.
|
|
||||||
TEST_DOCKER := $(or $(TEST_DOCKER), $(DOCKER))
|
|
||||||
|
|
||||||
# The build sub-command. Use:
|
|
||||||
#
|
|
||||||
# export "BUILD_CMD=buildx build --platform linux/amd64,linux/arm64"
|
|
||||||
#
|
|
||||||
# to generate multi-platform images.
|
|
||||||
BUILD_CMD := $(or $(BUILD_CMD), build)
|
|
||||||
TAG_FLAG := $(or $(TAG_FLAG), --tag)
|
|
||||||
|
|
||||||
# Docker organization to pull the images from
|
|
||||||
ORG = dockcross
|
|
||||||
|
|
||||||
# Host architecture
|
|
||||||
HOST_ARCH := $(or $(HOST_ARCH), $(shell uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/'))
|
|
||||||
|
|
||||||
# Directory where to generate the dockcross script for each images (e.g bin/dockcross-manylinux2014-x64)
|
|
||||||
BIN = ./bin
|
|
||||||
|
|
||||||
# These images are built using the "build implicit rule"
|
|
||||||
STANDARD_IMAGES := android-arm android-arm64 android-x86 android-x86_64 \
|
|
||||||
linux-i686 linux-x86 linux-x64 linux-x64-clang linux-arm64-musl linux-arm64-full \
|
|
||||||
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-m68k-uclibc linux-s390x linux-x64-tinycc \
|
|
||||||
linux-armv6 linux-armv6-lts linux-armv6-musl linux-arm64-lts linux-mipsel-lts \
|
|
||||||
linux-armv7l-musl linux-armv7 linux-armv7a linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
|
|
||||||
linux-loongarch64 linux-mips linux-mips-uclibc linux-mips-lts \
|
|
||||||
linux-ppc linux-ppc64le linux-ppc64le-lts linux-riscv64 linux-riscv32 linux-xtensa-uclibc \
|
|
||||||
windows-static-x86 windows-static-x64 windows-static-x64-posix windows-armv7 \
|
|
||||||
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix windows-arm64 \
|
|
||||||
bare-armv7emhf-nano_newlib
|
|
||||||
|
|
||||||
# Generated Dockerfiles.
|
|
||||||
GEN_IMAGES := android-arm android-arm64 \
|
|
||||||
linux-i686 linux-x86 linux-x64 linux-x64-clang linux-arm64 linux-arm64-musl linux-arm64-full \
|
|
||||||
manylinux_2_28-x64 manylinux_2_34-x64 \
|
|
||||||
manylinux2014-x64 manylinux2014-x86 \
|
|
||||||
manylinux2014-aarch64 manylinux_2_28-aarch64 manylinux_2_34-aarch64 linux-arm64-lts \
|
|
||||||
web-wasm web-wasi web-wasi-emulated-threads web-wasi-threads \
|
|
||||||
linux-loongarch64 linux-mips linux-mips-uclibc linux-mips-lts windows-arm64 windows-armv7 \
|
|
||||||
windows-static-x86 windows-static-x64 windows-static-x64-posix \
|
|
||||||
windows-shared-x86 windows-shared-x64 windows-shared-x64-posix \
|
|
||||||
linux-armv7 linux-armv7a linux-armv7l-musl linux-armv7-lts linux-armv7a-lts linux-x86_64-full \
|
|
||||||
linux-armv6 linux-armv6-lts linux-armv6-musl linux-mipsel-lts \
|
|
||||||
linux-armv5 linux-armv5-musl linux-armv5-uclibc linux-ppc linux-ppc64le linux-ppc64le-lts linux-s390x \
|
|
||||||
linux-riscv64 linux-riscv32 linux-m68k-uclibc linux-x64-tinycc linux-xtensa-uclibc \
|
|
||||||
bare-armv7emhf-nano_newlib
|
|
||||||
|
|
||||||
# Generate both amd64 and arm64 images
|
|
||||||
MULTIARCH_IMAGES := linux-arm64 \
|
|
||||||
web-wasi web-wasi-emulated-threads
|
|
||||||
|
|
||||||
GEN_IMAGE_DOCKERFILES = $(addsuffix /Dockerfile,$(GEN_IMAGES))
|
|
||||||
|
|
||||||
# These images are expected to have explicit rules for *both* build and testing
|
|
||||||
NON_STANDARD_IMAGES := manylinux_2_28-x64 manylinux_2_34-x64 manylinux2014-x64 manylinux2014-x86 \
|
|
||||||
manylinux2014-aarch64 manylinux_2_28-aarch64 manylinux_2_34-aarch64 web-wasm web-wasi-emulated-threads web-wasi-threads
|
|
||||||
|
|
||||||
# Docker composite files
|
|
||||||
DOCKER_COMPOSITE_SOURCES = common.docker common.debian common.manylinux2014 common.manylinux_2_28 common.manylinux_2_34 common.buildroot \
|
|
||||||
common.crosstool common.webassembly common.windows common-manylinux.crosstool common-manylinux_2_28.crosstool common-manylinux_2_34.crosstool common.dockcross \
|
|
||||||
common.label-and-env
|
|
||||||
DOCKER_COMPOSITE_FOLDER_PATH = common/
|
|
||||||
DOCKER_COMPOSITE_PATH = $(addprefix $(DOCKER_COMPOSITE_FOLDER_PATH),$(DOCKER_COMPOSITE_SOURCES))
|
|
||||||
|
|
||||||
# This list all available images
|
|
||||||
IMAGES := $(STANDARD_IMAGES) $(NON_STANDARD_IMAGES) $(MULTIARCH_IMAGES)
|
|
||||||
|
|
||||||
# Optional arguments for test runner (test/run.py) associated with "testing implicit rule"
|
|
||||||
linux-x64-tinycc.test_ARGS = --languages C
|
|
||||||
windows-static-x86.test_ARGS = --exe-suffix ".exe"
|
|
||||||
windows-static-x64.test_ARGS = --exe-suffix ".exe"
|
|
||||||
windows-static-x64-posix.test_ARGS = --exe-suffix ".exe"
|
|
||||||
windows-shared-x86.test_ARGS = --exe-suffix ".exe"
|
|
||||||
windows-shared-x64.test_ARGS = --exe-suffix ".exe"
|
|
||||||
windows-shared-x64-posix.test_ARGS = --exe-suffix ".exe"
|
|
||||||
windows-armv7.test_ARGS = --exe-suffix ".exe"
|
|
||||||
windows-arm64.test_ARGS = --exe-suffix ".exe"
|
|
||||||
bare-armv7emhf-nano_newlib.test_ARGS = --linker-flags="--specs=nosys.specs"
|
|
||||||
|
|
||||||
# Tag images with date and Git short hash in addition to revision
|
|
||||||
TAG := $(shell date '+%Y%m%d')-$(shell git rev-parse --short HEAD)
|
|
||||||
|
|
||||||
# shellcheck executable
|
|
||||||
SHELLCHECK := shellcheck
|
|
||||||
|
|
||||||
# Defines the level of verification (error, warning, info...)
|
|
||||||
SHELLCHECK_SEVERITY_LEVEL := error
|
|
||||||
|
|
||||||
#
|
|
||||||
# images: This target builds all IMAGES (because it is the first one, it is built by default)
|
|
||||||
#
|
|
||||||
images: base $(IMAGES)
|
|
||||||
|
|
||||||
#
|
|
||||||
# test: This target ensures all IMAGES are built and run the associated tests
|
|
||||||
#
|
|
||||||
test: base.test $(addsuffix .test,$(IMAGES))
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic Targets (can specialize later).
|
|
||||||
#
|
|
||||||
$(GEN_IMAGE_DOCKERFILES) Dockerfile: %Dockerfile: %Dockerfile.in $(DOCKER_COMPOSITE_PATH)
|
|
||||||
sed $(foreach f,$(DOCKER_COMPOSITE_SOURCES),-e '/$(f)/ r $(DOCKER_COMPOSITE_FOLDER_PATH)$(f)') $< > $@
|
|
||||||
|
|
||||||
#
|
|
||||||
# web-wasm
|
|
||||||
#
|
|
||||||
ifeq ($(HOST_ARCH),amd64)
|
|
||||||
EMSCRIPTEN_HOST_ARCH_TAG = ""
|
|
||||||
endif
|
|
||||||
ifeq ($(HOST_ARCH),arm64)
|
|
||||||
EMSCRIPTEN_HOST_ARCH_TAG = "-arm64"
|
|
||||||
endif
|
|
||||||
web-wasm: web-wasm/Dockerfile
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
cp -r test web-wasm/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/web-wasm:$(TAG)-$(HOST_ARCH) \
|
|
||||||
$(TAG_FLAG) $(ORG)/web-wasm:latest-$(HOST_ARCH) \
|
|
||||||
--build-arg IMAGE=$(ORG)/web-wasm \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg HOST_ARCH_TAG=$(EMSCRIPTEN_HOST_ARCH_TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
web-wasm
|
|
||||||
rm -rf web-wasm/test
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
web-wasm.test: web-wasm
|
|
||||||
cp -r test web-wasm/
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/web-wasm:latest-$(HOST_ARCH) > $(BIN)/dockcross-web-wasm && chmod +x $(BIN)/dockcross-web-wasm
|
|
||||||
$(BIN)/dockcross-web-wasm -i $(ORG)/web-wasm:latest-$(HOST_ARCH) python test/run.py --exe-suffix ".js"
|
|
||||||
rm -rf web-wasm/test
|
|
||||||
|
|
||||||
#
|
|
||||||
# web-wasi-threads
|
|
||||||
#
|
|
||||||
web-wasi-threads: web-wasi web-wasi-threads/Dockerfile
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
cp -r test web-wasi-threads/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/web-wasi-threads:$(TAG)-$(HOST_ARCH) \
|
|
||||||
-t $(ORG)/web-wasi-threads:latest-$(HOST_ARCH) \
|
|
||||||
--build-arg IMAGE=$(ORG)/web-wasi-threads \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg HOST_ARCH=$(HOST_ARCH) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
web-wasi-threads
|
|
||||||
|
|
||||||
#
|
|
||||||
# manylinux2014-aarch64
|
|
||||||
#
|
|
||||||
manylinux2014-aarch64: manylinux2014-aarch64/Dockerfile manylinux2014-x64
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-aarch64:$(TAG) \
|
|
||||||
$(TAG_FLAG) $(ORG)/manylinux2014-aarch64:latest \
|
|
||||||
--build-arg IMAGE=$(ORG)/manylinux2014-aarch64 \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
-f manylinux2014-aarch64/Dockerfile .
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
manylinux2014-aarch64.test: manylinux2014-aarch64
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-aarch64:latest > $(BIN)/dockcross-manylinux2014-aarch64 \
|
|
||||||
&& chmod +x $(BIN)/dockcross-manylinux2014-aarch64
|
|
||||||
$(BIN)/dockcross-manylinux2014-aarch64 -i $(ORG)/manylinux2014-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
|
|
||||||
|
|
||||||
#
|
|
||||||
# manylinux_2_28-aarch64
|
|
||||||
#
|
|
||||||
manylinux_2_28-aarch64: manylinux_2_28-aarch64/Dockerfile manylinux_2_28-x64
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux_2_28-aarch64:$(TAG) \
|
|
||||||
$(TAG_FLAG) $(ORG)/manylinux_2_28-aarch64:latest \
|
|
||||||
--build-arg IMAGE=$(ORG)/manylinux_2_28-aarch64 \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
-f manylinux_2_28-aarch64/Dockerfile .
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
manylinux_2_28-aarch64.test: manylinux_2_28-aarch64
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux_2_28-aarch64:latest > $(BIN)/dockcross-manylinux_2_28-aarch64 \
|
|
||||||
&& chmod +x $(BIN)/dockcross-manylinux_2_28-aarch64
|
|
||||||
$(BIN)/dockcross-manylinux_2_28-aarch64 -i $(ORG)/manylinux_2_28-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
|
|
||||||
|
|
||||||
#
|
|
||||||
# manylinux_2_34-aarch64
|
|
||||||
#
|
|
||||||
manylinux_2_34-aarch64: manylinux_2_34-aarch64/Dockerfile manylinux_2_34-x64
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux_2_34-aarch64:$(TAG) \
|
|
||||||
$(TAG_FLAG) $(ORG)/manylinux_2_34-aarch64:latest \
|
|
||||||
--build-arg IMAGE=$(ORG)/manylinux_2_34-aarch64 \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
-f manylinux_2_34-aarch64/Dockerfile .
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
manylinux_2_34-aarch64.test: manylinux_2_34-aarch64
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux_2_34-aarch64:latest > $(BIN)/dockcross-manylinux_2_34-aarch64 \
|
|
||||||
&& chmod +x $(BIN)/dockcross-manylinux_2_34-aarch64
|
|
||||||
$(BIN)/dockcross-manylinux_2_34-aarch64 -i $(ORG)/manylinux_2_34-aarch64:latest /opt/python/cp311-cp311/bin/python test/run.py
|
|
||||||
|
|
||||||
#
|
|
||||||
# manylinux_2_28-x64
|
|
||||||
#
|
|
||||||
manylinux_2_28-x64: manylinux_2_28-x64/Dockerfile
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux_2_28-x64:$(TAG) \
|
|
||||||
$(TAG_FLAG) $(ORG)/manylinux_2_28-x64:latest \
|
|
||||||
--build-arg IMAGE=$(ORG)/manylinux_2_28-x64 \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
-f manylinux_2_28-x64/Dockerfile .
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
manylinux_2_28-x64.test: manylinux_2_28-x64
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux_2_28-x64:latest > $(BIN)/dockcross-manylinux_2_28-x64 \
|
|
||||||
&& chmod +x $(BIN)/dockcross-manylinux_2_28-x64
|
|
||||||
$(BIN)/dockcross-manylinux_2_28-x64 -i $(ORG)/manylinux_2_28-x64:latest /opt/python/cp310-cp310/bin/python test/run.py
|
|
||||||
|
|
||||||
#
|
|
||||||
# manylinux_2_34-x64
|
|
||||||
#
|
|
||||||
manylinux_2_34-x64: manylinux_2_34-x64/Dockerfile
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(DOCKER) build -t $(ORG)/manylinux_2_34-x64:$(TAG) \
|
|
||||||
-t $(ORG)/manylinux_2_34-x64:latest \
|
|
||||||
--build-arg IMAGE=$(ORG)/manylinux_2_34-x64 \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
-f manylinux_2_34-x64/Dockerfile .
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
manylinux_2_34-x64.test: manylinux_2_34-x64
|
|
||||||
$(DOCKER) run $(RM) $(ORG)/manylinux_2_34-x64:latest > $(BIN)/dockcross-manylinux_2_34-x64 \
|
|
||||||
&& chmod +x $(BIN)/dockcross-manylinux_2_34-x64
|
|
||||||
$(BIN)/dockcross-manylinux_2_34-x64 -i $(ORG)/manylinux_2_34-x64:latest /opt/python/cp310-cp310/bin/python test/run.py
|
|
||||||
|
|
||||||
#
|
|
||||||
# manylinux2014-x64
|
|
||||||
#
|
|
||||||
manylinux2014-x64: manylinux2014-x64/Dockerfile
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-x64:$(TAG) \
|
|
||||||
$(TAG_FLAG) $(ORG)/manylinux2014-x64:latest \
|
|
||||||
--build-arg IMAGE=$(ORG)/manylinux2014-x64 \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
-f manylinux2014-x64/Dockerfile .
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
manylinux2014-x64.test: manylinux2014-x64
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-x64:latest > $(BIN)/dockcross-manylinux2014-x64 \
|
|
||||||
&& chmod +x $(BIN)/dockcross-manylinux2014-x64
|
|
||||||
$(BIN)/dockcross-manylinux2014-x64 -i $(ORG)/manylinux2014-x64:latest /opt/python/cp311-cp311/bin/python test/run.py
|
|
||||||
|
|
||||||
#
|
|
||||||
# manylinux2014-x86
|
|
||||||
#
|
|
||||||
manylinux2014-x86: manylinux2014-x86/Dockerfile
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/manylinux2014-x86:$(TAG) \
|
|
||||||
-t $(ORG)/manylinux2014-x86:latest \
|
|
||||||
--build-arg IMAGE=$(ORG)/manylinux2014-x86 \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
-f manylinux2014-x86/Dockerfile .
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
manylinux2014-x86.test: manylinux2014-x86
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/manylinux2014-x86:latest > $(BIN)/dockcross-manylinux2014-x86 \
|
|
||||||
&& chmod +x $(BIN)/dockcross-manylinux2014-x86
|
|
||||||
$(BIN)/dockcross-manylinux2014-x86 -i $(ORG)/manylinux2014-x86:latest /opt/python/cp311-cp311/bin/python test/run.py
|
|
||||||
|
|
||||||
#
|
|
||||||
# base-$(HOST_ARCH)
|
|
||||||
#
|
|
||||||
base-$(HOST_ARCH): Dockerfile imagefiles/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/base:latest-$(HOST_ARCH) \
|
|
||||||
$(TAG_FLAG) $(ORG)/base:$(TAG)-$(HOST_ARCH) \
|
|
||||||
--build-arg IMAGE=$(ORG)/base \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
.
|
|
||||||
|
|
||||||
base-$(HOST_ARCH).test: base-$(HOST_ARCH)
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/base:latest-$(HOST_ARCH) > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
|
|
||||||
|
|
||||||
base: Dockerfile imagefiles/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/base:latest \
|
|
||||||
$(TAG_FLAG) $(ORG)/base:$(TAG) \
|
|
||||||
--build-arg IMAGE=$(ORG)/base \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
.
|
|
||||||
|
|
||||||
base.test: base
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/base:latest > $(BIN)/dockcross-base && chmod +x $(BIN)/dockcross-base
|
|
||||||
|
|
||||||
# display
|
|
||||||
#
|
|
||||||
display_images:
|
|
||||||
for image in $(IMAGES); do echo $$image; done
|
|
||||||
|
|
||||||
$(VERBOSE).SILENT: display_images
|
|
||||||
|
|
||||||
#
|
|
||||||
# build implicit rule
|
|
||||||
#
|
|
||||||
|
|
||||||
$(STANDARD_IMAGES): %: %/Dockerfile base
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/$@:latest \
|
|
||||||
$(TAG_FLAG) $(ORG)/$@:$(TAG) \
|
|
||||||
--build-arg ORG=$(ORG) \
|
|
||||||
--build-arg IMAGE=$(ORG)/$@ \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
$@
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
$(MULTIARCH_IMAGES): %: %/Dockerfile base-$(HOST_ARCH)
|
|
||||||
mkdir -p $@/imagefiles && cp -r imagefiles $@/
|
|
||||||
$(BUILD_DOCKER) $(BUILD_CMD) $(TAG_FLAG) $(ORG)/$@:latest-$(HOST_ARCH) \
|
|
||||||
$(TAG_FLAG) $(ORG)/$@:$(TAG)-$(HOST_ARCH) \
|
|
||||||
--build-arg ORG=$(ORG) \
|
|
||||||
--build-arg IMAGE=$(ORG)/$@ \
|
|
||||||
--build-arg HOST_ARCH=$(HOST_ARCH) \
|
|
||||||
--build-arg VERSION=$(TAG) \
|
|
||||||
--build-arg VCS_REF=`git rev-parse --short HEAD` \
|
|
||||||
--build-arg VCS_URL=`git config --get remote.origin.url` \
|
|
||||||
--build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` \
|
|
||||||
$@
|
|
||||||
rm -rf $@/imagefiles
|
|
||||||
|
|
||||||
clean:
|
|
||||||
for d in $(IMAGES) ; do rm -rf $$d/imagefiles ; done
|
|
||||||
for d in $(IMAGES) ; do rm -rf $(BIN)/dockcross-$$d ; done
|
|
||||||
for d in $(GEN_IMAGE_DOCKERFILES) ; do rm -f $$d ; done
|
|
||||||
rm -f Dockerfile
|
|
||||||
|
|
||||||
purge: clean
|
|
||||||
# Remove all untagged images
|
|
||||||
$(TEST_DOCKER) container ls -aq | xargs -r $(DOCKER) container rm -f
|
|
||||||
# Remove all images with organization (ex dockcross/*)
|
|
||||||
$(BUILD_DOCKER) images --filter=reference='$(ORG)/*' --format='{{.Repository}}:{{.Tag}}' | xargs -r $(DOCKER) rmi -f
|
|
||||||
|
|
||||||
# Check bash syntax
|
|
||||||
bash-check:
|
|
||||||
find . -type f \( -name "*.sh" -o -name "*.bash" \) -print0 | xargs -0 -P"$(shell nproc)" -I{} \
|
|
||||||
$(SHELLCHECK) --check-sourced --color=auto --format=gcc --severity=warning --shell=bash --enable=all "{}"
|
|
||||||
|
|
||||||
#
|
|
||||||
# testing implicit rule
|
|
||||||
#
|
|
||||||
.SECONDEXPANSION:
|
|
||||||
$(addsuffix .test,$(STANDARD_IMAGES)): $$(basename $$@)
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/$(basename $@):latest > $(BIN)/dockcross-$(basename $@) \
|
|
||||||
&& chmod +x $(BIN)/dockcross-$(basename $@)
|
|
||||||
$(BIN)/dockcross-$(basename $@) -i $(ORG)/$(basename $@):latest python3 test/run.py $($@_ARGS)
|
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
|
||||||
$(addsuffix .test,$(MULTIARCH_IMAGES) web-wasi-threads): $$(basename $$@)
|
|
||||||
$(TEST_DOCKER) run $(RM) $(ORG)/$(basename $@):latest-$(HOST_ARCH) > $(BIN)/dockcross-$(basename $@) \
|
|
||||||
&& chmod +x $(BIN)/dockcross-$(basename $@)
|
|
||||||
$(BIN)/dockcross-$(basename $@) -i $(ORG)/$(basename $@):latest-$(HOST_ARCH) python3 test/run.py $($@_ARGS)
|
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
|
||||||
$(addsuffix .tag-$(HOST_ARCH),$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
|
|
||||||
$(BUILD_DOCKER) tag $(ORG)/$(basename $@):latest-$(HOST_ARCH) \
|
|
||||||
$(ORG)/$(basename $@):$(TAG)-$(HOST_ARCH)
|
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
|
||||||
$(addsuffix .push-$(HOST_ARCH),$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
|
|
||||||
$(BUILD_DOCKER) push $(ORG)/$(basename $@):latest-$(HOST_ARCH) \
|
|
||||||
&& $(BUILD_DOCKER) push $(ORG)/$(basename $@):$(TAG)-$(HOST_ARCH)
|
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
|
||||||
$(addsuffix .push,$(STANDARD_IMAGES) $(NON_STANDARD_IMAGES)): $$(basename $$@)
|
|
||||||
$(BUILD_DOCKER) push $(ORG)/$(basename $@):latest \
|
|
||||||
&& $(BUILD_DOCKER) push $(ORG)/$(basename $@):$(TAG)
|
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
|
||||||
$(addsuffix .manifest,$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@)
|
|
||||||
$(MANIFEST_TOOL) push from-args \
|
|
||||||
--platforms linux/amd64,linux/arm64 \
|
|
||||||
--template $(ORG)/$(basename $@):latest-ARCH \
|
|
||||||
--target $(ORG)/$(basename $@):latest
|
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
|
||||||
$(addsuffix .push,$(MULTIARCH_IMAGES) web-wasi-threads web-wasm): $$(basename $$@).manifest
|
|
||||||
$(MANIFEST_TOOL) push from-args \
|
|
||||||
--platforms linux/amd64,linux/arm64 \
|
|
||||||
--template $(ORG)/$(basename $@):$(TAG)-ARCH \
|
|
||||||
--target $(ORG)/$(basename $@):$(TAG)
|
|
||||||
|
|
||||||
#
|
|
||||||
# testing prerequisites implicit rule
|
|
||||||
#
|
|
||||||
test.prerequisites:
|
|
||||||
mkdir -p $(BIN)
|
|
||||||
|
|
||||||
$(addsuffix .test,base $(IMAGES)): test.prerequisites
|
|
||||||
|
|
||||||
.PHONY: base images $(IMAGES) test %.test clean purge bash-check display_images
|
|
||||||
@@ -103,7 +103,6 @@ The dockcross script will execute the given command-line inside the container, a
|
|||||||
| dockcross/linux-armv7-lts | ARMv7 | GCC 8.5.0 + Glibc 2.28 | Linux |
|
| dockcross/linux-armv7-lts | ARMv7 | GCC 8.5.0 + Glibc 2.28 | Linux |
|
||||||
| dockcross/linux-armv7a | ARMv7a | GCC | Linux |
|
| dockcross/linux-armv7a | ARMv7a | GCC | Linux |
|
||||||
| dockcross/linux-armv7l-musl | ARMv7l | GCC + musl | Linux |
|
| dockcross/linux-armv7l-musl | ARMv7l | GCC + musl | Linux |
|
||||||
| dockcross/linux-loongarch64 | LoongArch64 | GCC | Linux |
|
|
||||||
| dockcross/linux-mips | mips | GCC | Linux |
|
| dockcross/linux-mips | mips | GCC | Linux |
|
||||||
| dockcross/linux-mips-uclibc | mips | GCC + uclibc | Linux |
|
| dockcross/linux-mips-uclibc | mips | GCC + uclibc | Linux |
|
||||||
| dockcross/linux-mips-lts | mips | GCC 8.5.0 + Glibc 2.28 | Linux |
|
| dockcross/linux-mips-lts | mips | GCC 8.5.0 + Glibc 2.28 | Linux |
|
||||||
@@ -117,9 +116,7 @@ The dockcross script will execute the given command-line inside the container, a
|
|||||||
| dockcross/linux-m68k-uclibc | m68k | GCC + uclibc | Linux |
|
| dockcross/linux-m68k-uclibc | m68k | GCC + uclibc | Linux |
|
||||||
| dockcross/linux-xtensa-uclibc | xtensa | GCC + uclibc | Linux |
|
| dockcross/linux-xtensa-uclibc | xtensa | GCC + uclibc | Linux |
|
||||||
| dockcross/manylinux_2_28-x64 | x86_64 | GCC | Linux |
|
| dockcross/manylinux_2_28-x64 | x86_64 | GCC | Linux |
|
||||||
| dockcross/manylinux_2_28-aarch64 | aarch64 | GCC | Linux |
|
|
||||||
| dockcross/manylinux_2_34-x64 | x86_64 | GCC | Linux |
|
| dockcross/manylinux_2_34-x64 | x86_64 | GCC | Linux |
|
||||||
| dockcross/manylinux_2_34-aarch64 | ARMv8 | GCC | Linux |
|
|
||||||
| dockcross/manylinux2014-x86 | x86 | GCC | Linux |
|
| dockcross/manylinux2014-x86 | x86 | GCC | Linux |
|
||||||
| dockcross/manylinux2014-x64 | x86_64 | GCC | Linux |
|
| dockcross/manylinux2014-x64 | x86_64 | GCC | Linux |
|
||||||
| dockcross/linux-i686 | x86 | GCC | Linux |
|
| dockcross/linux-i686 | x86 | GCC | Linux |
|
||||||
@@ -284,12 +281,6 @@ board PC with TI SoC AM3358 on board, Cortex-A8.
|
|||||||
Toolchain configured for ARMv7-L, using
|
Toolchain configured for ARMv7-L, using
|
||||||
[musl](https://www.musl-libc.org/) as base \"libc\".
|
[musl](https://www.musl-libc.org/) as base \"libc\".
|
||||||
|
|
||||||
### dockcross/linux-loongarch64
|
|
||||||
|
|
||||||
 
|
|
||||||
|
|
||||||
Generic Linux LoongArch64 cross compiler toolchain.
|
|
||||||
|
|
||||||
### dockcross/linux-mips
|
### dockcross/linux-mips
|
||||||
|
|
||||||
 
|
 
|
||||||
@@ -394,24 +385,12 @@ Standalone Linux i686 cross compiler.
|
|||||||
|
|
||||||
Docker [manylinux_2_28](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_28** to \"TRUE\" in the toolchain.
|
Docker [manylinux_2_28](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.6, 3.7, 3.8, 3.9, 3.10 and 3.11. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_28** to \"TRUE\" in the toolchain.
|
||||||
|
|
||||||
### dockcross/manylinux_2_28-aarch64
|
|
||||||
|
|
||||||
 
|
|
||||||
|
|
||||||
Docker [manylinux_2_28](https://github.com/pypa/manylinux) image for building Linux aarch64 / arm64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.6, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_28** to \"TRUE\" in the toolchain.
|
|
||||||
|
|
||||||
### dockcross/manylinux_2_34-x64
|
### dockcross/manylinux_2_34-x64
|
||||||
|
|
||||||
 
|
 
|
||||||
|
|
||||||
Docker [manylinux_2_34](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.8.10+, 3.9.5+, 3.10.0+. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_34** to \"TRUE\" in the toolchain.
|
Docker [manylinux_2_34](https://github.com/pypa/manylinux) image for building Linux x86_64 / amd64 [Python wheel packages](http://pythonwheels.com/). It includes Python 3.8.10+, 3.9.5+, 3.10.0+. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_34** to \"TRUE\" in the toolchain.
|
||||||
|
|
||||||
### dockcross/manylinux_2_34-aarch64
|
|
||||||
|
|
||||||
 
|
|
||||||
|
|
||||||
Docker [manylinux_2_34](https://github.com/pypa/manylinux) image for building Linux aarch64 / arm64 [Python wheel packages](http://pythonwheels.com/). It includes CPython 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.13t (free-threaded) and PyPy 3.10. Also has support for the dockcross script, and it has installations of CMake, Ninja, and [scikit-build](http://scikit-build.org). For CMake, it sets **MANYLINUX_2_34** to "TRUE" in the toolchain. This image is designed to run on x86_64 hosts and cross-compile for aarch64 targets using QEMU emulation.
|
|
||||||
|
|
||||||
### dockcross/manylinux2014-x64
|
### dockcross/manylinux2014-x64
|
||||||
|
|
||||||
 
|
 
|
||||||
@@ -641,14 +620,6 @@ Note that the architecture is now `aarch64` instead of `amd64`, so it runs nativ
|
|||||||
|
|
||||||
\-\--
|
\-\--
|
||||||
|
|
||||||
## Multi-architecture Image Creation
|
|
||||||
|
|
||||||
For creating multi-architecture container images, this project uses [manifest-tool](https://github.com/estesp/manifest-tool) to create and manage manifest lists that combine platform-specific images into a single multi-platform reference. This allows container runtimes to automatically select the appropriate image based on the target architecture.
|
|
||||||
|
|
||||||
The multi-architecture images are built on different architectures (amd64 and arm64) and then combined using manifest-tool's `push from-args` command, which creates manifest lists pointing to the individual platform-specific images.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Credits:
|
Credits:
|
||||||
|
|
||||||
- [sdt/docker-raspberry-pi-cross-compiler](https://github.com/sdt/docker-raspberry-pi-cross-compiler), who invented the base of the **dockcross** script.
|
- [sdt/docker-raspberry-pi-cross-compiler](https://github.com/sdt/docker-raspberry-pi-cross-compiler), who invented the base of the **dockcross** script.
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
|
|||||||
CXX=${CROSS_ROOT}/bin/clang++ \
|
CXX=${CROSS_ROOT}/bin/clang++ \
|
||||||
LD=${CROSS_ROOT}/bin/ld
|
LD=${CROSS_ROOT}/bin/ld
|
||||||
|
|
||||||
ENV ANDROID_NDK_REVISION=28b
|
ENV ANDROID_NDK_REVISION=25b
|
||||||
ENV ANDROID_API=24
|
ENV ANDROID_API=23
|
||||||
|
|
||||||
RUN mkdir -p /build && \
|
RUN mkdir -p /build && \
|
||||||
cd /build && \
|
cd /build && \
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = android-arm
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish openssl SQLite
|
|
||||||
STOCKFISH_ARGS = ARCH=armv7 COMP=ndk
|
|
||||||
OPENSSL_ARGS = android-arm no-shared
|
|
||||||
@@ -21,8 +21,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
|
|||||||
CXX=${CROSS_ROOT}/bin/clang++ \
|
CXX=${CROSS_ROOT}/bin/clang++ \
|
||||||
LD=${CROSS_ROOT}/bin/ld
|
LD=${CROSS_ROOT}/bin/ld
|
||||||
|
|
||||||
ENV ANDROID_NDK_REVISION=28b
|
ENV ANDROID_NDK_REVISION=25b
|
||||||
ENV ANDROID_API=24
|
ENV ANDROID_API=23
|
||||||
|
|
||||||
RUN mkdir -p /build && \
|
RUN mkdir -p /build && \
|
||||||
cd /build && \
|
cd /build && \
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = android-arm64
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish openssl SQLite
|
|
||||||
STOCKFISH_ARGS = ARCH=armv8 COMP=ndk
|
|
||||||
OPENSSL_ARGS = android-arm64 no-shared
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
ARG ORG=dockcross
|
FROM dockcross/base:latest
|
||||||
FROM ${ORG}/base:latest
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y unzip
|
RUN apt-get update && apt-get install -y unzip
|
||||||
|
|
||||||
@@ -12,8 +11,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
|
|||||||
CXX=${CROSS_ROOT}/bin/clang++ \
|
CXX=${CROSS_ROOT}/bin/clang++ \
|
||||||
LD=${CROSS_ROOT}/bin/ld
|
LD=${CROSS_ROOT}/bin/ld
|
||||||
|
|
||||||
ENV ANDROID_NDK_REVISION=28b
|
ENV ANDROID_NDK_REVISION=25b
|
||||||
ENV ANDROID_API=24
|
ENV ANDROID_API=23
|
||||||
|
|
||||||
RUN mkdir -p /build && \
|
RUN mkdir -p /build && \
|
||||||
cd /build && \
|
cd /build && \
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = android-x86
|
|
||||||
|
|
||||||
STATIC_DOCKERFILE = yes
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish openssl SQLite
|
|
||||||
STOCKFISH_ARGS = ARCH=x86-32 COMP=ndk
|
|
||||||
OPENSSL_ARGS = android-x86 no-shared
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
ARG ORG=dockcross
|
FROM dockcross/base:latest
|
||||||
FROM ${ORG}/base:latest
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y unzip
|
RUN apt-get update && apt-get install -y unzip
|
||||||
|
|
||||||
@@ -12,8 +11,8 @@ ENV AS=${CROSS_ROOT}/bin/llvm-as \
|
|||||||
CXX=${CROSS_ROOT}/bin/clang++ \
|
CXX=${CROSS_ROOT}/bin/clang++ \
|
||||||
LD=${CROSS_ROOT}/bin/ld
|
LD=${CROSS_ROOT}/bin/ld
|
||||||
|
|
||||||
ENV ANDROID_NDK_REVISION=28b
|
ENV ANDROID_NDK_REVISION=25b
|
||||||
ENV ANDROID_API=24
|
ENV ANDROID_API=23
|
||||||
|
|
||||||
RUN mkdir -p /build && \
|
RUN mkdir -p /build && \
|
||||||
cd /build && \
|
cd /build && \
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = android-x86_64
|
|
||||||
|
|
||||||
STATIC_DOCKERFILE = yes
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish openssl SQLite
|
|
||||||
STOCKFISH_ARGS = ARCH=x86-64 COMP=ndk
|
|
||||||
OPENSSL_ARGS = android-x86_64 no-shared
|
|
||||||
@@ -822,9 +822,9 @@ CT_ZLIB_PATCH_GLOBAL=y
|
|||||||
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
||||||
# CT_ZLIB_PATCH_NONE is not set
|
# CT_ZLIB_PATCH_NONE is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = bare-armv7emhf-nano_newlib
|
|
||||||
|
|
||||||
TEST_IMAGE_ARGS = --linker-flags="--specs=nosys.specs"
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = mbedtls libopencm3
|
|
||||||
LIBOPENCM3_ARGS = PREFIX=/usr/xcc/arm-none-eabi/bin/arm-none-eabi- TARGETS='stm32/f1 stm32/f2 stm32/f3 stm32/f4 stm32/f7 stm32/l1 stm32/l4 stm32/g4 stm32/h7 gd32/f1x0 lpc13xx lpc17xx lpc43xx/m4 lm3s lm4f msp432/e4 efm32/tg efm32/g efm32/lg efm32/gg efm32/wg efm32/ezr32wg nrf/51 nrf/52 sam/3a sam/3n sam/3s sam/3u sam/3x sam/4l vf6xx pac55xx'
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
# crosstool.common-manylinux_2_28
|
|
||||||
#
|
|
||||||
# Common Docker instructions to install "crosstool-ng" and build a full
|
|
||||||
# cross-compiler suite from a crosstool-ng configuration, CROSSTOOL_CONFIG.
|
|
||||||
#
|
|
||||||
# This import complements the "dockcross/base" image, adding:
|
|
||||||
# - "ct-ng", a cross-compiler building utilty.
|
|
||||||
# - A cross-compiler suite configured in "crosstool-ng.config".
|
|
||||||
#
|
|
||||||
# The generated cross-compiler will have a CROSS_ROOT of:
|
|
||||||
# ${XCC_PREFIX}/${CROSS_TRIPLE}
|
|
||||||
#
|
|
||||||
# A given platform will need to supply the appropriate "crosstool-ng.config" to
|
|
||||||
# generate its cross-compiler. This can be built using "ct-ng menuconfig" to
|
|
||||||
# generate a configuration.
|
|
||||||
|
|
||||||
ENV MANYLINUX_DEPS="glibc-devel glibc-devel.i686 libstdc++-devel glib2-devel libX11-devel libXext-devel libXrender-devel mesa-libGL-devel libICE-devel libSM-devel"
|
|
||||||
|
|
||||||
ENV PYTHON_COMPILE_DEPS="python3-devel zlib-devel bzip2-devel expat-devel ncurses-devel readline-devel tk-devel gdbm-devel libdb-devel libpcap-devel xz-devel openssl-devel keyutils-libs-devel krb5-devel libcom_err-devel libidn-devel curl-devel perl-devel"
|
|
||||||
|
|
||||||
ENV TOOLCHAIN_DEPS="gcc-toolset-14-binutils gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-gfortran"
|
|
||||||
|
|
||||||
# Install dependent packages required for `ct-ng`.
|
|
||||||
RUN \
|
|
||||||
yum -y update && \
|
|
||||||
yum -y install \
|
|
||||||
gawk \
|
|
||||||
gperf \
|
|
||||||
help2man \
|
|
||||||
texinfo \
|
|
||||||
flex \
|
|
||||||
ncurses-devel \
|
|
||||||
glibc-static \
|
|
||||||
rsync \
|
|
||||||
systemtap-devel \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
${TOOLCHAIN_DEPS} \
|
|
||||||
${PYTHON_COMPILE_DEPS} \
|
|
||||||
${MANYLINUX_DEPS} && \
|
|
||||||
yum clean all
|
|
||||||
|
|
||||||
ENV XCC_PREFIX=/usr/xcc
|
|
||||||
|
|
||||||
# Add the crosstool-ng script and image-specific toolchain configuration into
|
|
||||||
# /dockcross/.
|
|
||||||
#
|
|
||||||
# Afterwards, we will leave the "ct-ng" config in the image as a reference
|
|
||||||
# for users.
|
|
||||||
COPY \
|
|
||||||
imagefiles/install-crosstool-ng-toolchain.sh \
|
|
||||||
imagefiles/patch/crosstool-ng/crosstool-ng-zlib-target.patch \
|
|
||||||
manylinux_2_28-aarch64/crosstool-ng.config \
|
|
||||||
/dockcross/
|
|
||||||
|
|
||||||
# Copy sys/sdt.h to a clean include directory to avoid pulling in all of
|
|
||||||
# /usr/include (which causes __float128 conflicts on AlmaLinux 8 when
|
|
||||||
# cross-compiling for aarch64).
|
|
||||||
RUN mkdir -p /opt/ct-ng-includes/sys && \
|
|
||||||
cp /usr/include/sys/sdt.h /opt/ct-ng-includes/sys/ && \
|
|
||||||
cp /usr/include/sys/sdt-config.h /opt/ct-ng-includes/sys/
|
|
||||||
|
|
||||||
# Build and install the toolchain, cleaning up artifacts afterwards.
|
|
||||||
RUN \
|
|
||||||
mkdir /dockcross/crosstool && \
|
|
||||||
cd /dockcross/crosstool && \
|
|
||||||
/dockcross/install-crosstool-ng-toolchain.sh \
|
|
||||||
-p "${XCC_PREFIX}" \
|
|
||||||
-c /dockcross/crosstool-ng.config \
|
|
||||||
-v "${CT_VERSION}" && \
|
|
||||||
rm -rf /dockcross/crosstool /dockcross/install-crosstool-ng-toolchain.sh && \
|
|
||||||
# Remove sudo provided by gcc-toolset since it doesn't work with
|
|
||||||
# our sudo wrapper calling gosu.
|
|
||||||
rm -f /opt/rh/gcc-toolset-14/root/usr/bin/sudo
|
|
||||||
|
|
||||||
# Restore our default workdir (from "dockcross/base").
|
|
||||||
WORKDIR /work
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
# crosstool.common-manylinux_2_34
|
|
||||||
#
|
|
||||||
# Common Docker instructions to install "crosstool-ng" and build a full
|
|
||||||
# cross-compiler suite from a crosstool-ng configuration, CROSSTOOL_CONFIG.
|
|
||||||
#
|
|
||||||
# This import complements the "dockcross/base" image, adding:
|
|
||||||
# - "ct-ng", a cross-compiler building utilty.
|
|
||||||
# - A cross-compiler suite configured in "crosstool-ng.config".
|
|
||||||
#
|
|
||||||
# The generated cross-compiler will have a CROSS_ROOT of:
|
|
||||||
# ${XCC_PREFIX}/${CROSS_TRIPLE}
|
|
||||||
#
|
|
||||||
# A given platform will need to supply the appropriate "crosstool-ng.config" to
|
|
||||||
# generate its cross-compiler. This can be built using "ct-ng menuconfig" to
|
|
||||||
# generate a configuration.
|
|
||||||
|
|
||||||
ENV MANYLINUX_DEPS="glibc-devel glibc-devel.i686 libstdc++-devel glib2-devel libX11-devel libXext-devel libXrender-devel mesa-libGL-devel libICE-devel libSM-devel"
|
|
||||||
|
|
||||||
ENV PYTHON_COMPILE_DEPS="python-devel zlib-devel bzip2-devel expat-devel ncurses-devel readline-devel tk-devel gdbm-devel libdb-devel libpcap-devel xz-devel openssl-devel keyutils-libs-devel krb5-devel libcom_err-devel libidn-devel curl-devel perl-devel"
|
|
||||||
|
|
||||||
ENV TOOLCHAIN_DEPS="gcc-toolset-14-binutils gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-gfortran"
|
|
||||||
|
|
||||||
# Install dependent packages required for `ct-ng`.
|
|
||||||
RUN \
|
|
||||||
dnf -y update && \
|
|
||||||
dnf -y install \
|
|
||||||
gawk \
|
|
||||||
gperf \
|
|
||||||
help2man \
|
|
||||||
texinfo \
|
|
||||||
flex \
|
|
||||||
ncurses-devel \
|
|
||||||
glibc-static \
|
|
||||||
rsync \
|
|
||||||
systemtap-devel \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
${TOOLCHAIN_DEPS} \
|
|
||||||
${PYTHON_COMPILE_DEPS} \
|
|
||||||
${MANYLINUX_DEPS} && \
|
|
||||||
dnf clean all
|
|
||||||
|
|
||||||
ENV XCC_PREFIX=/usr/xcc
|
|
||||||
|
|
||||||
# Add the crosstool-ng script and image-specific toolchain configuration into
|
|
||||||
# /dockcross/.
|
|
||||||
#
|
|
||||||
# Afterwards, we will leave the "ct-ng" config in the image as a reference
|
|
||||||
# for users.
|
|
||||||
COPY \
|
|
||||||
imagefiles/install-crosstool-ng-toolchain.sh \
|
|
||||||
imagefiles/patch/crosstool-ng/crosstool-ng-zlib-target.patch \
|
|
||||||
manylinux_2_34-aarch64/crosstool-ng.config \
|
|
||||||
/dockcross/
|
|
||||||
|
|
||||||
# Copy sys/sdt.h to a clean include directory to avoid pulling in all of
|
|
||||||
# /usr/include (which causes __float128 conflicts on AlmaLinux 9 when
|
|
||||||
# cross-compiling for aarch64).
|
|
||||||
RUN mkdir -p /opt/ct-ng-includes/sys && \
|
|
||||||
cp /usr/include/sys/sdt.h /opt/ct-ng-includes/sys/ && \
|
|
||||||
cp /usr/include/sys/sdt-config.h /opt/ct-ng-includes/sys/
|
|
||||||
|
|
||||||
# Build and install the toolchain, cleaning up artifacts afterwards.
|
|
||||||
RUN \
|
|
||||||
mkdir /dockcross/crosstool && \
|
|
||||||
cd /dockcross/crosstool && \
|
|
||||||
/dockcross/install-crosstool-ng-toolchain.sh \
|
|
||||||
-p "${XCC_PREFIX}" \
|
|
||||||
-c /dockcross/crosstool-ng.config \
|
|
||||||
-v "${CT_VERSION}" && \
|
|
||||||
rm -rf /dockcross/crosstool /dockcross/install-crosstool-ng-toolchain.sh && \
|
|
||||||
# Remove sudo provided by gcc-toolset since it doesn't work with
|
|
||||||
# our sudo wrapper calling gosu.
|
|
||||||
rm -f /opt/rh/gcc-toolset-14/root/usr/bin/sudo
|
|
||||||
|
|
||||||
# Restore our default workdir (from "dockcross/base").
|
|
||||||
WORKDIR /work
|
|
||||||
@@ -10,8 +10,7 @@ RUN apt-get update --yes && apt-get install --no-install-recommends --yes \
|
|||||||
libtool \
|
libtool \
|
||||||
libtool-bin \
|
libtool-bin \
|
||||||
&& apt-get clean autoclean --yes \
|
&& apt-get clean autoclean --yes \
|
||||||
&& apt-get autoremove --yes \
|
&& apt-get autoremove --yes
|
||||||
&& rm -rf /var/lib/{apt,dpkg,cache,log}/
|
|
||||||
|
|
||||||
COPY \
|
COPY \
|
||||||
imagefiles/install-buildroot-toolchain.sh \
|
imagefiles/install-buildroot-toolchain.sh \
|
||||||
@@ -19,12 +18,8 @@ COPY \
|
|||||||
/dockcross/
|
/dockcross/
|
||||||
|
|
||||||
# Build and install the toolchain, cleaning up artifacts afterwards.
|
# Build and install the toolchain, cleaning up artifacts afterwards.
|
||||||
RUN mkdir /dockcross/buildroot \
|
RUN mkdir /dockcross/buildroot && cd /dockcross/buildroot && \
|
||||||
&& cd /dockcross/buildroot \
|
/dockcross/install-buildroot-toolchain.sh -c "/dockcross/buildroot.config" -v "${BR_VERSION}"
|
||||||
&& /dockcross/install-buildroot-toolchain.sh \
|
|
||||||
-c "/dockcross/buildroot.config" \
|
|
||||||
-v "${BR_VERSION}" \
|
|
||||||
&& rm -rf /dockcross/buildroot /dockcross/install-buildroot-toolchain.sh
|
|
||||||
|
|
||||||
# Restore our default workdir (from "dockcross/base").
|
# Restore our default workdir (from "dockcross/base").
|
||||||
WORKDIR /work
|
WORKDIR /work
|
||||||
|
|||||||
@@ -26,8 +26,7 @@ RUN apt-get update --yes && apt-get install --no-install-recommends --yes \
|
|||||||
libtool \
|
libtool \
|
||||||
libtool-bin \
|
libtool-bin \
|
||||||
&& apt-get clean autoclean --yes \
|
&& apt-get clean autoclean --yes \
|
||||||
&& apt-get autoremove --yes \
|
&& apt-get autoremove --yes
|
||||||
&& rm -rf /var/lib/{apt,dpkg,cache,log}/
|
|
||||||
|
|
||||||
ENV XCC_PREFIX=/usr/xcc
|
ENV XCC_PREFIX=/usr/xcc
|
||||||
|
|
||||||
|
|||||||
@@ -42,5 +42,4 @@ RUN \
|
|||||||
python-is-python3 \
|
python-is-python3 \
|
||||||
&& apt-get clean autoclean --yes \
|
&& apt-get clean autoclean --yes \
|
||||||
&& apt-get autoremove --yes \
|
&& apt-get autoremove --yes \
|
||||||
&& rm -rf /var/lib/{apt,dpkg,cache,log}/ \
|
|
||||||
&& rm /etc/ssh/*key*
|
&& rm /etc/ssh/*key*
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ ARG CURL_HASH=3b4378156ba09e224008e81dcce854b7ce4d182b1f9cfb97fe5ed9e9c18c6bd3
|
|||||||
ARG PERL_VERSION=perl-5.40.1
|
ARG PERL_VERSION=perl-5.40.1
|
||||||
ARG PERL_HASH=02f8c45bb379ed0c3de7514fad48c714fd46be8f0b536bfd5320050165a1ee26
|
ARG PERL_HASH=02f8c45bb379ed0c3de7514fad48c714fd46be8f0b536bfd5320050165a1ee26
|
||||||
|
|
||||||
ENV RUSTUP_HOME=/opt/rustup
|
|
||||||
ENV CARGO_HOME=/opt/rustup/cargo
|
|
||||||
|
|
||||||
# Image build scripts
|
# Image build scripts
|
||||||
COPY \
|
COPY \
|
||||||
imagefiles/build-and-install-cmake.sh \
|
imagefiles/build-and-install-cmake.sh \
|
||||||
@@ -52,8 +49,6 @@ RUN \
|
|||||||
/buildscripts/build-and-install-flatcc.sh && \
|
/buildscripts/build-and-install-flatcc.sh && \
|
||||||
rm -rf /buildscripts
|
rm -rf /buildscripts
|
||||||
|
|
||||||
ENV PATH=/opt/rustup/cargo/bin:$PATH
|
|
||||||
|
|
||||||
RUN echo "root:root" | chpasswd
|
RUN echo "root:root" | chpasswd
|
||||||
WORKDIR /work
|
WORKDIR /work
|
||||||
ENTRYPOINT ["/dockcross/entrypoint.sh"]
|
ENTRYPOINT ["/dockcross/entrypoint.sh"]
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ RUN \
|
|||||||
wget \
|
wget \
|
||||||
nasm \
|
nasm \
|
||||||
zip \
|
zip \
|
||||||
perl-IPC-Cmd \
|
|
||||||
perl-Time-Piece \
|
|
||||||
&& \
|
&& \
|
||||||
yum clean all
|
yum clean all
|
||||||
|
|
||||||
@@ -24,7 +22,7 @@ RUN \
|
|||||||
set -x && \
|
set -x && \
|
||||||
# Remove sudo provided by devtoolset since it doesn't work with
|
# Remove sudo provided by devtoolset since it doesn't work with
|
||||||
# our sudo wrapper calling gosu.
|
# our sudo wrapper calling gosu.
|
||||||
rm -f /opt/rh/gcc-toolset-14/root/usr/bin/sudo && \
|
rm -f /opt/rh/gcc-toolset-12/root/usr/bin/sudo && \
|
||||||
/buildscripts/install-python-packages.sh && \
|
/buildscripts/install-python-packages.sh && \
|
||||||
rm -rf /buildscripts
|
rm -rf /buildscripts
|
||||||
|
|
||||||
|
|||||||
@@ -10,11 +10,6 @@ RUN \
|
|||||||
wget \
|
wget \
|
||||||
nasm \
|
nasm \
|
||||||
zip \
|
zip \
|
||||||
perl-FindBin \
|
|
||||||
perl-File-Compare \
|
|
||||||
perl-File-Copy \
|
|
||||||
perl-IPC-Cmd \
|
|
||||||
perl-Time-Piece \
|
|
||||||
&& \
|
&& \
|
||||||
yum clean all
|
yum clean all
|
||||||
|
|
||||||
|
|||||||
@@ -46,11 +46,7 @@ RUN git clone --recurse-submodules https://github.com/WebAssembly/wabt.git && \
|
|||||||
RUN mkdir -p /wasi-runtimes
|
RUN mkdir -p /wasi-runtimes
|
||||||
|
|
||||||
ENV WASMTIME_HOME=/wasi-runtimes/wasmtime
|
ENV WASMTIME_HOME=/wasi-runtimes/wasmtime
|
||||||
# Pinned below v47.0.0: that release removes wasi-threads/wasi-common support
|
RUN mkdir -p ${WASMTIME_HOME} && curl https://wasmtime.dev/install.sh -sSf | bash
|
||||||
# entirely (see https://github.com/bytecodealliance/rfcs/pull/47), which
|
|
||||||
# wasmtime-pwd-threads.sh and the wasi-threads images below depend on.
|
|
||||||
ENV WASMTIME_VERSION=v46.0.1
|
|
||||||
RUN mkdir -p ${WASMTIME_HOME} && curl https://wasmtime.dev/install.sh -sSf | bash -s -- --version ${WASMTIME_VERSION}
|
|
||||||
COPY imagefiles/wasmtime-pwd.sh ${WASMTIME_HOME}/bin/
|
COPY imagefiles/wasmtime-pwd.sh ${WASMTIME_HOME}/bin/
|
||||||
COPY imagefiles/wasmtime-pwd-threads.sh ${WASMTIME_HOME}/bin/
|
COPY imagefiles/wasmtime-pwd-threads.sh ${WASMTIME_HOME}/bin/
|
||||||
ENV PATH="$WASMTIME_HOME/bin:$PATH"
|
ENV PATH="$WASMTIME_HOME/bin:$PATH"
|
||||||
|
|||||||
@@ -2,11 +2,8 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
# Get script directory
|
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
|
||||||
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
|
source $MY_DIR/utils.sh
|
||||||
|
|
||||||
# Get build utilities
|
|
||||||
source $SCRIPT_DIR/utils.sh
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Function 'do_curl_build' and 'build_curl'
|
# Function 'do_curl_build' and 'build_curl'
|
||||||
@@ -23,7 +20,6 @@ if [[ -z "${CURL_HASH}" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CURL_ROOT="${CURL_VERSION}"
|
|
||||||
CURL_DOWNLOAD_URL=https://curl.haxx.se/download
|
CURL_DOWNLOAD_URL=https://curl.haxx.se/download
|
||||||
|
|
||||||
function do_curl_build {
|
function do_curl_build {
|
||||||
@@ -34,16 +30,28 @@ function do_curl_build {
|
|||||||
make install > /dev/null
|
make install > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function build_curl {
|
||||||
|
local curl_fname=$1
|
||||||
|
check_var ${curl_fname}
|
||||||
|
local curl_sha256=$2
|
||||||
|
check_var ${curl_sha256}
|
||||||
|
check_var ${CURL_DOWNLOAD_URL}
|
||||||
|
curl --connect-timeout 30 \
|
||||||
|
--max-time 10 \
|
||||||
|
--retry 5 \
|
||||||
|
--retry-delay 10 \
|
||||||
|
--retry-max-time 30 \
|
||||||
|
-fsSLO ${CURL_DOWNLOAD_URL}/${curl_fname}.tar.gz
|
||||||
|
|
||||||
|
check_sha256sum ${curl_fname}.tar.gz ${curl_sha256}
|
||||||
|
tar -zxf ${curl_fname}.tar.gz
|
||||||
|
(cd curl-*/ && do_curl_build)
|
||||||
|
rm -rf curl-*
|
||||||
|
}
|
||||||
|
|
||||||
cd /usr/src
|
cd /usr/src
|
||||||
|
build_curl "${CURL_VERSION}" "${CURL_HASH}"
|
||||||
fetch_source "${CURL_ROOT}.tar.gz" "${CURL_DOWNLOAD_URL}"
|
|
||||||
check_sha256sum "${CURL_ROOT}.tar.gz" "${CURL_HASH}"
|
|
||||||
|
|
||||||
tar -zxf "${CURL_ROOT}.tar.gz"
|
|
||||||
pushd "${CURL_ROOT}"
|
|
||||||
do_curl_build
|
|
||||||
popd
|
|
||||||
rm -rf "${CURL_ROOT}" "${CURL_ROOT}.tar.gz"
|
|
||||||
|
|
||||||
(cat /etc/ld.so.conf.d/usr-local.conf 2> /dev/null | grep -q "^/usr/local/lib$") ||
|
(cat /etc/ld.so.conf.d/usr-local.conf 2> /dev/null | grep -q "^/usr/local/lib$") ||
|
||||||
echo '/usr/local/lib' >> /etc/ld.so.conf.d/usr-local.conf
|
echo '/usr/local/lib' >> /etc/ld.so.conf.d/usr-local.conf
|
||||||
|
|||||||
@@ -2,12 +2,10 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
# Get script directory
|
if ! command -v curl &> /dev/null; then
|
||||||
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
|
echo >&2 'error: "curl" not found!'
|
||||||
|
exit 1
|
||||||
# Get build utilities
|
fi
|
||||||
source $SCRIPT_DIR/utils.sh
|
|
||||||
|
|
||||||
|
|
||||||
if ! command -v tar &> /dev/null; then
|
if ! command -v tar &> /dev/null; then
|
||||||
echo >&2 'error: "tar" not found!'
|
echo >&2 'error: "tar" not found!'
|
||||||
@@ -25,20 +23,27 @@ ldconfig
|
|||||||
|
|
||||||
cd /usr/src
|
cd /usr/src
|
||||||
|
|
||||||
GIT_ROOT="git-${GIT_VERSION}"
|
url="https://mirrors.edge.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz"
|
||||||
GIT_DOWNLOAD_URL="https://mirrors.edge.kernel.org/pub/software/scm/git"
|
echo "Downloading $url"
|
||||||
|
curl --connect-timeout 20 \
|
||||||
|
--max-time 10 \
|
||||||
|
--retry 5 \
|
||||||
|
--retry-delay 10 \
|
||||||
|
--retry-max-time 40 \
|
||||||
|
-# -LO $url
|
||||||
|
|
||||||
fetch_source "${GIT_ROOT}.tar.gz" "${GIT_DOWNLOAD_URL}"
|
tar xvzf "git-${GIT_VERSION}.tar.gz" --no-same-owner
|
||||||
tar xvzf "${GIT_ROOT}.tar.gz" --no-same-owner
|
rm -f "git-${GIT_VERSION}.tar.gz"
|
||||||
|
|
||||||
pushd "${GIT_ROOT}"
|
pushd "git-${GIT_VERSION}"
|
||||||
./configure --prefix=/usr/local --with-curl
|
./configure --prefix=/usr/local --with-curl
|
||||||
make -j"$(nproc)" NO_GETTEXT=YesPlease
|
make -j"$(nproc)"
|
||||||
make NO_GETTEXT=YesPlease install
|
make install
|
||||||
popd
|
popd
|
||||||
rm -rf "${GIT_ROOT}" "${GIT_ROOT}.tar.gz"
|
|
||||||
|
|
||||||
ldconfig
|
ldconfig
|
||||||
|
|
||||||
|
rm -rf "git-${GIT_VERSION}"
|
||||||
|
|
||||||
# turn the detached message off
|
# turn the detached message off
|
||||||
git config --global advice.detachedHead false
|
git config --global advice.detachedHead false
|
||||||
|
|||||||
@@ -10,12 +10,6 @@
|
|||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
# Get script directory
|
|
||||||
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
|
|
||||||
|
|
||||||
# Get build utilities
|
|
||||||
source $SCRIPT_DIR/utils.sh
|
|
||||||
|
|
||||||
PYTHON=python
|
PYTHON=python
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@@ -37,22 +31,25 @@ if [[ -z "${NINJA_VERSION}" ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Download
|
# Download
|
||||||
NINJA_DOWNLOAD_URL="https://github.com/ninja-build/ninja/archive/"
|
url="https://github.com/ninja-build/ninja/archive/v${NINJA_VERSION}.tar.gz"
|
||||||
NINJA_ROOT="v${NINJA_VERSION}"
|
|
||||||
|
|
||||||
fetch_source "${NINJA_ROOT}.tar.gz" "${NINJA_DOWNLOAD_URL}"
|
curl --connect-timeout 30 \
|
||||||
|
--max-time 10 \
|
||||||
|
--retry 5 \
|
||||||
|
--retry-delay 10 \
|
||||||
|
--retry-max-time 30 \
|
||||||
|
-# -o ninja.tar.gz -LO "$url"
|
||||||
|
|
||||||
# Since the archive name doesn't match the top-level directory, explicitly specify it.
|
mkdir ninja
|
||||||
mkdir -p "${NINJA_ROOT}"
|
tar -xzvf ./ninja.tar.gz --strip-components=1 -C ./ninja
|
||||||
tar xvzf "${NINJA_ROOT}.tar.gz" --strip-components=1 -C "${NINJA_ROOT}"
|
|
||||||
|
|
||||||
# Configure, build and install
|
# Configure, build and install
|
||||||
pushd "${NINJA_ROOT}"
|
pushd ./ninja
|
||||||
echo "Configuring ninja using [$PYTHON]"
|
echo "Configuring ninja using [$PYTHON]"
|
||||||
$PYTHON ./configure.py --bootstrap && ./ninja
|
$PYTHON ./configure.py --bootstrap && ./ninja
|
||||||
cp ./ninja /usr/bin/
|
cp ./ninja /usr/bin/
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# Clean
|
# Clean
|
||||||
rm -rf "${NINJA_ROOT}" "${NINJA_ROOT}.tar.gz"
|
rm -rf ./ninja*
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,9 @@ autoreconf
|
|||||||
|
|
||||||
./configure --with-ssl-dir=/usr/local/ssl --prefix=/usr/local --with-libs=-lpthread
|
./configure --with-ssl-dir=/usr/local/ssl --prefix=/usr/local --with-libs=-lpthread
|
||||||
|
|
||||||
make -j1 install
|
|
||||||
|
make -j"$(nproc)"
|
||||||
|
make install
|
||||||
|
|
||||||
cd /usr/src
|
cd /usr/src
|
||||||
rm -rf ${OPENSSH_SRC_DIR}
|
rm -rf ${OPENSSH_SRC_DIR}
|
||||||
|
|||||||
@@ -39,11 +39,8 @@ while [ $# -gt 0 ]; do
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
# Get script directory
|
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
|
||||||
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
|
source $MY_DIR/utils.sh
|
||||||
|
|
||||||
# Get build utilities
|
|
||||||
source $SCRIPT_DIR/utils.sh
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Function 'do_openssl_build' and 'build_openssl'
|
# Function 'do_openssl_build' and 'build_openssl'
|
||||||
@@ -87,8 +84,13 @@ function build_perl {
|
|||||||
local perl_sha256=$2
|
local perl_sha256=$2
|
||||||
check_var ${perl_sha256}
|
check_var ${perl_sha256}
|
||||||
check_var ${PERL_DOWNLOAD_URL}
|
check_var ${PERL_DOWNLOAD_URL}
|
||||||
|
curl --connect-timeout 30 \
|
||||||
|
--max-time 10 \
|
||||||
|
--retry 5 \
|
||||||
|
--retry-delay 10 \
|
||||||
|
--retry-max-time 30 \
|
||||||
|
-fsSLO ${PERL_DOWNLOAD_URL}/${perl_fname}.tar.gz
|
||||||
|
|
||||||
fetch_source "${perl_fname}.tar.gz" "${PERL_DOWNLOAD_URL}"
|
|
||||||
check_sha256sum ${perl_fname}.tar.gz ${perl_sha256}
|
check_sha256sum ${perl_fname}.tar.gz ${perl_sha256}
|
||||||
tar -xzf ${perl_fname}.tar.gz --no-same-owner
|
tar -xzf ${perl_fname}.tar.gz --no-same-owner
|
||||||
(cd ${perl_fname} && do_perl_build)
|
(cd ${perl_fname} && do_perl_build)
|
||||||
@@ -107,8 +109,13 @@ function build_openssl {
|
|||||||
local openssl_sha256=$2
|
local openssl_sha256=$2
|
||||||
check_var ${openssl_sha256}
|
check_var ${openssl_sha256}
|
||||||
check_var ${OPENSSL_DOWNLOAD_URL}
|
check_var ${OPENSSL_DOWNLOAD_URL}
|
||||||
|
curl --connect-timeout 30 \
|
||||||
|
--max-time 10 \
|
||||||
|
--retry 5 \
|
||||||
|
--retry-delay 10 \
|
||||||
|
--retry-max-time 30 \
|
||||||
|
-fsSLO ${OPENSSL_DOWNLOAD_URL}/${openssl_fname}.tar.gz
|
||||||
|
|
||||||
fetch_source "${openssl_fname}.tar.gz" "${OPENSSL_DOWNLOAD_URL}"
|
|
||||||
check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256}
|
check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256}
|
||||||
tar -xzf ${openssl_fname}.tar.gz
|
tar -xzf ${openssl_fname}.tar.gz
|
||||||
(cd ${openssl_fname} && PATH=/opt/perl/bin:${PATH} do_openssl_build)
|
(cd ${openssl_fname} && PATH=/opt/perl/bin:${PATH} do_openssl_build)
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ has() {
|
|||||||
|
|
||||||
# If OCI_EXE is not already set, search for a container executor (OCI stands for "Open Container Initiative")
|
# If OCI_EXE is not already set, search for a container executor (OCI stands for "Open Container Initiative")
|
||||||
if [ -z "$OCI_EXE" ]; then
|
if [ -z "$OCI_EXE" ]; then
|
||||||
if type -p podman >/dev/null 2>/dev/null; then
|
if which podman >/dev/null 2>/dev/null; then
|
||||||
OCI_EXE=podman
|
OCI_EXE=podman
|
||||||
elif type -p docker >/dev/null 2>/dev/null; then
|
elif which docker >/dev/null 2>/dev/null; then
|
||||||
OCI_EXE=docker
|
OCI_EXE=docker
|
||||||
else
|
else
|
||||||
die "Cannot find a container executor. Search for docker and podman."
|
die "Cannot find a container executor. Search for docker and podman."
|
||||||
@@ -218,7 +218,7 @@ elif [ -n "$CYGWIN" ]; then
|
|||||||
HOST_PWD="$( cygpath -w "$( readlink -f "$( pwd ;)" ; )" ; )" ;
|
HOST_PWD="$( cygpath -w "$( readlink -f "$( pwd ;)" ; )" ; )" ;
|
||||||
else
|
else
|
||||||
HOST_PWD=$PWD
|
HOST_PWD=$PWD
|
||||||
[ -L "$HOST_PWD" ] && HOST_PWD=$(readlink $HOST_PWD)
|
[ -L $HOST_PWD ] && HOST_PWD=$(readlink $HOST_PWD)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mount Additional Volumes
|
# Mount Additional Volumes
|
||||||
|
|||||||
@@ -28,10 +28,12 @@ if [[ -n $BUILDER_UID ]] && [[ -n $BUILDER_GID ]]; then
|
|||||||
useradd -o -m -g "$BUILDER_GID" -u "$BUILDER_UID" "$BUILDER_USER" 2> /dev/null
|
useradd -o -m -g "$BUILDER_GID" -u "$BUILDER_UID" "$BUILDER_USER" 2> /dev/null
|
||||||
|
|
||||||
# Change ownership of /dev/pts/0 to new user
|
# Change ownership of /dev/pts/0 to new user
|
||||||
chown "$BUILDER_UID" /dev/pts/0 2> /dev/null
|
chown "$BUILDER_UID" /dev/pts/0
|
||||||
|
|
||||||
export HOME=/home/${BUILDER_USER}
|
export HOME=/home/${BUILDER_USER}
|
||||||
shopt -s dotglob
|
shopt -s dotglob
|
||||||
|
# Move rustup/cargo directories as they are large, and not needed as root
|
||||||
|
mv -t $HOME/ /root/.rustup /root/.cargo
|
||||||
# Copy the rest
|
# Copy the rest
|
||||||
cp -r /root/* $HOME/
|
cp -r /root/* $HOME/
|
||||||
chown -R $BUILDER_UID:$BUILDER_GID $HOME
|
chown -R $BUILDER_UID:$BUILDER_GID $HOME
|
||||||
@@ -50,10 +52,8 @@ if [[ -n $BUILDER_UID ]] && [[ -n $BUILDER_GID ]]; then
|
|||||||
gosu $BUILDER_UID:$BUILDER_GID /work/.dockcross
|
gosu $BUILDER_UID:$BUILDER_GID /work/.dockcross
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run the command as the specified user. The group will be BUILDER_GID,
|
# Run the command as the specified user/group.
|
||||||
# as pulled from /etc/passwd, but will have additional groups from
|
exec gosu $BUILDER_UID:$BUILDER_GID "$@"
|
||||||
# /etc/group. This is necessary for manylinux to install python packages.
|
|
||||||
exec gosu $BUILDER_UID "$@"
|
|
||||||
else
|
else
|
||||||
# Just run the command as root.
|
# Just run the command as root.
|
||||||
exec "$@"
|
exec "$@"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ usage() { echo "Usage: $0 -c <config-path> -v <version>" 1>&2; exit 1; }
|
|||||||
REPO_URL="https://github.com/buildroot/buildroot.git"
|
REPO_URL="https://github.com/buildroot/buildroot.git"
|
||||||
|
|
||||||
CONFIG_PATH=""
|
CONFIG_PATH=""
|
||||||
REV="2021.08-rc1"
|
REV="2025.05"
|
||||||
while getopts "c:v:" o; do
|
while getopts "c:v:" o; do
|
||||||
case "${o}" in
|
case "${o}" in
|
||||||
c)
|
c)
|
||||||
@@ -35,9 +35,9 @@ if [ -z ${REV} ]; then
|
|||||||
echo "WARNING: No version selected, use default version: $REV (-v)."
|
echo "WARNING: No version selected, use default version: $REV (-v)."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
git clone "$REPO_URL" --recurse-submodules --shallow-submodules --depth 1 --branch "$REV" buildroot
|
||||||
git clone "$REPO_URL" --recurse-submodules --remote-submodules #--branch="$REV"
|
# Only to generate the project files, config will be overwritten later
|
||||||
cd buildroot
|
make -C buildroot O=/aarch64_efi aarch64_efi_defconfig
|
||||||
git checkout "$REV"
|
cp "$CONFIG_PATH" /aarch64_efi/.config
|
||||||
cp "$CONFIG_PATH" .config
|
FORCE_UNSAFE_CONFIGURE=1 make -C /aarch64_efi sdk
|
||||||
make
|
rm -rf buildroot /aarch64_efi/build /aarch64_efi/images /aarch64_efi/staging /aarch64_efi/target/
|
||||||
|
|||||||
@@ -3,12 +3,6 @@
|
|||||||
set -ex
|
set -ex
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
# Get script directory
|
|
||||||
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
|
|
||||||
|
|
||||||
# Get build utilities
|
|
||||||
source $SCRIPT_DIR/utils.sh
|
|
||||||
|
|
||||||
ARCH="x86_64"
|
ARCH="x86_64"
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
@@ -24,6 +18,11 @@ while [ $# -gt 0 ]; do
|
|||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if ! command -v curl &> /dev/null; then
|
||||||
|
echo >&2 'error: "curl" not found!'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if ! command -v tar &> /dev/null; then
|
if ! command -v tar &> /dev/null; then
|
||||||
echo >&2 'error: "tar" not found!'
|
echo >&2 'error: "tar" not found!'
|
||||||
exit 1
|
exit 1
|
||||||
@@ -36,12 +35,16 @@ fi
|
|||||||
|
|
||||||
cd /usr/src
|
cd /usr/src
|
||||||
|
|
||||||
CMAKE_ROOT=cmake-${CMAKE_VERSION}-linux-${ARCH}
|
CMAKE_ROOT=cmake-${CMAKE_VERSION}-Centos5-${ARCH}
|
||||||
CMAKE_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}
|
url=https://github.com/dockbuild/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_ROOT}.tar.gz
|
||||||
|
echo "Downloading $url"
|
||||||
|
curl --connect-timeout 30 \
|
||||||
|
--max-time 10 \
|
||||||
|
--retry 5 \
|
||||||
|
--retry-delay 10 \
|
||||||
|
--retry-max-time 30 \
|
||||||
|
-# -LO $url
|
||||||
|
|
||||||
echo "Downloading ${CMAKE_DOWNLOAD_URL}/${CMAKE_ROOT}.tar.gz"
|
|
||||||
|
|
||||||
fetch_source "${CMAKE_ROOT}.tar.gz" "${CMAKE_DOWNLOAD_URL}"
|
|
||||||
tar -xzvf "${CMAKE_ROOT}.tar.gz"
|
tar -xzvf "${CMAKE_ROOT}.tar.gz"
|
||||||
rm -f "${CMAKE_ROOT}.tar.gz"
|
rm -f "${CMAKE_ROOT}.tar.gz"
|
||||||
|
|
||||||
|
|||||||
@@ -56,22 +56,9 @@ url_key="https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-$
|
|||||||
# download and verify the signature
|
# download and verify the signature
|
||||||
export GNUPGHOME="$(mktemp -d)"
|
export GNUPGHOME="$(mktemp -d)"
|
||||||
|
|
||||||
GOSU_GPG_KEY=B42F6819007F00F88E364FD4036A9C25BF357DD4
|
gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 || \
|
||||||
|
gpg --keyserver hkp://pgp.key-server.io:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 || \
|
||||||
gpg --keyserver hkps://keys.openpgp.org --recv-keys "$GOSU_GPG_KEY" || \
|
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4
|
||||||
gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys "$GOSU_GPG_KEY" || \
|
|
||||||
gpg --keyserver hkp://pgp.key-server.io:80 --recv-keys "$GOSU_GPG_KEY" || \
|
|
||||||
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GOSU_GPG_KEY" || \
|
|
||||||
{
|
|
||||||
echo "gpg keyserver lookups failed, falling back to fetching the key over HTTPS" >&2
|
|
||||||
curl --connect-timeout 30 \
|
|
||||||
--max-time 30 \
|
|
||||||
--retry 5 \
|
|
||||||
--retry-delay 10 \
|
|
||||||
--retry-max-time 60 \
|
|
||||||
-fSL "https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0x${GOSU_GPG_KEY}" \
|
|
||||||
| gpg --import
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Downloading $url"
|
echo "Downloading $url"
|
||||||
curl --connect-timeout 30 \
|
curl --connect-timeout 30 \
|
||||||
|
|||||||
@@ -22,20 +22,3 @@ function check_sha256sum {
|
|||||||
rm -f ${fname}.sha256
|
rm -f ${fname}.sha256
|
||||||
}
|
}
|
||||||
|
|
||||||
function fetch_source {
|
|
||||||
if ! command -v curl &> /dev/null; then
|
|
||||||
echo >&2 'error: "curl" not found!'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
local file=$1
|
|
||||||
check_var "${file}"
|
|
||||||
local url=$2
|
|
||||||
check_var "${url}"
|
|
||||||
curl --fail \
|
|
||||||
--location \
|
|
||||||
--silent \
|
|
||||||
--show-error \
|
|
||||||
--connect-timeout 30 --max-time 10 \
|
|
||||||
--retry 5 --retry-delay 10 --retry-max-time 30 \
|
|
||||||
-o "${file}" ${url}/${file}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Mount the PWD and the /work mount dir to enable access in try_run commands
|
# Mount the PWD and the /work mount dir to enable access in try_run commands
|
||||||
exec ${WASMTIME_HOME}/bin/wasmtime run -W threads=y,shared-memory=y -S threads=y,cli=y --dir=. --dir=$PWD --dir=/work/ "$@"
|
exec ${WASMTIME_HOME}/bin/wasmtime run -W threads=y -S threads=y,cli=y --dir=. --dir=$PWD --dir=/work/ "$@"
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ LABEL maintainer="Matt McCormick matt@mmmccormick.com"
|
|||||||
# This is for 64-bit ARM Linux machine
|
# This is for 64-bit ARM Linux machine
|
||||||
|
|
||||||
# Buildroot version
|
# Buildroot version
|
||||||
# buildroot master 2021-09-20
|
# buildroot master 2025-06-22
|
||||||
ENV BR_VERSION=d4877e6f88d5eea54dc74b855556ffc0dd3f399f
|
ENV BR_VERSION=2025.05
|
||||||
|
|
||||||
#include "common.buildroot"
|
#include "common.buildroot"
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ RUN apt-get update \
|
|||||||
|
|
||||||
# The CROSS_TRIPLE is a configured alias of the "aarch64-buildroot-linux-gnu" target.
|
# The CROSS_TRIPLE is a configured alias of the "aarch64-buildroot-linux-gnu" target.
|
||||||
ENV CROSS_TRIPLE=aarch64-buildroot-linux-gnu
|
ENV CROSS_TRIPLE=aarch64-buildroot-linux-gnu
|
||||||
ENV CROSS_ROOT=/buildroot
|
ENV CROSS_ROOT=/aarch64_efi/host
|
||||||
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
|
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
|
||||||
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
|
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
|
||||||
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
|
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
|
||||||
|
|||||||
+1208
-536
File diff suppressed because it is too large
Load Diff
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-arm64-full
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv8
|
|
||||||
OPENSSL_ARGS = linux-aarch64
|
|
||||||
CPYTHON_ARGS = --host=aarch64-buildroot-linux-gnu --target=aarch64-buildroot-linux-gnu
|
|
||||||
@@ -836,9 +836,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-arm64-lts
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv8
|
|
||||||
OPENSSL_ARGS = linux-aarch64
|
|
||||||
CPYTHON_ARGS = --host=aarch64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-arm64-musl
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv8
|
|
||||||
OPENSSL_ARGS = linux-aarch64
|
|
||||||
CPYTHON_ARGS = --host=aarch64-linux-musl --target=aarch64-linux-musl
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-arm64
|
|
||||||
|
|
||||||
TEST_IMAGE_CMD =
|
|
||||||
TEST_IMAGE_ARGS =
|
|
||||||
RUN_IMAGE_CMD =
|
|
||||||
RUN_IMAGE_ARGS =
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja C SQLite llama_cpp fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv8
|
|
||||||
CPYTHON_ARGS = --host=aarch64-unknown-linux-gnu --target=aarch64-unknown-linux-gnu
|
|
||||||
@@ -858,9 +858,9 @@ CT_ZLIB_PATCH_GLOBAL=y
|
|||||||
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
||||||
# CT_ZLIB_PATCH_NONE is not set
|
# CT_ZLIB_PATCH_NONE is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv5-musl
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv5-unknown-linux-musleabi --target=armv5-unknown-linux-musleabi
|
|
||||||
@@ -800,9 +800,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv5-uclibc
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=arm-unknown-linux-uclibcgnueabi --target=arm-unknown-linux-uclibcgnueabi
|
|
||||||
@@ -850,9 +850,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv5
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv5-unknown-linux-gnueabi --target=armv5-unknown-linux-gnueabi
|
|
||||||
@@ -850,9 +850,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv6-lts
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv6-unknown-linux-gnueabihf --target=armv6-unknown-linux-gnueabihf
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv6-musl
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv6-linux-musleabihf --target=armv6-linux-musleabihf
|
|
||||||
@@ -852,9 +852,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv6
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv6-unknown-linux-gnueabihf --target=armv6-unknown-linux-gnueabihf
|
|
||||||
@@ -837,9 +837,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv7-lts
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv7
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv7-unknown-linux-gnueabi --target=armv7-unknown-linux-gnueabi
|
|
||||||
@@ -852,9 +852,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv7
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv7
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv7-unknown-linux-gnueabi --target=armv7-unknown-linux-gnueabi
|
|
||||||
@@ -849,9 +849,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv7a-lts
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv7-neon
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=arm-cortexa8_neon-linux-gnueabihf --target=arm-cortexa8_neon-linux-gnueabihf
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv7a
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv7-neon
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=arm-cortexa8_neon-linux-gnueabihf --target=arm-cortexa8_neon-linux-gnueabihf
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-armv7l-musl
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=armv7
|
|
||||||
OPENSSL_ARGS = linux-armv4
|
|
||||||
CPYTHON_ARGS = --host=armv7l-linux-musleabihf --target=armv7l-linux-musleabihf
|
|
||||||
@@ -766,9 +766,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-i686
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl C SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-generic32
|
|
||||||
CPYTHON_ARGS = --host=i686-linux-gnu --target=i686-linux-gnu
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
ARG ORG=dockcross
|
|
||||||
FROM ${ORG}/base:latest
|
|
||||||
|
|
||||||
LABEL maintainer="Gleb Popov arrowd@FreeBSD.org"
|
|
||||||
|
|
||||||
# Crosstool-ng version 2025-09-07
|
|
||||||
ENV CT_VERSION=crosstool-ng-1.28.0
|
|
||||||
|
|
||||||
#include "common.crosstool"
|
|
||||||
|
|
||||||
# The cross-compiling emulator
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y \
|
|
||||||
qemu-user \
|
|
||||||
qemu-user-static \
|
|
||||||
&& apt-get clean --yes
|
|
||||||
|
|
||||||
# The CROSS_TRIPLE is a configured alias of the "loongarch64-unknown-linux-gnu" target.
|
|
||||||
ENV CROSS_TRIPLE=loongarch64-unknown-linux-gnu
|
|
||||||
|
|
||||||
ENV CROSS_ROOT=${XCC_PREFIX}/${CROSS_TRIPLE}
|
|
||||||
ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \
|
|
||||||
AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \
|
|
||||||
CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \
|
|
||||||
CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \
|
|
||||||
CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ \
|
|
||||||
LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld \
|
|
||||||
FC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gfortran
|
|
||||||
|
|
||||||
ENV QEMU_LD_PREFIX="${CROSS_ROOT}/${CROSS_TRIPLE}/sysroot"
|
|
||||||
ENV QEMU_SET_ENV="LD_LIBRARY_PATH=${CROSS_ROOT}/lib:${QEMU_LD_PREFIX}"
|
|
||||||
|
|
||||||
COPY Toolchain.cmake /usr/lib/${CROSS_TRIPLE}/
|
|
||||||
ENV CMAKE_TOOLCHAIN_FILE=/usr/lib/${CROSS_TRIPLE}/Toolchain.cmake
|
|
||||||
|
|
||||||
ENV PKG_CONFIG_PATH=/usr/lib/loongarch64-unknown-linux-gnu/pkgconfig
|
|
||||||
|
|
||||||
# Linux kernel cross compilation variables
|
|
||||||
ENV PATH=${PATH}:${CROSS_ROOT}/bin
|
|
||||||
ENV CROSS_COMPILE=${CROSS_TRIPLE}-
|
|
||||||
ENV ARCH=loongarch64
|
|
||||||
|
|
||||||
#include "common.label-and-env"
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
set(CMAKE_SYSTEM_NAME Linux)
|
|
||||||
set(CMAKE_SYSTEM_VERSION 1)
|
|
||||||
set(CMAKE_SYSTEM_PROCESSOR loongarch64)
|
|
||||||
|
|
||||||
set(cross_triple $ENV{CROSS_TRIPLE})
|
|
||||||
set(cross_root $ENV{CROSS_ROOT})
|
|
||||||
|
|
||||||
set(CMAKE_C_COMPILER $ENV{CC})
|
|
||||||
set(CMAKE_CXX_COMPILER $ENV{CXX})
|
|
||||||
set(CMAKE_Fortran_COMPILER $ENV{FC})
|
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "-I ${cross_root}/include/")
|
|
||||||
|
|
||||||
list(APPEND CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH} ${cross_root} ${cross_root}/${cross_triple})
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
||||||
set(CMAKE_SYSROOT ${cross_root}/${cross_triple}/sysroot)
|
|
||||||
|
|
||||||
set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-loongarch64)
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,15 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-loongarch64
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=loongarch64
|
|
||||||
OPENSSL_ARGS = linux64-loongarch64
|
|
||||||
C_ARGS = -DCMAKE_C_FLAGS=-Wno-incompatible-pointer-types
|
|
||||||
CPYTHON_ARGS = --host=loongarch64-unknown-linux-gnu --target=loongarch64-unknown-linux-gnu
|
|
||||||
@@ -768,9 +768,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-m68k-uclibc
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = SQLite
|
|
||||||
@@ -851,9 +851,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-mips-lts
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl C SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-generic32
|
|
||||||
CPYTHON_ARGS = --host=mips-unknown-linux-gnu --target=mips-unknown-linux-gnu
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
ARG ORG=dockcross
|
FROM dockcross/base:latest
|
||||||
FROM ${ORG}/base:latest
|
|
||||||
|
|
||||||
LABEL maintainer="Rene Helmke rene.helmke@fkie.fraunhofer.de"
|
LABEL maintainer="Rene Helmke rene.helmke@fkie.fraunhofer.de"
|
||||||
|
|
||||||
|
|||||||
@@ -793,9 +793,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-mips-uclibc
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-generic32
|
|
||||||
CPYTHON_ARGS = --host=mips-unknown-linux-uclibc --target=mips-unknown-linux-uclibc
|
|
||||||
@@ -838,9 +838,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-mips
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl C SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-generic32
|
|
||||||
CPYTHON_ARGS = --host=mips-unknown-linux-gnu --target=mips-unknown-linux-gnu
|
|
||||||
@@ -818,9 +818,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-mipsel-lts
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = SQLite fmt
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-ppc
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl C SQLite llama_cpp fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-ppc
|
|
||||||
CPYTHON_ARGS = --host=powerpc-unknown-linux-gnu --target=powerpc-unknown-linux-gnu
|
|
||||||
@@ -841,9 +841,9 @@ CT_ZLIB_DEVEL_REVISION=""
|
|||||||
CT_ZLIB_DEVEL_SUBDIR=""
|
CT_ZLIB_DEVEL_SUBDIR=""
|
||||||
CT_ZLIB_DEVEL_BOOTSTRAP=""
|
CT_ZLIB_DEVEL_BOOTSTRAP=""
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-ppc64le-lts
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=ppc-64
|
|
||||||
OPENSSL_ARGS = linux-ppc64le
|
|
||||||
CPYTHON_ARGS = --host=powerpc64le-unknown-linux-gnu --target=powerpc64le-unknown-linux-gnu
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-ppc64le
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite llama_cpp fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=ppc-64
|
|
||||||
OPENSSL_ARGS = linux-ppc64le
|
|
||||||
CPYTHON_ARGS = --host=powerpc64le-unknown-linux-gnu --target=powerpc64le-unknown-linux-gnu
|
|
||||||
@@ -919,9 +919,9 @@ CT_ZLIB_PATCH_GLOBAL=y
|
|||||||
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
||||||
# CT_ZLIB_PATCH_NONE is not set
|
# CT_ZLIB_PATCH_NONE is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-riscv32
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-generic32
|
|
||||||
CPYTHON_ARGS = --host=riscv32-unknown-linux-gnu --target=riscv32-unknown-linux-gnu
|
|
||||||
@@ -919,9 +919,9 @@ CT_ZLIB_PATCH_GLOBAL=y
|
|||||||
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
# CT_ZLIB_PATCH_LOCAL_BUNDLED is not set
|
||||||
# CT_ZLIB_PATCH_NONE is not set
|
# CT_ZLIB_PATCH_NONE is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-riscv64
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux-generic64
|
|
||||||
CPYTHON_ARGS = --host=riscv64-unknown-linux-gnu --target=riscv64-unknown-linux-gnu
|
|
||||||
@@ -804,9 +804,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-s390x
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = ninja openssl C SQLite fmt cpython
|
|
||||||
OPENSSL_ARGS = linux64-s390x
|
|
||||||
CPYTHON_ARGS = --host=s390x-ibm-linux-gnu --target=s390x-ibm-linux-gnu
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-x64-clang
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=x86-64-modern COMP=clang
|
|
||||||
OPENSSL_ARGS = linux-x86_64-clang
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-x64-tinycc
|
|
||||||
|
|
||||||
TEST_IMAGE_ARGS = --languages C
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl fmt
|
|
||||||
STOCKFISH_ARGS = ARCH=x86-64-modern
|
|
||||||
OPENSSL_ARGS = linux-generic64 no-tests no-asm no-hw no-dtls no-shared no-dso
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-x64
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=x86-64-modern
|
|
||||||
OPENSSL_ARGS = linux-x86_64
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-x86
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=x86-32-sse41-popcnt
|
|
||||||
OPENSSL_ARGS = linux-x86
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
BASE_IMAGE_REGISTRY ?= docker.io
|
|
||||||
BASE_IMAGE_PATH ?= dockcross
|
|
||||||
BASE_IMAGE_NAME = base
|
|
||||||
BASE_IMAGE_TAG = latest
|
|
||||||
|
|
||||||
OUTPUT_IMAGE_REGISTRY ?= docker.io
|
|
||||||
OUTPUT_IMAGE_PATH ?= dockcross
|
|
||||||
OUTPUT_IMAGE_NAME = linux-x86_64-full
|
|
||||||
|
|
||||||
# Extra tests (see CONTRIBUTING.md / Makefile "Extra tests" section)
|
|
||||||
EXTRA_TESTS = stockfish ninja openssl C SQLite fmt cpython
|
|
||||||
STOCKFISH_ARGS = ARCH=x86-64-modern
|
|
||||||
OPENSSL_ARGS = linux-x86_64
|
|
||||||
CPYTHON_ARGS = --host=x86_64-buildroot-linux-gnu --target=x86_64-buildroot-linux-gnu
|
|
||||||
@@ -733,9 +733,9 @@ CT_ZLIB_PKG_NAME="zlib"
|
|||||||
CT_ZLIB_SRC_RELEASE=y
|
CT_ZLIB_SRC_RELEASE=y
|
||||||
# CT_ZLIB_SRC_DEVEL is not set
|
# CT_ZLIB_SRC_DEVEL is not set
|
||||||
CT_ZLIB_PATCH_ORDER="global"
|
CT_ZLIB_PATCH_ORDER="global"
|
||||||
CT_ZLIB_V_1_2_13=y
|
CT_ZLIB_V_1_2_12=y
|
||||||
CT_ZLIB_VERSION="1.2.13"
|
CT_ZLIB_VERSION="1.2.12"
|
||||||
CT_ZLIB_MIRRORS="https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/"
|
CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/ https://www.zlib.net/fossils"
|
||||||
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}"
|
||||||
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user