# Template file for 'elfutils'
pkgname=elfutils
version=0.185
revision=1
build_style=gnu-configure
configure_args="--program-prefix=eu-"
hostmakedepends="automake libtool pkg-config"
_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"
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/"
distfiles="https://sourceware.org/${pkgname}/ftp/${version}/${pkgname}-${version}.tar.bz2"
checksum=dc8d3e74ab209465e7f568e1b3bb9a5a142f8656e2b57d10049a73da2ae6b5a6
# subpackages require explicit ordering
subpackages="debuginfod libdebuginfod libelf elfutils-devel"

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

	# 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} ||
		msg_warn "Failure in testsuite, expected on musl systems, at least\n"
}

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
	}
}
