| # Copyright 1999-2018 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI=5 |
| |
| inherit toolchain-funcs multilib-minimal |
| |
| DESCRIPTION="Low-overhead managed string library for C" |
| HOMEPAGE="http://www.and.org/ustr/" |
| SRC_URI="ftp://ftp.and.org/pub/james/ustr/${PV}/${P}.tar.bz2" |
| |
| LICENSE="|| ( BSD-2 MIT LGPL-2 )" |
| SLOT="0" |
| KEYWORDS="*" |
| IUSE="static-libs ustr-import" |
| |
| DOCS=(ChangeLog README README-DEVELOPERS AUTHORS NEWS TODO) |
| |
| MULTILIB_WRAPPED_HEADERS=( |
| /usr/include/ustr-conf.h |
| /usr/include/ustr-conf-debug.h |
| ) |
| |
| src_prepare() { |
| epatch "${FILESDIR}/${P}-gcc_5-check.patch" |
| epatch "${FILESDIR}/${PN}-1.0.4-build-libs.patch" |
| multilib_copy_sources |
| } |
| |
| _emake() { |
| emake \ |
| USE_STATIC=$(usex static-libs) \ |
| AR="$(tc-getAR)" \ |
| CC="$(tc-getCC)" \ |
| CFLAGS="${CFLAGS} ${CPPFLAGS}" \ |
| LDFLAGS="${LDFLAGS}" \ |
| prefix="${EPREFIX}/usr" \ |
| libdir="${EPREFIX}/usr/$(get_libdir)" \ |
| mandir="${EPREFIX}/usr/share/man" \ |
| SHRDIR="${EPREFIX}/usr/share/${P}" \ |
| DOCSHRDIR="${EPREFIX}/usr/share/doc/${PF}" \ |
| HIDE= \ |
| "$@" |
| } |
| |
| multilib_src_configure() { |
| # The included configure tests require execution. |
| |
| # We require vsnprintf everywhere as it's in POSIX. |
| printf '#!/bin/sh\necho 0\n' > autoconf_vsnprintf |
| chmod a+rx autoconf_vsnprintf |
| |
| # Always use stdint.h as it's in POSIX. |
| sed -i '/have_stdint_h=0/s:=0:=1:' Makefile || die |
| |
| # Figure out the size of size_t. |
| printf '#include <sys/types.h>\nint main() { char buf[sizeof(size_t) - 8]; }\n' > sizet_test.c |
| $(tc-getCC) ${CPPFLAGS} ${CFLAGS} -c sizet_test.c 2>/dev/null |
| printf '#!/bin/sh\necho %s\n' $(( $? == 0 )) > autoconf_64b |
| chmod a+rx autoconf_64b |
| |
| # Generate the config file now to avoid bad makefile deps. |
| _emake ustr-import |
| } |
| |
| multilib_src_compile() { |
| _emake all-shared |
| } |
| |
| multilib_src_install() { |
| _emake DESTDIR="${D}" install |
| |
| if ! use ustr-import ; then |
| rm -r \ |
| "${ED}/usr/bin/ustr-import" \ |
| "${ED}/usr/share/man/man1/ustr-import.1" \ |
| "${ED}/usr/share/${P}" || die |
| fi |
| } |
| |
| multilib_src_test() { |
| _emake check |
| } |