blob: 88841d6cdfd44de61e41f6697fdc9ac930ce06d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Please bump with dev-libs/libltdl.
# bug #225559
LIBTOOLIZE="true"
WANT_LIBTOOL="none"
inherit autotools flag-o-matic prefix multiprocessing
if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git"
inherit git-r3
elif ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz"
else
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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"
local myeconfargs=(
# Split into dev-libs/libltdl
--disable-ltdl-install
# Tests break otherwise (when porting to EAPI 8)
# https://lists.gnu.org/archive/html/bug-libtool/2014-10/msg00013.html
--enable-static
)
[[ ${CHOST} == *-darwin* ]] && myeconfargs+=( "--program-prefix=g" )
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
}
src_test() {
(
# The testsuite is sensitive to warnings, expects static
# archives to really be archives (not compiler IR), etc.
strip-flags
filter-flags -fno-semantic-interposition
filter-flags '-Wstrict-aliasing=*' '-Werror=*'
filter-lto
emake -Onone check \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
FFLAGS="${FFLAGS}" \
FCFLAGS="${FCFLAGS}" \
LDFLAGS="${LDFLAGS}" \
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)
}
|