diff options
author | Bertrand Jacquin <beber@meleeweb.net> | 2013-06-12 23:02:42 +0200 |
---|---|---|
committer | Bertrand Jacquin <beber@meleeweb.net> | 2013-06-12 23:02:42 +0200 |
commit | 8e807759e486495158d450f353bccfe5f23f72c6 (patch) | |
tree | c52d703f0cd6288ac04a0f8122e058a6ad37ce6d /sys-libs | |
parent | sys-libs/uclibc++: Move to EAPI 5, use .xz sources, fix quotes (diff) | |
download | portage-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++/ChangeLog | 4 | ||||
-rw-r--r-- | sys-libs/uclibc++/Manifest | 4 | ||||
-rw-r--r-- | sys-libs/uclibc++/uclibc++-0.2.4.ebuild | 79 |
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 |