# Template file for 'elfutils'
pkgname=elfutils
version=0.190
revision=1
build_style=gnu-configure
configure_args="--program-prefix=eu-"
hostmakedepends="pkg-config m4"
_devel_depends="bzip2-devel liblzma-devel zlib-devel libzstd-devel"
makedepends="${_devel_depends} libcurl-devel libarchive-devel sqlite-devel
 libmicrohttpd-devel"
checkdepends="zstd bzip2 curl rpm cpio iproute2 procps-ng"
short_desc="Utilities to handle ELF object files"
maintainer="Érico Nogueira <ericonr@disroot.org>"
license="GPL-3.0-or-later"
homepage="https://sourceware.org/elfutils/"
changelog="https://sourceware.org/git/?p=elfutils.git;a=blob_plain;f=NEWS;hb=HEAD"
distfiles="https://sourceware.org/pub/elfutils/${version}/elfutils-${version}.tar.bz2"
checksum=8e00a3a9b5f04bc1dc273ae86281d2d26ed412020b391ffcc23198f10231d692
# subpackages require explicit ordering
subpackages="debuginfod libdebuginfod libelf elfutils-devel"
CFLAGS="-Wno-error=deprecated-declarations" # curl 7.55+

if [ "$XBPS_TARGET_LIBC" = musl ]; then
	makedepends+=" argp-standalone musl-fts-devel musl-obstack-devel"

	# mainly warnings from using error.h
	CFLAGS+=" -Wno-error"
	# XXX: breaks some expected functionality
	CFLAGS+=" -DFNM_EXTMATCH=0"
	# warnings and avoid blowing the stack
	CXXFLAGS="-Wno-error -Wl,-z,stack-size=2097152"
fi

do_check() {
	# test failures also expected if building with debug disabled
	make check ${makejobs} || {
		if [ "$XBPS_TARGET_LIBC" = musl ]; then
			msg_warn "Expected testsuite failure: using musl\n"
		elif [ -z "$XBPS_DEBUG_PKGS" ]; then
			msg_warn "Expected testsuite failure: debug is disabled\n"
		else
			msg_error "Testsuite failure\n"
		fi
	}
}

libdebuginfod_package() {
	short_desc+=" - debuginfod library"
	pkg_install() {
		vmove "usr/lib/libdebuginfod*.so*"
		vmove etc/profile.d
	}
}

debuginfod_package() {
	short_desc+=" - debuginfod programs"
	pkg_install() {
		vmove "usr/bin/debuginfod*"
		vmove usr/share/man/man1/debuginfod-find.1
		vmove usr/share/man/man8/debuginfod.8
	}
}

libelf_package() {
	short_desc+=" - runtime library"
	pkg_install() {
		vmove "usr/lib/*.so*"
	}
}

elfutils-devel_package() {
	depends="libelf>=${version}_${revision} libdebuginfod>=${version}_${revision}
	 ${_devel_depends}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.a"
		vmove usr/share/man/man3
	}
}
