# Maintainer: Bjoern Lemke <lemke@lemke-it.com>

_realname=lfcbase
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=1.12.5
pkgrel=1
pkgdesc="LFC C++ base classes (mingw-w64)"
arch=('any')
url='http://www.lemke-it.com/'
license=('GPL3')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
        "${MINGW_PACKAGE_PREFIX}-ncurses")

makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")

source=("http://www.lemke-it.com/${_realname}-${pkgver}.tar.gz")

sha256sums=("5d1d7e31c1012f92dc554c303f8eabf7b4615a8707b0f9e6aba0568d8da11eb1")

prepare() {
  # for mingw build, we have to patch the tap-driver to filter out windows carrige returns from the test program output
  # yes, this is an ugly patch
  cat $srcdir/${_realname}-${pkgver}/build-aux/tap-driver.sh  | sed "s/LC_ALL\=C/sed \'s\/\\\\r\/\/g\'| LC_ALL=C/" > $srcdir/${_realname}-${pkgver}/build-aux/tap-driver-patch.sh 
  mv $srcdir/${_realname}-${pkgver}/build-aux/tap-driver-patch.sh $srcdir/${_realname}-${pkgver}/build-aux/tap-driver.sh 
  cd $srcdir/${_realname}-${pkgver}
}

build() {

  export CXXFLAGS="-DLFCNOCURSES -DDISABLE_SYSLOG"
  cd "$srcdir"/${_realname}-${pkgver}
  [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
  mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
  ../${_realname}-${pkgver}/configure \
    --prefix=${MINGW_PREFIX} \
    --build=${MINGW_CHOST} \
    --host=${MINGW_CHOST} \
    --target=${MINGW_CHOST} \
    --enable-static \
    --enable-shared

  make

  ${MINGW_PREFIX}/bin/gcc -shared \
    -Wl,--out-implib,liblfcbase.dll.a \
    -o liblfcbase-0.dll \
    ${srcdir}/build-${CARCH}/src/*.o \
    -lsystre -lws2_32 -lpthread -lstdc++
}

check() {
  cd "${srcdir}"/build-${CARCH}
  make check
}

package() {
  cd "${srcdir}"/build-${CARCH}
  make install DESTDIR="${pkgdir}"

  mkdir -p "${pkgdir}"${MINGW_PREFIX}/{bin,lib}
  install -m 0755 liblfcbase-0.dll "${pkgdir}${MINGW_PREFIX}/bin"
  install -m 0644 liblfcbase.dll.a "${pkgdir}${MINGW_PREFIX}/lib"
}
