dev-libs/ustr: add a configure stage for cross-compiling
authorMike Frysinger <vapier@gentoo.org>
Wed, 17 Feb 2016 18:21:04 +0000 (13:21 -0500)
committerMike Frysinger <vapier@gentoo.org>
Wed, 17 Feb 2016 18:42:26 +0000 (13:42 -0500)
The build system likes to compile & run programs to figure out host
features.  This fails when cross-compiling and such, so add a func
to do all with compile tests.

dev-libs/ustr/ustr-1.0.4-r7.ebuild

index eaf650bd1c20177d2160453e6198b0a95e1410a2..0c7387c16eccec040656f4f7149e9edce9e012b1 100644 (file)
@@ -41,6 +41,26 @@ _emake() {
                "$@"
 }
 
+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
 }