# Template file for 'botan'
pkgname=botan
version=2.3.0
revision=1
wrksrc="${pkgname^}-${version}"
build_style=gnu-makefile
hostmakedepends="doxygen epstopdf python"
makedepends="libressl-devel bzip2-devel liblzma-devel sqlite-devel zlib-devel"
short_desc="Crypto library written in C++"
maintainer="Jürgen Buchmüller <pullmoll@t-online.de>"
license="3-clause-BSD"
homepage="http://botan.randombit.net/"
distfiles="http://botan.randombit.net/releases/Botan-${version}.tgz"
checksum=39f970fee5986a4c3e425030aef50ac284da18596c004d1a9cce7688c4e6d47c

LDFLAGS="-pthread"

do_configure() {
	local _args _arch _cpu _march _tune

	_args="--prefix=/usr"
	_args+=" --os=linux"
	_args+=" --cc=gcc"
	_args+=" --cc-bin=$CXX"
	_args+=" --with-doxygen"
	_args+=" --with-openssl"
	_args+=" --with-bzip2"
	_args+=" --with-lzma"
	_args+=" --with-zlib"
	_args+=" --with-sqlite3"
	_args+=" --enable-shared"

	case "$XBPS_TARGET_MACHINE" in
	i686*)
		_cpu="i686"
		_arch="x86"
		_march="i686"
		_tune="i686"
		;;
	x86_64*)
		_cpu="x86_64"
		_arch="x86"
		_march="x86_64"
		_tune="generic"
		;;
	armv5*)
		_cpu="armv5"
		_arch="armv5te"
		_march="armv5te"
		_args+=" --disable-modules=simd"
		;;
	armv6*)
		_cpu="armv6"
		_arch="armv6"
		_march="armv6"
		_args+=" --disable-modules=simd"
		;;
	armv7*)
		_cpu="armv7-a"
		_arch="armv7"
		_march="armv7-a"
		_args+=" --disable-modules=simd"
		;;
	aarch64*)
		_cpu="armv8-a"
		_arch="arm64"
		_march="armv8-a"
		;;
	mipselhf*)
		_cpu="mips32"
		_arch="mips"
		_march="mips32"
		_mtune="mips32r2 --hard-float"
		;;
	mips*)
		_cpu="mips32"
		_arch="mips"
		_march="mips32"
		_mtune="mips32r2 --soft-float"
		;;
	esac

	python configure.py \
		--cc-abi-flags="-arch ${_arch} -stdlib=libc++" \
		--cpu=${_cpu} \
		${_args}

	sed -i Makefile \
		-e"s;^\(CXX.*\)=.*;\1= $CXXFLAGS;" \
		-e"s;^\(LIB_OPT.*\)=.*;\1= $LDFLAGS;" \
		-e"s;^\(AR.*\)=.*;\1= $AR;" \
		-e"s;^\(DESTDIR.*\)=.*;\1= $DESTDIR;" \
		-e"s;\(--destdir\)=/usr;\1=$DESTDIR/usr;" \
		-e's;$(DESTDIR)/bin;$(DESTDIR)/usr/bin;' \
		-e's;$(DESTDIR)/lib;$(DESTDIR)/usr/lib;' \
		-e's;$(DESTDIR)/include;$(DESTDIR)/usr/include;' \
		-e's;$(DESTDIR)/share;$(DESTDIR)/usr/share;' \
		-e's;$(AR) $(STATIC_LIB);$(AR) crus $(STATIC_LIB);'

	# configure.py sometimes(?) creates invalid "-march= " and "-mtune= " without parameter
	sed -i Makefile \
		-e"s;-std= ;-std=c++11 ;" \
		-e"s;-march= ;-march=${_march} ;" \
		-e"s;-mtune= ;-mtune=${_tune} ;"
}
post_install() {
	vlicense license.txt
}

botan-doc_package() {
	short_desc+=" - documentation"
	noarch=yes
	pkg_install() {
		vmove usr/share/doc
	}
}

botan-devel_package() {
	short_desc+=" - development files"
	depends="${makedepends} ${sourcepkg}>=${version}_${revision}"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/*.a
		vmove usr/lib/*.so
		vmove usr/lib/pkgconfig
	}
}
