diff options
Diffstat (limited to 'auto/fmt/ptrfmt')
-rw-r--r-- | auto/fmt/ptrfmt | 62 |
1 files changed, 38 insertions, 24 deletions
diff --git a/auto/fmt/ptrfmt b/auto/fmt/ptrfmt index 163ca59e2..32ba8a44f 100644 --- a/auto/fmt/ptrfmt +++ b/auto/fmt/ptrfmt @@ -2,71 +2,85 @@ # Copyright (C) Igor Sysoev -echo $ngx_n "checking for $ngx_type printf() format ..." $ngx_c -echo >> $NGX_ERR -echo "checking for $ngx_type printf() format" >> $NGX_ERR +echo $ngx_n "checking for $ngx_type printf() format ...$ngx_c" -ngx_fmt=no -comma= -fmtX= +cat << END >> $NGX_AUTOCONF_ERR -for fmt in $ngx_formats +---------------------------------------- +checking for $ngx_type printf() format + +END + + +ngx_format=no +ngx_comma= +ngx_fmt_x= + +for ngx_fmt in $ngx_formats do cat << END > $NGX_AUTOTEST.c int main() { - printf("$fmt", ($ngx_type) $ngx_max_value); + printf("$ngx_fmt", ($ngx_type) $ngx_max_value); return 0; } END - eval "$CC_WARN $CC_TEST_FLAGS -o $NGX_AUTOTEST $NGX_AUTOTEST.c \ - >> $NGX_ERR 2>&1" + ngx_test="$CC $CC_TEST_FLAGS $CC_WARN $CC_AUX_FLAGS \ + -o $NGX_AUTOTEST $NGX_AUTOTEST.c" + eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1" - max_value=`echo $ngx_max_value | sed -e "s/L*\$//"` + ngx_max_val=`echo $ngx_max_value | sed -e "s/L*\$//"` if [ -x $NGX_AUTOTEST ]; then - if [ "`$NGX_AUTOTEST`" = $max_value ]; then - ngx_fmt=$fmt + if [ "`$NGX_AUTOTEST`" = $ngx_max_val ]; then + ngx_format=$ngx_fmt fi fi - rm $NGX_AUTOTEST* + rm $NGX_AUTOTEST - if [ $ngx_fmt != no ]; then + if [ $ngx_format != no ]; then break fi - fmtX=`echo $fmt | sed -e "s/d/X/"` + ngx_fmt_x=`echo $ngx_fmt | sed -e "s/d/X/"` + + echo $ngx_n "$ngx_comma \"${ngx_fmt_x}\" is not appropriate$ngx_c" + ngx_comma="," - echo $ngx_n "$comma \"${fmtX}\" is not appropriate" $ngx_c - comma="," + echo "----------" >> $NGX_AUTOCONF_ERR + cat $NGX_AUTOTEST.c >> $NGX_AUTOCONF_ERR + echo "----------" >> $NGX_AUTOCONF_ERR + echo $ngx_test >> $NGX_AUTOCONF_ERR + echo "----------" >> $NGX_AUTOCONF_ERR done -if [ $ngx_fmt = no ]; then +if [ $ngx_format = no ]; then echo "$0: error: printf() $ngx_type format not found" + exit 1 fi if [ $ngx_ptr_size = 4 ]; then - fmtX="%0`expr 2 \* $ngx_ptr_size`" + ngx_fmt_x="%0`expr 2 \* $ngx_ptr_size`" else - fmtX="%" + ngx_fmt_x="%" fi -ngx_fmt=`echo $ngx_fmt | sed -e "s/d/X/" -e "s/^%/$fmtX/"` +ngx_format=`echo $ngx_format | sed -e "s/d/X/" -e "s/^%/$ngx_fmt_x/"` -echo "$comma \"${ngx_fmt}\" used" +echo "$ngx_comma \"${ngx_format}\" used" cat << END >> $NGX_AUTO_CONFIG_H #ifndef $ngx_fmt_name -#define $ngx_fmt_name "$ngx_fmt" +#define $ngx_fmt_name "$ngx_format" #endif END |