# Cactus configuration for Arch and Arch-based distros # NOTES: # - `-Wno-error=incompatible-pointer-types` removes error temporarily, see https://bitbucket.org/einsteintoolkit/tickets/issues/2802/compilation-faiulres-in-twopunctures_bbhsf # - AEILocalInterp defines `bool` which in `c23` is a keywork, specify C17 standard as a workaround # - The toolkit raises an error with lastest HDF5 version. Is this a toolkit or Arch errror? Version 1.14.5-1 in repos works # Packages to install (all available on official repos) # - gcc # - gcc-fortran # - hdf5 # - blas-openblas # - openmpi # - gsl # - hwloc # - libjpeg-turbo # - openssl # - fftw # - boost ## Decide which flags will be used at compile-time OPTIMISE = yes WARN = yes DEBUG = no PROFILE = no OPENMP = yes ## Preprocessors and Compilers CPP = cpp FPP = cpp CC = gcc CXX = g++ F77 = gfortran F90 = gfortran ## Default flags CPPFLAGS = -DMPICH_IGNORE_CXX_SEEK FPPFLAGS = -traditional CFLAGS = -g3 -march=native -Wno-error=incompatible-pointer-types -std=gnu17 CXXFLAGS = -g3 -march=native -Wno-error=incompatible-pointer-types -std=gnu++17 F77FLAGS = -g3 -march=native -fcray-pointer -m128bit-long-double -ffixed-line-length-none -fno-range-check F90FLAGS = -g3 -march=native -fcray-pointer -m128bit-long-double -ffixed-line-length-none -fno-range-check LDFLAGS = -rdynamic ## Optimization flags CPP_OPTIMISE_FLAGS = -DKRANC_VECTORS # -DCARPET_OPTIMISE -DNDEBUG FPP_OPTIMISE_FLAGS = # -DCARPET_OPTIMISE -DNDEBUG C_OPTIMISE_FLAGS = -O3 CXX_OPTIMISE_FLAGS = -O3 F77_OPTIMISE_FLAGS = -O3 F90_OPTIMISE_FLAGS = -O3 ## Warning flags CPP_WARN_FLAGS = -Wall FPP_WARN_FLAGS = -Wall C_WARN_FLAGS = -Wall CXX_WARN_FLAGS = -Wall F77_WARN_FLAGS = -Wall F90_WARN_FLAGS = -Wall ## Debug flags CPP_DEBUG_FLAGS = -DCARPET_DEBUG -fsanitize=undefined -fsanitize=thread FPP_DEBUG_FLAGS = -DCARPET_DEBUG -fsanitize=undefined -fsanitize=thread C_DEBUG_FLAGS = -O0 -fsanitize=undefined -fsanitize=thread CXX_DEBUG_FLAGS = -O0 -fsanitize=undefined -fsanitize=thread F77_DEBUG_FLAGS = -O0 -fsanitize=undefined -fsanitize=thread F90_DEBUG_FLAGS = -O0 -fsanitize=undefined -fsanitize=thread ## Code profiling flags CPP_PROFILE_FLAGS = FPP_PROFILE_FLAGS = C_PROFILE_FLAGS = -pg CXX_PROFILE_FLAGS = -pg F77_PROFILE_FLAGS = -pg F90_PROFILE_FLAGS = -pg ## OpenMP CPP_OPENMP_FLAGS = -fopenmp FPP_OPENMP_FLAGS = -fopenmp C_OPENMP_FLAGS = -fopenmp CXX_OPENMP_FLAGS = -fopenmp F77_OPENMP_FLAGS = -fopenmp F90_OPENMP_FLAGS = -fopenmp ## Libraries location LIBDIRS = MPI_DIR = /usr HDF5_DIR = /usr GSL_DIR = /usr BOOST_DIR = /usr PTHREADS_DIR = NO_BUILD LIBS = gfortran open-pal z # ? C_LINE_DIRECTIVES = yes # ? F_LINE_DIRECTIVES = yes # ?