# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 # Please bump with dev-libs/libltdl. # bug #225559 LIBTOOLIZE="true" WANT_LIBTOOL="none" inherit autotools prefix multiprocessing if [[ ${PV} == *9999 ]] ; then EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git" inherit git-r3 else SRC_URI="mirror://gnu/${PN}/${P}.tar.xz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="A shared library tool for developers" HOMEPAGE="https://www.gnu.org/software/libtool/" LICENSE="GPL-2" SLOT="2" IUSE="vanilla" # Pull in libltdl directly until we convert packages to the new dep. RDEPEND=" sys-devel/gnuconfig >=dev-build/autoconf-2.69:* >=dev-build/automake-1.13:* " DEPEND="${RDEPEND}" [[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man" # Note that we have more patches in https://gitweb.gentoo.org/proj/elt-patches.git/ # for package builds. The patches here are just those which are definitely fine # for the system-wide libtool installation as well. PATCHES=( # bug #109105 "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch # bug #581314 "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch ) src_prepare() { if [[ ${PV} == *9999 ]] ; then eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876 ./bootstrap || die else PATCHES+=( "${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876 ) fi # WARNING: File build-aux/ltmain.sh is read-only; trying to patch anyway chmod +w build-aux/ltmain.sh || die if use vanilla ; then eapply_user return 0 else default fi if use prefix ; then # seems that libtool has to know about EPREFIX a little bit # better, since it fails to find prefix paths to search libs # from, resulting in some packages building static only, since # libtool is fooled into thinking that libraries are unavailable # (argh...). This could also be fixed by making the gcc wrapper # return the correct result for -print-search-dirs (doesn't # include prefix dirs ...). eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch eprefixify m4/libtool.m4 fi pushd libltdl >/dev/null || die AT_NOELIBTOOLIZE=yes eautoreconf popd >/dev/null || die AT_NOELIBTOOLIZE=yes eautoreconf # Make sure timestamps don't trigger a rebuild of man pages. #556512 if [[ ${PV} != *9999 ]] ; then touch doc/*.1 || die export HELP2MAN=true fi } src_configure() { # the libtool script uses bash code in it and at configure time, tries # to find a bash shell. if /bin/sh is bash, it uses that. this can # cause problems for people who switch /bin/sh on the fly to other # shells, so just force libtool to use /bin/bash all the time. # Do not bother hardcoding the full path to sed. # Just rely on $PATH. bug #574550 export CONFIG_SHELL="${EPREFIX}"/bin/bash export ac_cv_path_SED="sed" export ac_cv_path_EGREP="grep -E" export ac_cv_path_EGREP_TRADITIONAL="grep -E" export ac_cv_path_FGREP="grep -F" export ac_cv_path_GREP="grep" export ac_cv_path_lt_DD="dd" [[ ${CHOST} == *-darwin* ]] && local myconf="--program-prefix=g" ECONF_SOURCE="${S}" econf ${myconf} --disable-ltdl-install } src_test() { emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)" } src_install() { default local x while read -d $'\0' -r x ; do ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0) }