# Template file for 'openssl'
pkgname=openssl
version=1.1.1k
revision=1
bootstrap=yes
build_style=configure
configure_script="./Configure"
configure_args="--prefix=/usr --openssldir=/etc/ssl --libdir=lib
 shared no-ssl3-method $(vopt_if asm ' ' 'no-asm')
 -Wa,--noexecstack"
make_cmd=make
make_build_args='MAKEDEPPROG="$(CC)'
make_check_target=test
make_install_args="MANSUFFIX=ssl"
short_desc="Toolkit for Secure Sockets Layer and Transport Layer Security"
maintainer="John <johnz@posteo.net>"
license="OpenSSL"
homepage="https://www.openssl.org"
distfiles="https://www.openssl.org/source/openssl-${version}.tar.gz"
checksum=892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5
conf_files="/etc/ssl/openssl.cnf"
replaces="libressl>=0"

build_options=asm

if [ "$CHROOT_READY" ]; then
	hostmakedepends="perl"
	build_options_default="asm"
else
	# openssl-c_rehash depends on perl, ignore on bootstrap
	subpackages="libcrypto1.1 libssl1.1 openssl-devel"
fi

case $XBPS_TARGET_MACHINE in
	x86_64*) configure_args+=" enable-ec_nistp_64_gcc_128 linux-x86_64";;
	i686*) configure_args+=" linux-elf";;
	aarch64*) configure_args+=" linux-aarch64";;
	ppc64le*) configure_args+=" linux-ppc64le";;
	ppc64*) configure_args+=" linux-ppc64";;
	ppcle*) configure_args+=" linux-ppcle";;
	ppc*) configure_args+=" linux-ppc";;
	arm*) configure_args+=" linux-armv4";;
	mips*) configure_args+=" linux-mips32 -mips32";;
	*) broken="$XBPS_TARGET_MACHINE";;
esac

pre_configure() {
	configure_args+=" ${CPPFLAGS} ${CFLAGS} ${LDFLAGS}"
}

pre_build() {
	make ${makejobs} depend
}

post_install() {
	if [ ! "$CHROOT_READY" ]; then
		rm -f "${DESTDIR}/usr/bin/c_rehash"
	fi
}

libcrypto1.1_package() {
	short_desc+=" - crypto library"
	pkg_install() {
		vmove "usr/lib/libcrypto.so.*"
		vmove usr/lib/engines-1.1
	}
}

libssl1.1_package() {
	short_desc+=" - SSL/TLS library"
	pkg_install() {
		vmove "usr/lib/libssl.so.*"
	}
}

openssl-c_rehash_package() {
	short_desc+=" - c_rehash utility"
	depends="openssl perl"
	pkg_install() {
		vmove usr/bin/c_rehash
	}
}

openssl-devel_package() {
	depends="${sourcepkg}>=${version}_${revision} libssl1.1>=${version}_${revision} libcrypto1.1>=${version}_${revision}"
	replaces="libressl-devel>=0"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/share/man/man3
		vmove usr/share/doc
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.a"
		vmove "usr/lib/*.so"
	}
}