[PATCH 2 of 4 v2] auto/feature: add mechanism allowing to force feature run test result

Samuel Martin s.martin49 at gmail.com
Sun Jun 1 15:17:28 UTC 2014


# HG changeset patch
# User Samuel Martin <s.martin49 at gmail.com>
# Date 1401633266 -7200
#      Sun Jun 01 16:34:26 2014 +0200
# Branch sma/cross-compilation
# Node ID 6b8ea834204dd2b2eacbd3eb3d4e13e61e599525
# Parent  e52b6d1510a8ce2570d29c56738189485e9c9a1e
auto/feature: add mechanism allowing to force feature run test result
Whenever a feature needs to run a test, the ngx_feature_run_force_result
variable can be set to the desired test result, and thus skip the test.

Therefore, the generated config.h file will honor these presets.

This mechanism aims to make easier cross-compilation support.

diff -r e52b6d1510a8 -r 6b8ea834204d auto/feature
--- a/auto/feature	Sun Jun 01 16:34:26 2014 +0200
+++ b/auto/feature	Sun Jun 01 16:34:26 2014 +0200
@@ -52,50 +52,88 @@
     case "$ngx_feature_run" in
 
         yes)
-            # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-            if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-                echo " found"
+            if test -n "$ngx_feature_run_force_result" ; then
+                echo " not tested (maybe cross-compiling)"
+                if test -n "$ngx_feature_name" ; then
+                    if test "$ngx_feature_run_force_result" = "yes" ; then
+                        have=$ngx_have_feature . auto/have
+                    fi
+                fi
                 ngx_found=yes
+            else
 
-                if test -n "$ngx_feature_name"; then
-                    have=$ngx_have_feature . auto/have
+                # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+                if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+                    echo " found"
+                    ngx_found=yes
+
+                    if test -n "$ngx_feature_name"; then
+                        have=$ngx_have_feature . auto/have
+                    fi
+
+                else
+                    echo " found but is not working"
                 fi
 
-            else
-                echo " found but is not working"
             fi
         ;;
 
         value)
-            # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-            if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-                echo " found"
+            if test -n "$ngx_feature_run_force_result" ; then
+                echo " not tested (maybe cross-compiling)"
+                cat << END >> $NGX_AUTO_CONFIG_H
+
+#ifndef $ngx_feature_name
+#define $ngx_feature_name  $ngx_feature_run_force_result
+#endif
+
+END
                 ngx_found=yes
+            else
 
-                cat << END >> $NGX_AUTO_CONFIG_H
+                # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+                if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+                    echo " found"
+                    ngx_found=yes
+
+                    cat << END >> $NGX_AUTO_CONFIG_H
 
 #ifndef $ngx_feature_name
 #define $ngx_feature_name  `$NGX_AUTOTEST`
 #endif
 
 END
-            else
-                echo " found but is not working"
+                else
+                    echo " found but is not working"
+                fi
+
             fi
         ;;
 
         bug)
-            # /bin/sh is used to intercept "Killed" or "Abort trap" messages
-            if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
-                echo " not found"
+            if test -n "$ngx_feature_run_force_result" ; then
+                echo " not tested (maybe cross-compiling)"
+                if test -n "$ngx_feature_name"; then
+                    if test "$ngx_feature_run_force_result" = "yes" ; then
+                        have=$ngx_have_feature . auto/have
+                    fi
+                fi
+                ngx_found=yes
+            else
 
-            else
-                echo " found"
-                ngx_found=yes
+                # /bin/sh is used to intercept "Killed" or "Abort trap" messages
+                if /bin/sh -c $NGX_AUTOTEST >> $NGX_AUTOCONF_ERR 2>&1; then
+                    echo " not found"
 
-                if test -n "$ngx_feature_name"; then
-                    have=$ngx_have_feature . auto/have
+                else
+                    echo " found"
+                    ngx_found=yes
+
+                    if test -n "$ngx_feature_name"; then
+                        have=$ngx_have_feature . auto/have
+                    fi
                 fi
+
             fi
         ;;
 



More information about the nginx-devel mailing list