summaryrefslogtreecommitdiff
path: root/neozip/.github/workflows/configure.yml
diff options
context:
space:
mode:
Diffstat (limited to 'neozip/.github/workflows/configure.yml')
-rw-r--r--neozip/.github/workflows/configure.yml289
1 files changed, 289 insertions, 0 deletions
diff --git a/neozip/.github/workflows/configure.yml b/neozip/.github/workflows/configure.yml
new file mode 100644
index 0000000000..952ab847ab
--- /dev/null
+++ b/neozip/.github/workflows/configure.yml
@@ -0,0 +1,289 @@
+name: Configure
+on: [workflow_call, workflow_dispatch]
+jobs:
+ configure:
+ name: ${{ matrix.name }}
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - name: Ubuntu GCC
+ os: ubuntu-latest
+ compiler: gcc
+ configure-args: --warn
+
+ - name: Ubuntu GCC OSB Symbol Prefix No VPCLMUL
+ os: ubuntu-latest
+ compiler: gcc
+ configure-args: --warn --sprefix=zTest_ --without-vpclmulqdq
+ build-dir: ../build
+ build-src-dir: ../zlib-ng
+
+ - name: Ubuntu GCC Compat No Opt Reduced Mem
+ os: ubuntu-latest
+ compiler: gcc
+ configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies --with-reduced-mem
+
+ - name: Ubuntu GCC Compat Symbol Prefix
+ os: ubuntu-latest
+ compiler: gcc
+ configure-args: --warn --zlib-compat --sprefix=zTest_
+
+ - name: Ubuntu GCC ARM SF
+ os: ubuntu-24.04-arm
+ compiler: arm-linux-gnueabi-gcc
+ configure-args: --warn
+ chost: arm-linux-gnueabi
+ packages: qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross
+
+ - name: Ubuntu GCC ARM SF Compat No Opt No Gzfileops
+ os: ubuntu-24.04-arm
+ compiler: arm-linux-gnueabi-gcc
+ configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies --without-gzfileops
+ chost: arm-linux-gnueabi
+ packages: qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross
+
+ - name: Ubuntu GCC ARM HF
+ os: ubuntu-24.04-arm
+ compiler: arm-linux-gnueabihf-gcc
+ configure-args: --warn
+ chost: arm-linux-gnueabihf
+ packages: qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
+
+ - name: Ubuntu GCC ARM HF No Neon No ARMv8
+ os: ubuntu-24.04-arm
+ compiler: arm-linux-gnueabihf-gcc
+ configure-args: --warn --without-neon --without-armv8
+ chost: arm-linux-gnueabihf
+ packages: qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
+
+ - name: Ubuntu GCC ARM HF Compat No Opt
+ os: ubuntu-24.04-arm
+ compiler: arm-linux-gnueabihf-gcc
+ configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
+ chost: arm-linux-gnueabihf
+ packages: qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross
+
+ - name: Ubuntu GCC AARCH64
+ os: ubuntu-24.04-arm
+ compiler: gcc
+ configure-args: --warn
+
+ - name: Ubuntu GCC AARCH64 Compat No Opt
+ os: ubuntu-24.04-arm
+ compiler: gcc
+ configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
+
+ - name: Ubuntu GCC MIPS
+ os: ubuntu-latest
+ compiler: mips-linux-gnu-gcc
+ configure-args: --warn
+ chost: mips-linux-gnu
+ packages: qemu-user gcc-mips-linux-gnu libc-dev-mips-cross
+
+ - name: Ubuntu GCC MIPS64
+ os: ubuntu-latest
+ compiler: mips64-linux-gnuabi64-gcc
+ configure-args: --warn
+ chost: mips64-linux-gnuabi64
+ packages: qemu-user gcc-mips64-linux-gnuabi64 libc-dev-mips64-cross
+
+ - name: Ubuntu GCC PPC
+ os: ubuntu-latest
+ compiler: powerpc-linux-gnu-gcc
+ configure-args: --warn --static
+ chost: powerpc-linux-gnu
+ packages: qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross
+ cflags: -static
+ ldflags: -static
+
+ - name: Ubuntu GCC PPC No Opt
+ os: ubuntu-latest
+ compiler: powerpc-linux-gnu-gcc
+ configure-args: --warn --without-optimizations
+ chost: powerpc-linux-gnu
+ packages: qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross
+
+ - name: Ubuntu GCC PPC64
+ os: ubuntu-latest
+ compiler: powerpc64-linux-gnu-gcc
+ configure-args: --warn --static
+ chost: powerpc-linux-gnu
+ packages: qemu-user gcc-powerpc64-linux-gnu libc-dev-ppc64-cross
+ cflags: -static
+ ldflags: -static
+
+ - name: Ubuntu GCC PPC64LE
+ os: ubuntu-latest
+ compiler: powerpc64le-linux-gnu-gcc
+ configure-args: --warn
+ chost: powerpc64le-linux-gnu
+ packages: qemu-user gcc-powerpc64le-linux-gnu libc-dev-ppc64el-cross
+
+ - name: Ubuntu GCC S390X
+ os: ubuntu-latest
+ compiler: s390x-linux-gnu-gcc
+ configure-args: --warn --static
+ chost: s390x-linux-gnu
+ packages: qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross
+ cflags: -static
+ ldflags: -static
+
+ - name: Ubuntu GCC S390X No vectorized CRC32
+ os: ubuntu-latest
+ compiler: s390x-linux-gnu-gcc
+ configure-args: --warn --static --without-crc32-vx
+ chost: s390x-linux-gnu
+ packages: qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross
+ cflags: -static
+ ldflags: -static
+
+ - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10' || 'Ubuntu' }} GCC S390X DFLTCC
+ os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }}
+ compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'gcc' || 's390x-linux-gnu-gcc' }}
+ configure-args: --warn --static --with-dfltcc-deflate --with-dfltcc-inflate
+ chost: ${{ github.repository != 'zlib-ng/zlib-ng' && 's390x-linux-gnu' || '' }}
+ packages: ${{ github.repository != 'zlib-ng/zlib-ng' && 'qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross' || '' }}
+ cflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }}
+ ldflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }}
+
+ - name: ${{ github.repository == 'zlib-ng/zlib-ng' && 'EL10' || 'Ubuntu' }} GCC S390X DFLTCC Compat
+ os: ${{ github.repository == 'zlib-ng/zlib-ng' && 'z15' || 'ubuntu-latest' }}
+ compiler: ${{ github.repository == 'zlib-ng/zlib-ng' && 'gcc' || 's390x-linux-gnu-gcc' }}
+ configure-args: --warn --zlib-compat --static --with-dfltcc-deflate --with-dfltcc-inflate
+ chost: ${{ github.repository != 'zlib-ng/zlib-ng' && 's390x-linux-gnu' || '' }}
+ packages: ${{ github.repository != 'zlib-ng/zlib-ng' && 'qemu-user gcc-s390x-linux-gnu g++-s390x-linux-gnu libc-dev-s390x-cross' || '' }}
+ cflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }}
+ ldflags: ${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }}
+
+ - name: Ubuntu Emscripten WASM32
+ os: ubuntu-latest
+ chost: wasm32
+ configure-args: --warn --zlib-compat --static
+ configure-prefix: emconfigure
+ cflags: -static
+ ldflags: -static
+ emu-run: node
+
+ - name: macOS Clang (Intel)
+ os: macos-15-intel
+ compiler: clang
+ configure-args: --warn
+
+ - name: macOS Clang (Intel) Compat No Opt
+ os: macos-15-intel
+ compiler: clang
+ configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
+
+ - name: macOS Clang (ARM64)
+ os: macos-latest
+ compiler: clang
+ cflags: -std=gnu11
+ configure-args: --warn
+
+ - name: macOS Clang (ARM64) Compat No Opt
+ os: macos-latest
+ compiler: clang
+ cflags: -std=gnu11
+ configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
+
+ - name: Ubuntu GCC RISCV64
+ os: ubuntu-latest
+ compiler: riscv64-linux-gnu-gcc
+ configure-args: --warn
+ chost: riscv64-linux-gnu
+ packages: qemu-user crossbuild-essential-riscv64
+
+ - name: Ubuntu GCC RISCV64 No RVV No ZBC
+ os: ubuntu-latest
+ compiler: riscv64-linux-gnu-gcc
+ configure-args: --warn --without-rvv --without-zbc
+ chost: riscv64-linux-gnu
+ packages: qemu-user crossbuild-essential-riscv64
+
+ - name: Ubuntu GCC RISCV64 Compat No Opt
+ os: ubuntu-latest
+ compiler: riscv64-linux-gnu-gcc
+ configure-args: --warn --zlib-compat --without-optimizations --without-new-strategies
+ chost: riscv64-linux-gnu
+ packages: qemu-user crossbuild-essential-riscv64
+
+ - name: Ubuntu GCC 14 LoongArch64
+ os: ubuntu-latest
+ compiler: loongarch64-linux-gnu-gcc-14
+ configure-args: --warn --static
+ chost: loongarch64-linux-gnu
+ packages: qemu-user gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu libc-dev-loong64-cross
+ cflags: -static
+ ldflags: -static
+
+ - name: Ubuntu GCC 14 LoongArch64 Compat No Opt
+ os: ubuntu-latest
+ compiler: loongarch64-linux-gnu-gcc-14
+ configure-args: --warn --static --zlib-compat --without-optimizations --without-new-strategies
+ chost: loongarch64-linux-gnu
+ packages: qemu-user gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu libc-dev-loong64-cross
+ cflags: -static
+ ldflags: -static
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ with:
+ show-progress: 'false'
+
+ - name: Add ubuntu mirrors
+ if: runner.os == 'Linux' && matrix.packages
+ # Github Actions caching proxy is at times unreliable
+ run: |
+ echo -e 'http://azure.archive.ubuntu.com/ubuntu\tpriority:1\n' | sudo tee /etc/apt/mirrors.txt
+ curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt
+ sudo sed -i 's#http://azure.archive.ubuntu.com/ubuntu/#mirror+file:/etc/apt/mirrors.txt#' /etc/apt/sources.list
+
+ - name: Install packages (Ubuntu)
+ if: runner.os == 'Linux' && matrix.packages
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y ${{ matrix.packages }}
+
+ - name: Install packages (macOS)
+ if: runner.os == 'macOS'
+ run: brew install ninja ${{ matrix.packages }}
+ env:
+ HOMEBREW_NO_INSTALL_CLEANUP: 1
+
+ - name: Install Emscripten
+ if: contains(matrix.name, 'WASM32')
+ uses: mymindstorm/setup-emsdk@v14
+
+ - name: Generate project files
+ run: |
+ mkdir ${{ matrix.build-dir || '.not-used' }}
+ cd ${{ matrix.build-dir || '.' }}
+ ${{ matrix.configure-prefix }} ${{ matrix.build-src-dir || '.' }}/configure ${{ matrix.configure-args }}
+ env:
+ CC: ${{ matrix.compiler }}
+ CFLAGS: ${{ matrix.cflags }}
+ LDFLAGS: ${{ matrix.ldflags }}
+ CHOST: ${{ matrix.chost }}
+ EMU_RUN: ${{ matrix.emu-run }}
+ CI: true
+
+ - name: Compile source code
+ run: make -j5
+ working-directory: ${{ matrix.build-dir }}
+
+ - name: Run test cases
+ run: make test
+ working-directory: ${{ matrix.build-dir }}
+
+ - name: Upload build errors
+ uses: actions/upload-artifact@v7
+ if: failure()
+ with:
+ name: ${{ matrix.name }} (configure)
+ path: |
+ **/Makefile
+ **/configure.log
+ retention-days: 30