| |
| # 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 |