Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Autotools build updates for RHEL 8 #3461

Merged
merged 37 commits into from
Oct 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
f1140f1
Simplify call to flint's configure script (autotools)
d-torrance Sep 6, 2024
8e31137
Sort library names in M2/config/files
d-torrance Sep 19, 2024
44eb733
Add Makefile for building (well, copying) eigen (autotools)
d-torrance Sep 19, 2024
c3d1f46
Update check for eigen (autotools)
d-torrance Sep 19, 2024
0ecb929
Give more useful error message when "cmp" isn't found
d-torrance Sep 25, 2024
8f88a8c
Disable tbb in mathicgb build if disabled for M2 build (autotools)
d-torrance Sep 26, 2024
02b0053
Add -lpthread to msolve configure script to detect flint
d-torrance Sep 26, 2024
3c68fdf
Built msolve as static library (autotools)
d-torrance Sep 26, 2024
b60caf9
Define MATHICGB_NO_TBB when building w/o TBB support
d-torrance Sep 26, 2024
893f0f4
Check that TBB is at least version 2020 (autotools)
d-torrance Sep 26, 2024
7ca7db9
Build mpfr if version < 4 (autotools)
d-torrance Sep 26, 2024
5198613
Bump mpfr version to 4.2.1 (autotools)
d-torrance Sep 26, 2024
c3c91dd
Use gzip for mpfr like everything else (autotools)
d-torrance Sep 26, 2024
7dc6773
Build tbb if not available (autotools)
d-torrance Sep 26, 2024
cdc8290
Simplify givaro check (autotools)
d-torrance Sep 26, 2024
daa311f
Remove unused engine Givaro source files
d-torrance Sep 26, 2024
09a6ee7
Simplify fflas-ffpack check (autotools)
d-torrance Sep 26, 2024
8c99ef5
Use AX_BLAS and AX_LAPACK from autoconf archive
d-torrance Sep 27, 2024
ab1637b
Remove --disable-simd configure options for fflas-ffpack/givaro
d-torrance Sep 27, 2024
2455903
Install OpenBLAS on Ubuntu GitHub builds
d-torrance Sep 27, 2024
b205705
Set F77 environment variable for GitHub builds
d-torrance Sep 27, 2024
e193e30
Add patch to improve fflas-ffpack BLAS detection
d-torrance Sep 27, 2024
271e72a
Pass fortran libs to fflas-ffpack configure script
d-torrance Sep 27, 2024
1288c7f
Fetch submodules before trying to copy their contents (autotools)
d-torrance Sep 27, 2024
95298a1
Add another fflas-ffpack patch; need "static inline"
d-torrance Sep 27, 2024
74f959f
Remove "--without-blas" from flint configure options (autotools)
d-torrance Sep 27, 2024
e97cff0
Link against BLAS/LAPACK during engine unit tests
d-torrance Sep 27, 2024
c9af30b
Remove unnecessary givaro isunit v. isUnit check (cmake)
d-torrance Sep 28, 2024
207bcc7
Add Dockerfile for Red Hat Enterprise Linux
d-torrance Sep 30, 2024
dd452b9
Drop "get" example from "runProgram" docs.
d-torrance Oct 1, 2024
04baaeb
Drop mpfr_add example from ForeignFunctions::mpfrT docs
d-torrance Oct 2, 2024
46bb7d3
Drop mfpr example from ForeignFunction::foreignFunction docs
d-torrance Oct 2, 2024
34c18a5
Use errno for ForeignFunctions::foreignSymbol example
d-torrance Oct 2, 2024
c5134c2
Copy config.guess, config.sub, and install-sh if necessary
d-torrance Oct 18, 2024
77f5796
Add some missing Makefile's to .gitignore
d-torrance Oct 18, 2024
98bf8b0
Allow running autogen.sh from build directory
d-torrance Oct 18, 2024
930f306
Update scripts to run autogen.sh from build directory
d-torrance Oct 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/test_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
sudo apt-get update
sudo apt-get install -y -q --no-install-recommends clang-16 gfortran libtool-bin ninja-build yasm ccache
sudo apt-get install -y -q --no-install-recommends liblzma-dev libboost-stacktrace-dev \
libncurses-dev libncurses5-dev libreadline-dev libeigen3-dev liblapack-dev libxml2-dev \
libncurses-dev libncurses5-dev libreadline-dev libeigen3-dev libopenblas-dev libxml2-dev \
libgc-dev libgdbm-dev libglpk-dev libgmp3-dev libgtest-dev libmpfr-dev libmpfi-dev libntl-dev gfan \
libgivaro-dev libboost-regex-dev fflas-ffpack libflint-dev libmps-dev libfrobby-dev \
libsingular-dev singular-data libcdd-dev cohomcalg topcom 4ti2 libnormaliz-dev normaliz coinor-csdp \
Expand Down Expand Up @@ -154,12 +154,13 @@ jobs:
- name: Configure Macaulay2 using Autotools
if: matrix.build-system == 'autotools'
run: |
pushd ../.. && ./autogen.sh && popd
../../autogen.sh
export PYVERSION=`python3 -c "from sys import version_info; \
print(f'{version_info.major}.{version_info.minor}')"`
export CPPFLAGS="-I`brew --prefix`/include -I`brew --prefix libomp`/include"
export LDFLAGS="-L`brew --prefix`/lib -L`brew --prefix libomp`/lib \
-L/Library/Frameworks/Python.framework/Versions/${PYVERSION}/lib"
export F77=gfortran-14
../../configure --enable-download --with-system-gc

- name: Build Macaulay2 using Make
Expand Down
42 changes: 3 additions & 39 deletions M2/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,47 +42,10 @@
/Macaulay2/bin/M2
/Macaulay2/c/.gdbinit
/Macaulay2/m2/.gdbinit
/libraries/atomic_ops/Makefile
/libraries/cohomcalg/Makefile
/libraries/csdp/Makefile
/libraries/topcom/Makefile
/libraries/M2/Makefile
/libraries/gc/Makefile
/libraries/gdbm/Makefile
/libraries/flint/Makefile
/libraries/gmp/Makefile
/libraries/mpfr/Makefile
/libraries/mpir/Makefile
/libraries/boost/Makefile
/libraries/memtailor/Makefile
/libraries/mathic/Makefile
/libraries/mathicgb/Makefile
/libraries/gtest/Makefile
/libraries/4ti2/Makefile
/libraries/gfan/Makefile
/libraries/fflas_ffpack/Makefile
/libraries/nauty/Makefile
/libraries/cddplus/Makefile
/libraries/lrslib/Makefile
/libraries/cddlib/Makefile
/libraries/glpk/Makefile
/libraries/linbox/Makefile
/libraries/givaro/Makefile
/libraries/fplll/Makefile
/libraries/polymake/Makefile
/libraries/normaliz/Makefile
/libraries/pari/Makefile
/libraries/readline/Makefile
/libraries/ntl/Makefile
/libraries/libtool/Makefile
/libraries/gftables/Makefile
/libraries/factory/Makefile
/libraries/libfac/Makefile
/libraries/frobby/Makefile
/libraries/lapack/Makefile
/libraries/blas/Makefile
/libraries/*/Makefile
/Macaulay2/Makefile
/Macaulay2/README
/Macaulay2/packages/Makefile
/Macaulay2/packages/SCSCP/docinput/Makefile
/Macaulay2/book/Makefile
/Macaulay2/c/Makefile
Expand Down Expand Up @@ -131,6 +94,7 @@
/Macaulay2/tests/goals/Makefile
/Macaulay2/tests/quarantine/Makefile
/Macaulay2/tests/rationality/Makefile
/Macaulay2/tests/threads/Makefile
/Macaulay2/util/Makefile
/Macaulay2/kernel/Makefile
/Macaulay2/kernel/bibasis/Makefile
Expand Down
24 changes: 24 additions & 0 deletions M2/BUILD/docker/rhel/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ARG DISTRIBUTION=rockylinux
ARG RELEASE=8

FROM $DISTRIBUTION:$RELEASE
ARG RELEASE

# Configure EPEL
RUN dnf install -y 'dnf-command(config-manager)' && \
if [ $RELEASE = 8 ]; \
then \
dnf config-manager --set-enabled powertools; \
else \
dnf config-manager --set-enabled crb; \
fi && \
dnf install -y epel-release

# Install dependencies
RUN dnf -y install autoconf automake bison boost-devel bzip2 cmake \
diffutils eigen3 flex gc-devel gcc-c++ gcc-gfortran gdbm-devel git \
glpk-devel gmp-devel lapack-devel libffi-devel libtool \
libxml2-devel make mpfr-devel ncurses-devel openblas-devel patch \
python3-devel readline-devel tbb-devel which xz-devel zlib-devel

WORKDIR /home/macaulay
28 changes: 28 additions & 0 deletions M2/BUILD/docker/rhel/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
include ../Makefile

## Parameters
DISTRIBUTION = rockylinux
RELEASE = 8
BUILD = autotools
TAG = m2-$(BUILD)-$(DISTRIBUTION)-$(RELEASE)-build
BUILD_DIR = M2/BUILD/build-docker

## Script for building Macaulay2 (autotools)
define M2_BUILD_SCRIPT_autotools
set -xe

git config --global --add safe.directory $(M2_HOME)/M2
mkdir -p M2/$(BUILD_DIR)
cd M2/$(BUILD_DIR)
$(M2_HOME)/M2/M2/autogen.sh
$(M2_HOME)/M2/M2/configure --with-system-gc --enable-download
make
endef
export M2_BUILD_SCRIPT_autotools

###############################################################################
# Build targets

build: build-image
docker run $(VOLUME) -it --entrypoint="" $(TAG) \
bash -c "$$M2_BUILD_SCRIPT_$(BUILD)"
1 change: 0 additions & 1 deletion M2/Macaulay2/d/Makefile.files.in
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,6 @@ interface.o : \
@srcdir@/../e/aring-qq-flint.hpp \
@srcdir@/../e/aring-qq-gmp.hpp \
@srcdir@/../e/aring-m2-gf.hpp \
@srcdir@/../e/aring-gf-givaro.hpp \
@srcdir@/../e/polyring.hpp \
@srcdir@/../e/skew.hpp \
@srcdir@/../e/qring.hpp \
Expand Down
Loading
Loading