| # Copyright (C) Igor Sysoev | |
| echo $ngx_n "checking for $ngx_type printf() format ...$ngx_c" | |
| cat << END >> $NGX_AUTOCONF_ERR | |
| ---------------------------------------- | |
| 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("$ngx_fmt", ($ngx_type) $ngx_max_value); | |
| return 0; | |
| } | |
| END | |
| 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" | |
| ngx_max_val=`echo $ngx_max_value | sed -e "s/L*\$//"` | |
| if [ -x $NGX_AUTOTEST ]; then | |
| if [ "`$NGX_AUTOTEST`" = $ngx_max_val ]; then | |
| ngx_format=$ngx_fmt | |
| fi | |
| fi | |
| rm $NGX_AUTOTEST | |
| if [ $ngx_format != no ]; then | |
| break | |
| fi | |
| 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_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_format = no ]; then | |
| echo "$0: error: printf() $ngx_type format not found" | |
| exit 1 | |
| fi | |
| if [ $ngx_ptr_size = 4 ]; then | |
| ngx_fmt_x="%0`expr 2 \* $ngx_ptr_size`" | |
| else | |
| ngx_fmt_x="%" | |
| fi | |
| ngx_format=`echo $ngx_format | sed -e "s/d/X/" -e "s/^%/$ngx_fmt_x/"` | |
| echo "$ngx_comma \"${ngx_format}\" used" | |
| cat << END >> $NGX_AUTO_CONFIG_H | |
| #ifndef $ngx_fmt_name | |
| #define $ngx_fmt_name "$ngx_format" | |
| #endif | |
| END |