summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
authorBertrand Jacquin <beber@meleeweb.net>2013-06-12 23:02:42 +0200
committerBertrand Jacquin <beber@meleeweb.net>2013-06-12 23:02:42 +0200
commit8e807759e486495158d450f353bccfe5f23f72c6 (patch)
treec52d703f0cd6288ac04a0f8122e058a6ad37ce6d /sys-libs
parentsys-libs/uclibc++: Move to EAPI 5, use .xz sources, fix quotes (diff)
downloadportage-8e807759e486495158d450f353bccfe5f23f72c6.tar.xz
sys-libs/uclibc++: support savedconfig eclass, remove useless elibc_uclibc USE flag, check oldconfig validity
Package-Manager: portage-2.1.12.4
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/uclibc++/ChangeLog4
-rw-r--r--sys-libs/uclibc++/Manifest4
-rw-r--r--sys-libs/uclibc++/uclibc++-0.2.4.ebuild79
3 files changed, 60 insertions, 27 deletions
diff --git a/sys-libs/uclibc++/ChangeLog b/sys-libs/uclibc++/ChangeLog
index 2287db9f..7d7e339a 100644
--- a/sys-libs/uclibc++/ChangeLog
+++ b/sys-libs/uclibc++/ChangeLog
@@ -3,6 +3,10 @@
# $Header: $
12 Jun 2013; Bertrand Jacquin <beber@meleeweb.net> uclibc++-0.2.4.ebuild:
+ sys-libs/uclibc++: support savedconfig eclass, remove useless elibc_uclibc USE
+ flag, check oldconfig validity
+
+ 12 Jun 2013; Bertrand Jacquin <beber@meleeweb.net> uclibc++-0.2.4.ebuild:
sys-libs/uclibc++: Move to EAPI 5, use .xz sources, fix quotes
12 Jun 2013; Bertrand Jacquin <beber@meleeweb.net> -uclibc++-0.2.2-r1.ebuild:
diff --git a/sys-libs/uclibc++/Manifest b/sys-libs/uclibc++/Manifest
index 2b0b7679..212a8e7a 100644
--- a/sys-libs/uclibc++/Manifest
+++ b/sys-libs/uclibc++/Manifest
@@ -1,4 +1,4 @@
DIST uClibc++-0.2.4.tar.xz 228292 SHA256 f9bb95a3bf00644b0d9b86ff853aa4435ddb91695ea71f9295177ff0da4c11bb WHIRLPOOL 926054058854bc3d6aa430f8e70cdcdba6d14d07f5fd96edf04025f43dae9952f70d606b189e0d4fc1a09cf01a9031166e1566869f622af9c55fe58a14f58af6
-EBUILD uclibc++-0.2.4.ebuild 1542 SHA256 cf00f47e3f944a6422935be4e5a7892da8b9877c5afd3bee984ff3272743c27f WHIRLPOOL 2dfd02c8d61a54f1e9bea1c8db562def2396bf262a44bc116abdf17d04b4a2f8ac12cfcec26dad29af1a32279ba820bd63b47d746892142c3165a39f91091274
-MISC ChangeLog 976 SHA256 03f84f82fa2c789fa498cfc8a35654ed66b21b5171d3cee43976a86941a44523 WHIRLPOOL 477ca7c7e87a8f4e0dafedaa3dfad929fe1f314046ad3c8d2e4f53c3efaf494fc65a6995a66fc76f44ca0c01f903e8748767d9c62db4c741163fd504d2627b4b
+EBUILD uclibc++-0.2.4.ebuild 2410 SHA256 8c2ba7044115a032e7c72f3706c645ed07ead8037f04f98e85abf85e27eaa3bf WHIRLPOOL 4d143c8cf665bb3ab29fc8202ae8d4fb34b2382984ef41ec018b570c25e1dea652c183e90fa1cfd600e8f7c9bbfe1cb25acf6338102a7b40946d3e44e47d27ed
+MISC ChangeLog 1167 SHA256 49603bcd5ba227483bdaf35c4907dd70246e19557731f55c54e9d5a204baa7d8 WHIRLPOOL 14cc79531f65c7c8129b28ab0c393a77425b55b0665dd2dd84e6762b316fede63ed327f7685cc7862622e4b8ccdf720979448fc149d7dbe1138c581c0f15dc1e
MISC metadata.xml 254 SHA256 c56bc3d6780712c960298c70bb86867aeb6661e97a317cc624516b0e16b72fcc WHIRLPOOL 2ebbfaa14ef0c1847284fe64a79f052cd7e73b25a724fba728c084aaaf2dd0692e068eedcf42ccef7e205077f00c35780ded7ec69118dc01ddb988b4802e46ae
diff --git a/sys-libs/uclibc++/uclibc++-0.2.4.ebuild b/sys-libs/uclibc++/uclibc++-0.2.4.ebuild
index f8e9fa96..8fb750a1 100644
--- a/sys-libs/uclibc++/uclibc++-0.2.4.ebuild
+++ b/sys-libs/uclibc++/uclibc++-0.2.4.ebuild
@@ -3,7 +3,7 @@
# $Header: $
EAPI=5
-inherit eutils toolchain-funcs
+inherit eutils toolchain-funcs savedconfig
export CTARGET="${CTARGET:-${CHOST}}"
if [[ "${CTARGET}" == "${CHOST}" ]] ; then
@@ -21,53 +21,82 @@ LICENSE="GPL-2"
&& SLOT="${CTARGET}" \
|| SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~x86"
-IUSE="debug static elibc_uclibc"
+IUSE="debug static"
DEPEND=""
RDEPEND="${DEPEND}"
S="${WORKDIR}/uClibc++-${PV}"
-set_config() {
- local val
- sed -i -e "/$1/d" .config
- if [[ -n "$2" && "$2" != "n" ]]; then
- val="$1=${2:-y}"
- einfo "Enabling $1"
+uclibc_config_option() {
+ local key="$1" ; shift
+ local val="$@"
+
+ if ! grep -qE "^(#| )*${key}[ =]" "${CONFIG}" ; then
+ eqawarn "${key} is missing in defconfig"
+ echo >> "${CONFIG}"
+ echo "# .config imported from ${S}/defconfig is missing ${key}" >> "${CONFIG}"
+ echo "# ${key} is not set" >> "${CONFIG}"
+ fi
+
+ if [[ ${val} == "n" ]] ; then
+ sed -i -re "s:^(#| )*${key}[ =].*:# ${key} is not set:" "${CONFIG}"
else
- val="# $1 is not set"
- einfo "Disabling $1"
+ sed -i -re "s:^(#| )*${key}[ =].*:${key}=${val}:" "${CONFIG}"
fi
- echo "$val" >> .config
+
+ einfo $(grep -E "^(#| )*${key}[ =]" "${CONFIG}")
}
src_prepare() {
+ copt=(
+ HOSTCC="${CBUILD}-gcc" HOSTCXX="${CBUILD}-g++"
+ CC="$(tc-getCC)" CROSS_COMPILE="${CHOST}-"
+ OPTIMIZATION="${CXXFLAGS}"
+ )
+
+ myopt=( "${copt[@]}" )
+
sed -i -e "s: -Wl,-s$: ${LDFLAGS}:" src/Makefile
}
src_configure() {
- emake -s defconfig > /dev/null \
- || die "defconfig failed"
+ CONFIG=".config"
+ restore_config "${CONFIG}"
+
+ [[ -f "${CONFIG}" ]] && return 0
- set_config UCLIBCXX_RUNTIME_PREFIX "\"/usr/${CTARGET}\""
- set_config BUILD_STATIC_LIB y
+ einfo "Generating .config using 'defconfig'"
+ emake defconfig "${myopt[@]}"
- use static && set_config BUILD_ONLY_STATIC_LIB y
-# if use elibc_uclibc; then
- set_config UCLIBCXX_HAS_TLS n
-# fi
- emake oldconfig
+ uclibc_config_option UCLIBCXX_RUNTIME_PREFIX "\"/usr/${CTARGET}\""
+
+ uclibc_config_option BUILD_STATIC_LIB y
+ uclibc_config_option BUILD_ONLY_STATIC_LIB $(usex static y n)
+
+ uclibc_config_option UCLIBCXX_HAS_TLS n
+
+ uclibc_config_option DODEBUG $(usex debug y n)
}
src_compile() {
- emake \
- STRIPTOOL="true" \
- OPTIMIZATION="${CXXFLAGS}" \
- CROSS="${CTARGET}-"
+ emake oldconfig "${myopt[@]}" < /dev/null
+
+ if diff -Nu0 "${CONFIG}.old" "${CONFIG}" \
+ | egrep -q '^(\-|\+)([A-Z]*)' ; then
+ eerror "You configuration is not up to date"
+ diff -Nu "${CONFIG}.old" "${CONFIG}"
+ die "Bad configuration"
+ fi
+
+ emake "${myopt[@]}" \
+ STRIPTOOL="true"
}
src_install() {
- emake install DESTDIR="${ED}"
+ save_config "${CONFIG}"
+
+ emake install "${myopt[@]}" DESTDIR="${ED}"
dodir /usr/bin
dosym "/usr/${CTARGET}/bin/g++-uc" /usr/bin/g++-uc