dev-qt/qtxml: stable 5.14.2 for ppc, bug #719732
[gentoo.git] / dev-lang / spidermonkey / spidermonkey-1.8.5-r6.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=5
5 WANT_AUTOCONF="2.1"
6 PYTHON_COMPAT=( python2_7 )
7 PYTHON_REQ_USE="threads"
8 inherit autotools eutils toolchain-funcs multilib python-any-r1 versionator pax-utils
9
10 MY_PN="js"
11 TARBALL_PV="$(replace_all_version_separators '' $(get_version_component_range 1-3))"
12 MY_P="${MY_PN}-${PV}"
13 TARBALL_P="${MY_PN}${TARBALL_PV}-1.0.0"
14 DESCRIPTION="Stand-alone JavaScript C library"
15 HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
16 SRC_URI="https://archive.mozilla.org/pub/js/${TARBALL_P}.tar.gz
17         https://dev.gentoo.org/~axs/distfiles/${PN}-slot0-patches-01.tar.xz
18         "
19
20 LICENSE="NPL-1.1"
21 SLOT="0/mozjs185"
22 KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~mips ppc ppc64 s390 x86 ~x64-macos"
23 IUSE="debug minimal static-libs test"
24 RESTRICT="!test? ( test )"
25
26 S="${WORKDIR}/${MY_P}"
27 BUILDDIR="${S}/js/src"
28
29 RDEPEND=">=dev-libs/nspr-4.7.0
30         sys-libs/readline:0=
31         x64-macos? ( dev-libs/jemalloc )"
32 DEPEND="${RDEPEND}
33         ${PYTHON_DEPS}
34         app-arch/zip
35         virtual/pkgconfig"
36
37 pkg_setup() {
38         if [[ ${MERGE_TYPE} != "binary" ]]; then
39                 export LC_ALL="C"
40         fi
41 }
42
43 src_prepare() {
44         # https://bugzilla.mozilla.org/show_bug.cgi?id=628723#c43
45         epatch "${WORKDIR}"/sm0/${P}-fix-install-symlinks.patch
46         # https://bugzilla.mozilla.org/show_bug.cgi?id=638056#c9
47         epatch "${WORKDIR}"/sm0/${P}-fix-ppc64.patch
48         # https://bugs.gentoo.org/show_bug.cgi?id=400727
49         # https://bugs.gentoo.org/show_bug.cgi?id=420471
50         epatch "${WORKDIR}"/sm0/${P}-arm_respect_cflags-3.patch
51         # https://bugs.gentoo.org/show_bug.cgi?id=438746
52         epatch "${WORKDIR}"/sm0/${PN}-1.8.7-freebsd-pthreads.patch
53         # https://bugs.gentoo.org/show_bug.cgi?id=441928
54         epatch "${WORKDIR}"/sm0/${PN}-1.8.5-perf_event-check.patch
55         # https://bugs.gentoo.org/show_bug.cgi?id=439260
56         epatch "${WORKDIR}"/sm0/${P}-symbol-versions.patch
57         # https://bugs.gentoo.org/show_bug.cgi?id=441934
58         epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-fix.patch
59         epatch "${WORKDIR}"/sm0/${PN}-1.8.5-ia64-static-strings.patch
60         # https://bugs.gentoo.org/show_bug.cgi?id=431560
61         epatch "${WORKDIR}"/sm0/${PN}-1.8.5-isfinite.patch
62         # https://bugs.gentoo.org/show_bug.cgi?id=552786
63         epatch "${FILESDIR}"/${PN}-perl-defined-array-check.patch
64         # https://bugs.gentoo.org/show_bug.cgi?id=439558
65         epatch "${WORKDIR}"/sm0/${PN}-1.8.7-x32.patch
66         # https://bugs.gentoo.org/show_bug.cgi?id=582478
67         epatch "${WORKDIR}"/sm0/${PN}-1.8.5-gcc6.patch
68
69         epatch_user
70
71         cd "${BUILDDIR}" || die
72         eautoconf
73 }
74
75 src_configure() {
76         cd "${BUILDDIR}" || die
77
78         CC="$(tc-getCC)" CXX="$(tc-getCXX)" \
79         AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" \
80         LD="$(tc-getLD)" \
81         ac_cv_lib_dnet_dnet_ntoa=no \
82         ac_cv_lib_dnet_stub_dnet_ntoa=no \
83         econf \
84                 ${myopts} \
85                 --enable-jemalloc \
86                 --enable-readline \
87                 --enable-threadsafe \
88                 --with-system-nspr \
89                 --disable-optimize \
90                 --disable-profile-guided-optimization \
91                 $(use_enable debug) \
92                 $(use_enable static-libs static) \
93                 $(use_enable test tests)
94 }
95
96 cross_make() {
97         emake \
98                 CFLAGS="${BUILD_CFLAGS}" \
99                 CXXFLAGS="${BUILD_CXXFLAGS}" \
100                 AR="${BUILD_AR}" \
101                 CC="${BUILD_CC}" \
102                 CXX="${BUILD_CXX}" \
103                 RANLIB="${BUILD_RANLIB}" \
104                 "$@"
105 }
106 src_compile() {
107         cd "${BUILDDIR}" || die
108         if tc-is-cross-compiler; then
109                 tc-export_build_env BUILD_{AR,CC,CXX,RANLIB}
110                 cross_make jscpucfg host_jsoplengen host_jskwgen
111                 cross_make -C config nsinstall
112                 mv {,native-}jscpucfg || die
113                 mv {,native-}host_jskwgen || die
114                 mv {,native-}host_jsoplengen || die
115                 mv config/{,native-}nsinstall || die
116                 sed -i \
117                         -e 's@./jscpucfg@./native-jscpucfg@' \
118                         -e 's@./host_jskwgen@./native-host_jskwgen@' \
119                         -e 's@./host_jsoplengen@./native-host_jsoplengen@' \
120                         Makefile || die
121                 sed -i -e 's@/nsinstall@/native-nsinstall@' config/config.mk || die
122                 rm -f config/host_nsinstall.o \
123                         config/host_pathsub.o \
124                         host_jskwgen.o \
125                         host_jsoplengen.o || die
126         fi
127         emake
128 }
129
130 src_test() {
131         cd "${BUILDDIR}/jsapi-tests" || die
132         # for bug 415791
133         pax-mark mr jsapi-tests
134         emake check
135 }
136
137 src_install() {
138         cd "${BUILDDIR}" || die
139         emake DESTDIR="${D}" install
140         # bug 437520 , exclude js shell for small systems
141         if ! use minimal ; then
142                 dobin shell/js
143                 pax-mark m "${ED}/usr/bin/js"
144         fi
145         dodoc ../../README
146         dohtml README.html
147
148         if ! use static-libs; then
149                 # We can't actually disable building of static libraries
150                 # They're used by the tests and in a few other places
151                 find "${D}" -iname '*.a' -delete || die
152         fi
153 }