18 Commits
Author SHA1 Message Date
Markus Mützel 9304416095 Select different targets for building in CI on Alpine
build-alpine / alpine (armv7) (push) Waiting to run
build-alpine / alpine (loongarch64) (push) Waiting to run
build-alpine / alpine (x86) (push) Waiting to run
cross-build-ubuntu / cross armhf (push) Waiting to run
cross-build-ubuntu / cross ppc64el (push) Waiting to run
cross-build-ubuntu / cross riscv64 (push) Waiting to run
cross-build-ubuntu / cross s390x (push) Waiting to run
arpack-ng / ubuntu_latest_cmake (push) Waiting to run
arpack-ng / ubuntu_latest_cmake_install (push) Waiting to run
arpack-ng / ubuntu_latest_autotools (push) Waiting to run
arpack-ng / ubuntu_latest_autotools_install (push) Waiting to run
arpack-ng / ubuntu_latest_cmake_python (push) Waiting to run
arpack-ng / ubuntu_latest_autotools_ilp64 (push) Waiting to run
arpack-ng / macos_latest_cmake (push) Waiting to run
arpack-ng / macos_latest_cmake_python (push) Waiting to run
arpack-ng / macos_latest_autotools (push) Waiting to run
arpack-ng / MinGW-w64 CLANG64 INTERFACE64=OFF/MPI=OFF (push) Waiting to run
arpack-ng / MinGW-w64 UCRT64 INTERFACE64=OFF/MPI=OFF (push) Waiting to run
arpack-ng / MinGW-w64 CLANG64 INTERFACE64=OFF/MPI=ON (push) Waiting to run
arpack-ng / MinGW-w64 UCRT64 INTERFACE64=OFF/MPI=ON (push) Waiting to run
arpack-ng / MinGW-w64 CLANG64 INTERFACE64=ON/MPI=OFF (push) Waiting to run
arpack-ng / MinGW-w64 UCRT64 INTERFACE64=ON/MPI=OFF (push) Waiting to run
The Alpine repository for the PowerPC target got more and more unreliable
recently.
Additionally, the PowerPC target is covered with the cross-build rules on
Ubuntu now.

Drop some (expensive) targets to reduce the overlap in coverage with the
workflow that cross-builds on Ubuntu.
Add LoongArch64 target which is not (yet?) available for Ubuntu.
Keep targets that can be build natively (which should be reasonably fast).
Use an Ubuntu on ARM runner for the armv7 target.
Rename workflow because out of the three remaining targets only one is
actually emulated - the others can execute natively.
2026-08-16 14:01:08 +02:00
Markus Mützel 9f90017bf8 Add CI workflow that cross-builds for several targets on Ubuntu
Cross build ARPACK for some targets on Ubuntu using their cross-compilation
toolchains and packages.
Run the test suite using `qemu` if necessary.
2026-08-16 14:01:08 +02:00
Markus Mützel 6ae2072b0c PARPACK: Initialize machine dependent constants only once in PDNAITR
The current implementation checks the value of the variable `aitr_first` but
sets `first`.

Change that to set `aitr_first` to false after the initialization has run.

This also brings that part of the implementation of `PDNAITR` in line with
the corresponding logic that is used in the implementation of the other
`P?NAITR`.
2026-08-01 15:59:19 +02:00
Markus Mützel 8a4ede774e CI: Use VecLibFort as shim library for Apple Accelerate/VecLib on macOS.
Currently, the CI rules are building ARPACK using the old `f2c` Fortran
ABI. However, all packages of applications written in Fortran that are
distributed by Homebrew are using the default GNU Fortran ABI.
Testing the package with the ABI expected by most macOS users would
probably be better than what is currently done in the CI setup.

Instead of building a version of ARPACK using that old, non-default `f2c`
Fortran ABI, use a library that "translates" from the default GNU Fortran
ABI to the old `f2c` ABI used by Apple Accelerate/VecLib.
2026-07-26 18:28:41 +02:00
Markus Mützel b36bddadd2 CI: Use dependabot to periodically check for updated actions
Currently, a warning like the following is emitted for each job in the CI:
> Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Let dependabot check for updates to avoid the chore of manually updating the versions of GitHub actions every time the Node.js version on the runner images is updated.
2026-07-24 15:18:16 +02:00
Markus Mützel 2c1203e23f Update CHANGELOG. 2024-09-22 18:34:27 +02:00
Markus Mützel 32070150c7 CMake: Add function to add tests that change working directory.
Add a new CMake function that helps to add tests that change their
working directory to somewhere else than the directory with the
libarpack library.

In that case, the environment variable PATH is set to include the
directory with the library on Windows while running the tests.

Use that new CMake function for the three ctests involving the Eigen
library.
2024-09-22 18:09:41 +02:00
Markus Mützel 7671cebf29 CI: Remove work-around from rules for MinGW that is no longer needed 2024-09-22 17:59:20 +02:00
Markus Mützel 44fe87f3fc Make ctests platform independent
Windows doesn't have a mechanism similar to rpaths. Instead, shared
libraries are searched in the current working directory and  in the
directory with the executable followed by directories in the environment
variable PATH.

Add the path to the shared libarpack library to PATH for ctests that run
executables that are located in a different directory and that set the
current working directory not to the directory with the libarpack.dll.
Use a generator expression that should be working independent on the CMake
generator.
2024-09-22 17:59:20 +02:00
Markus Mützel 081e13cd3f CI: Enable eigen on macOS runners 2024-06-27 13:26:14 +02:00
Markus Mützel aea67a3426 CI: Re-run tests on error with more output for debugging 2024-06-22 13:04:24 +02:00
Markus Mützel ca979855b4 CI: Install Eigen on MSYS2 runners 2024-06-22 13:04:24 +02:00
Markus Mützel 8d58c1ac1d CI: Setup workflow for MSYS2 CLANG64 2024-06-22 13:04:24 +02:00
Markus Mützel e5643dce21 CI: Use clearer settings for BLAS/LAPACK implementation on macOS
With the previous configuration it was unclear whether the reference
implementation (from Netlib) or Apple's implementation of the BLAS
and LAPACK libraries should be used. (`LIBS` pointed to Apple's
implementation, but `BLA_VENDOR` selected the reference implementation.)

Use only `BLA_VENDOR` to select Apple's implementation.
2024-06-22 11:51:22 +02:00
Markus Mützel 0efe8a6113 CI: Install numpy from Homebrew on macOS 2024-06-22 11:51:19 +02:00
Markus Mützel 416011c701 CI (Alpine Linux): Use ccache
The compilation (especially of the C++ objects) is pretty slow with qemu.
Use ccache to speed up build time on subsequent runs.
2024-06-17 11:15:40 +02:00
Markus Mützel fec63adf5f Add CI runners on emulated hardware
Use a GitHub action to install Alpine Linux for different, less common
architectures that are emulated with qemu (apart from x86).
Additionally, Alpine Linux is one of those distributions that are based
on musl (instead of glibc).

This increases coverage for different configurations in CI.
2024-06-12 19:14:45 +02:00
Markus Mützel 5465aee30e cmake: handle libraries without "lib" prefix. 2022-05-01 13:45:16 +02:00