[libav-commits] configure: add functions for testing code fragments

Mans Rullgard git at libav.org
Fri Jul 6 19:24:45 CEST 2012


Module: libav
Branch: master
Commit: 5adc829eb0787682111ca063bfc2b31558999dff

Author:    Mans Rullgard <mans at mansr.com>
Committer: Luca Barbato <lu_zero at gentoo.org>
Date:      Wed Jul  4 23:06:25 2012 +0100

configure: add functions for testing code fragments

This simplifies testing arbitrary code fragments within a function
body.

Signed-off-by: Mans Rullgard <mans at mansr.com>
Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

---

 configure |   39 ++++++++++++++++++---------------------
 1 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/configure b/configure
index 9f70a36..a08b3af 100755
--- a/configure
+++ b/configure
@@ -660,6 +660,20 @@ check_ld(){
     check_cmd $ld $LDFLAGS $flags -o $TMPE $TMPO $libs $extralibs
 }
 
+check_code(){
+    log check_code "$@"
+    check=$1
+    headers=$2
+    code=$3
+    shift 3
+    {
+        for hdr in $headers; do
+            echo "#include <$hdr>"
+        done
+        echo "int main(void) { $code; return 0; }"
+    } | check_$check "$@"
+}
+
 check_cppflags(){
     log check_cppflags "$@"
     set -- $($filter_cppflags "$@")
@@ -817,15 +831,7 @@ check_type(){
     type=$2
     shift 2
     disable_safe "$type"
-    incs=""
-    for hdr in $headers; do
-        incs="$incs
-#include <$hdr>"
-    done
-    check_cc "$@" <<EOF && enable_safe "$type"
-$incs
-$type v;
-EOF
+    check_code cc "$headers" "$type v" "$@" && enable_safe "$type"
 }
 
 check_struct(){
@@ -835,15 +841,8 @@ check_struct(){
     member=$3
     shift 3
     disable_safe "${struct}_${member}"
-    incs=""
-    for hdr in $headers; do
-        incs="$incs
-#include <$hdr>"
-    done
-    check_cc "$@" <<EOF && enable_safe "${struct}_${member}"
-$incs
-const void *p = &(($struct *)0)->$member;
-EOF
+    check_code cc "$headers" "const void *p = &(($struct *)0)->$member" "$@" &&
+        enable_safe "${struct}_${member}"
 }
 
 require(){
@@ -2399,9 +2398,7 @@ case "$arch" in
     ;;
     x86)
         subarch="x86_32"
-        check_cc <<EOF && subarch="x86_64"
-        int test[(int)sizeof(char*) - 7];
-EOF
+        check_code cc "" "int test[(int)sizeof(char*) - 7]" && subarch="x86_64"
         if test "$subarch" = "x86_64"; then
             spic=$shared
         fi



More information about the libav-commits mailing list