-This directory contains Dockerfiles for building and testing ccache in
-different build environments.
+This directory contains Dockerfiles for building and testing ccache in different
+build environments. These are unofficial Dockerfiles only intended for use by
+ccache developers locally.
-For instance, run something like this to build ccache in Ubuntu 20.04:
+For instance, run something like this to build ccache in Ubuntu 24.04:
- misc/build-in-docker ubuntu-20.04
+ misc/build-in-docker ubuntu-24.04
-The above command will first build the Ubuntu 20.04 Docker image if needed and
+The above command will first build the Ubuntu 24.04 Docker image if needed and
finally build ccache and run the ccache test suite.
-See also misc/test-all-systems.
+See also misc/test-some-systems.
+++ /dev/null
-ARG BASE_IMAGE=alpine:3.15
-FROM ${BASE_IMAGE} AS build
-
-RUN apk add --no-cache \
- bash \
- ccache \
- clang \
- cmake \
- elfutils \
- g++ \
- gcc \
- hiredis-dev \
- libc-dev \
- make \
- perl \
- python3 \
- redis \
- zstd-dev
-
-# Redirect all compilers to ccache.
-RUN for t in gcc g++ cc c++ clang clang++; do ln -vs /usr/bin/ccache /usr/local/bin/$t; done
-ARG BASE_IMAGE=alpine:3.11
+ARG BASE_IMAGE=alpine:3.21
FROM ${BASE_IMAGE} AS build
RUN apk add --no-cache \
+++ /dev/null
-ARG BASE_IMAGE=fedora:36
-FROM ${BASE_IMAGE} AS build
-
-RUN dnf install -y \
- autoconf \
- bash \
- ccache \
- clang \
- cmake \
- diffutils \
- elfutils \
- findutils \
- gcc \
- gcc-c++ \
- libstdc++-static \
- hiredis-devel \
- libzstd-devel \
- make \
- python3 \
- redis \
- && dnf clean all
-ARG BASE_IMAGE=fedora:40
+ARG BASE_IMAGE=fedora:42
FROM ${BASE_IMAGE} AS build
RUN dnf install -y \
+++ /dev/null
-#!/bin/sh
-#
-# While it's obviously quite impossible to support and test every single
-# distribution, this script enables easy checking of the most common standard
-# distributions at least.
-
-set -eu
-
-top_dir="$(dirname "$(realpath "$0")")/.."
-build_in_docker="${top_dir}/misc/build-in-docker"
-
-build() {
- local name=$1
- local cc=$2
- local cxx=$3
- local test_cc=$4
- shift 4
- local cmake_params="$*"
- if command -v >/dev/null ccache; then
- cmake_params="${cmake_params} -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
- fi
- echo "Build in Docker: $name CC=$cc CXX=$cxx TEST_CC=$test_cc CMAKE_PARAMS=\"$*\""
- ASM=$cc CC=$cc CXX=$cxx TEST_CC=$test_cc CMAKE_PARAMS="${cmake_params}" $build_in_docker $name
-}
-
-# NAME CC CXX TEST_CC CMAKE_PARAMS
-
-build alma-8 gcc g++ gcc
-build alma-8 clang clang++ clang
-
-build debian-11 gcc g++ gcc
-build debian-11 clang clang++ clang
-
-build debian-12 gcc g++ gcc
-build debian-12 clang clang++ clang
-
-build ubuntu-20.04 gcc g++ gcc
-build ubuntu-20.04 clang clang++ clang
-
-build ubuntu-22.04 gcc-12 g++-12 gcc
-build ubuntu-22.04 clang clang++ clang
-
-build ubuntu-24.04 gcc-13 g++-13 gcc
-build ubuntu-24.04 gcc-14 g++-14 gcc
-build ubuntu-24.04 clang clang++ clang
-
-build centos-7 gcc g++ gcc
-build centos-7 gcc g++ clang
-
-build fedora-36 gcc g++ gcc
-build fedora-36 clang clang++ clang
-
-build fedora-40 gcc g++ gcc -D DEPS=LOCAL
-build fedora-40 clang clang++ clang -D DEPS=LOCAL
-
-build alpine-3.11 gcc g++ gcc
-build alpine-3.11 gcc g++ clang
-
-build alpine-3.15 gcc g++ gcc
-build alpine-3.15 clang clang++ clang
--- /dev/null
+#!/bin/sh
+#
+# This script enables easy checking of some common standard Linux distributions.
+
+set -eu
+
+top_dir="$(dirname "$(realpath "$0")")/.."
+build_in_docker="${top_dir}/misc/build-in-docker"
+name_filter="${1:-}"
+
+build() {
+ local name=$1
+ local cc=$2
+ local cxx=$3
+ local test_cc=$4
+ shift 4
+ local cmake_params="$*"
+
+ echo "======================================================================"
+ echo "=== ${name} ${cc} ${cxx} ${test_cc} ${cmake_params}"
+
+ if [ -n "${name_filter}" ] && [ "${name}" != "${name_filter}" ]; then
+ echo "Skipping due to name_filter"
+ return
+ fi
+
+ if command -v >/dev/null ccache; then
+ cmake_params="${cmake_params} -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
+ fi
+ echo "Build in Docker: $name CC=$cc CXX=$cxx TEST_CC=$test_cc CMAKE_PARAMS=\"$*\""
+ ASM=$cc CC=$cc CXX=$cxx TEST_CC=$test_cc CMAKE_PARAMS="${cmake_params}" $build_in_docker $name
+}
+
+# NAME CC CXX TEST_CC CMAKE_PARAMS
+
+build alma-8 gcc g++ gcc -D DEPS=DOWNLOAD
+build alma-8 clang clang++ clang -D DEPS=DOWNLOAD
+
+build alpine-3.21 gcc g++ gcc -D DEPS=DOWNLOAD
+build alpine-3.21 clang clang++ clang -D DEPS=DOWNLOAD
+
+build debian-11 gcc g++ gcc -D DEPS=DOWNLOAD
+build debian-11 clang clang++ clang -D DEPS=DOWNLOAD
+
+build debian-12 gcc g++ gcc -D DEPS=DOWNLOAD
+build debian-12 clang clang++ clang -D DEPS=DOWNLOAD
+
+build fedora-42 gcc g++ gcc -D DEPS=DOWNLOAD
+build fedora-42 clang clang++ clang -D DEPS=DOWNLOAD -D ENABLE_TESTING=OFF # doctest issue #900
+
+build ubuntu-20.04 gcc g++ gcc -D DEPS=DOWNLOAD
+build ubuntu-20.04 clang clang++ clang -D DEPS=DOWNLOAD
+
+build ubuntu-22.04 gcc-11 g++-11 gcc -D DEPS=DOWNLOAD
+build ubuntu-22.04 gcc-12 g++-12 gcc -D DEPS=DOWNLOAD
+build ubuntu-22.04 clang clang++ clang -D DEPS=DOWNLOAD
+
+build ubuntu-24.04 gcc-13 g++-13 gcc -D DEPS=DOWNLOAD
+build ubuntu-24.04 gcc-14 g++-14 gcc -D DEPS=DOWNLOAD
+build ubuntu-24.04 clang clang++ clang -D DEPS=DOWNLOAD