| From ef72be22ad6d58e230f75553d80b470b80c3303a Mon Sep 17 00:00:00 2001 |
| From: Samuel Martin <s.martin49@gmail.com> |
| Date: Sun, 4 May 2014 00:40:49 +0200 |
| Subject: [PATCH] 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. |
| |
| Signed-off-by: Samuel Martin <s.martin49@gmail.com> |
| --- |
| auto/feature | 80 ++++++++++++++++++++++++++++++++++++++++++++---------------- |
| 1 file changed, 59 insertions(+), 21 deletions(-) |
| |
| diff --git a/auto/feature b/auto/feature |
| index 1145f28..a194b85 100644 |
| --- a/auto/feature |
| +++ b/auto/feature |
| @@ -52,50 +52,88 @@ if [ -x $NGX_AUTOTEST ]; then |
| 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" |
| - |
| - else |
| - 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 " not found" |
| + |
| + else |
| + echo " found" |
| + ngx_found=yes |
| + |
| + if test -n "$ngx_feature_name"; then |
| + have=$ngx_have_feature . auto/have |
| + fi |
| fi |
| + |
| fi |
| ;; |
| |
| -- |
| 1.9.2 |
| |