# Maintainer: Rafał Brzegowy <rafal.brzegowy@yahoo.com>

_realname=calculix-ccx
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.21
pkgrel=1
pkgdesc="CalculiX: 3D Structural Finite Element Program - Solver (mingw-w64)"
arch=('any')
mingw_arch=('mingw64' 'ucrt64')
url="http://www.calculix.de/"
license=('spdx:GPL-2.0-or-later')
depends=("${MINGW_PACKAGE_PREFIX}-arpack"
         "${MINGW_PACKAGE_PREFIX}-arpack64"
         "${MINGW_PACKAGE_PREFIX}-omp"
         "${MINGW_PACKAGE_PREFIX}-openblas"
         "${MINGW_PACKAGE_PREFIX}-openblas64"
         "${MINGW_PACKAGE_PREFIX}-spooles"
         $([[ ${MINGW_PACKAGE_PREFIX} == *-clang-* ]] || echo "${MINGW_PACKAGE_PREFIX}-gcc-libgfortran"))
makedepends=("${MINGW_PACKAGE_PREFIX}-fc")
source=("http://www.dhondt.de/ccx_${pkgver}.src.tar.bz2"
        "http://www.dhondt.de/gpl-2.0.txt"
        "ccx_mingw.patch"
        "ccx_ooc.patch")
sha256sums=('52a20ef7216c6e2de75eae460539915640e3140ec4a2f631a9301e01eda605ad'
            '8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643'
            '64a9b4aae8910f1acd1d28b65e188134775670f9ada5d15614df38c9cda16c53'
            'dd81df3de137a05b45e39fe61830337e6405ec566148598dab2828a6d9780e8a')

prepare() {
  cd "${srcdir}/CalculiX/ccx_${pkgver}/src"
  patch -Np1 < ../../../ccx_mingw.patch
  patch -Np1 < ../../../ccx_ooc.patch
}

build()
{
  cd "${srcdir}/CalculiX/ccx_${pkgver}/src"
  if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then
    CFLAGS+=" -fopenmp"
    FC=gfortran
    export FFLAGS="-fallow-argument-mismatch -fopenmp -O2"
    export OMP_LIBS="-lgomp -lquadmath"
  else
    CFLAGS+=" -fopenmp -Wno-implicit-function-declaration"
    FC=flang
    export FFLAGS="-O2"
    export OMP_LIBS="-lomp"
  fi

  make CC=${CC} FC=${FC} CCX_VERSION=${pkgver} -f Makefile_mingw_i4
  make CC=${CC} FC=${FC} CCX_VERSION=${pkgver} -f Makefile_mingw_i8
}

package()
{
  install -Dm755 ${srcdir}/CalculiX/ccx_${pkgver}/src/ccx_i4/ccx_i4.exe ${pkgdir}${MINGW_PREFIX}/bin/ccx.exe
  install -Dm755 ${srcdir}/CalculiX/ccx_${pkgver}/src/ccx_i8/ccx_i8.exe ${pkgdir}${MINGW_PREFIX}/bin/ccx_i8.exe

  install -Dm755 ${srcdir}/gpl-2.0.txt ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE
}
