blob: 07a0897b2572ede2b76e3758773005cb21c1b640 (
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
|
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
WANT_AUTOCONF="2.1"
inherit autotools-multilib autotools eutils multilib toolchain-funcs versionator ehooker
MIN_PV="$(get_version_component_range 2)"
DESCRIPTION="Netscape Portable Runtime"
HOMEPAGE="http://www.mozilla.org/projects/nspr/"
SRC_URI="ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${PV}/src/${P}.tar.gz"
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
SLOT="0"
KEYWORDS="~amd64"
IUSE="debug"
DEPEND="abi_x86_32? (
!<=app-emulation/emul-linux-x86-baselibs-20131008-r1
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
)"
# We must run eautoconf to regenerate configure
AUTOTOOLS_AUTORECONF=yes
MULTILIB_WRAPPED_EXECUTABLES=(@/usr/bin/nspr-config)
src_prepare() {
mkdir build inst
cd "${S}"/nspr/
epatch "${FILESDIR}"/${PN}-4.6.1-lang.patch
epatch "${FILESDIR}"/${PN}-4.7.0-prtime.patch
epatch "${FILESDIR}"/${PN}-4.7.1-solaris.patch
epatch "${FILESDIR}"/${PN}-4.7.4-solaris.patch
# epatch "${FILESDIR}"/${PN}-4.8.3-aix-gcc.patch
epatch "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch
epatch "${FILESDIR}"/${PN}-4.8.9-link-flags.patch
# We do not need to pass -L$libdir via nspr-config --libs
epatch "${FILESDIR}"/${PN}-4.9.5_nspr_config.patch
autotools-multilib_src_prepare
# make sure it won't find Perl out of Prefix
sed -i -e "s/perl5//g" "${S}"/nspr/configure || die
# Respect LDFLAGS
sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \
"${S}"/nspr/config/rules.mk || die
epatch_user
}
ehook autotools-multilib-global-pre_src_configure global_pre_configure
global_pre_configure() {
ECONF_SOURCE="${S}"/nspr
export LC_ALL=C
# We use the standard BUILD_xxx but nspr uses HOST_xxx
tc-export_build_env BUILD_CC
export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS}
[[ ${CBUILD} != ${CHOST} ]] \
&& export CROSS_COMPILE=1 \
|| unset CROSS_COMPILE
myeconfargs+=(
$(use_enable debug)
$(use_enable !debug optimize)
)
}
ehook autotools-multilib-per-abi-pre_src_configure abi_pre_configure
abi_pre_configure() {
abi_pre_configure2() {
echo > "${T}"/test-${ABI}.c
${CC} ${CFLAGS} ${CPPFLAGS} -c "${T}"/test-${ABI}.c -o "${T}"/test-${ABI}.o || die
case $(file "${T}"/test-${ABI}.o) in
*32-bit*x86-64*|*64-bit*|*ppc64*|*x86_64*) myeconfargs+=(--enable-64bit);;
*32-bit*|*ppc*|*i386*) ;;
*) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";;
esac
# Ancient autoconf needs help finding the right tools.
export ac_cv_path_AR="${AR}"
}
myeconfargs+=(--libdir="${EPREFIX}/usr/@GET_LIBDIR@")
MULTILIB_TC_EXPORT_VARS="AR CC CXX RANLIB" multilib_tc_export abi_pre_configure2
return 0
}
ehook autotools-multilib-per-abi-post_src_configure abi_post_configure
abi_post_configure() {
unset ac_cv_path_AR
}
ehook autotools-multilib-global-pre_src_install global_pre_install
global_pre_install() {
# Their build system is royally confusing, as usual
MINOR_VERSION=${MIN_PV} # Used for .so version
}
ehook autotools-multilib-per-abi-post_src_install abi_post_install
abi_post_install() {
cd "${ED}"usr/$(get_libdir)
einfo "removing static libraries as upstream has requested!"
rm -f *.a || die "failed to remove static libraries."
# install nspr-config
dobin "${BUILD_DIR}"/config/nspr-config
}
ehook autotools-multilib-global-post_src_install post_install
post_install() {
# Remove stupid files in /usr/bin
rm -f "${ED}"/usr/bin/prerr.properties || die "failed to cleanup unneeded files"
}
|