xref: /unit/auto/feature (revision 682)
10Sigor@sysoev.ru
20Sigor@sysoev.ru# Copyright (C) Igor Sysoev
30Sigor@sysoev.ru# Copyright (C) NGINX, Inc.
40Sigor@sysoev.ru
50Sigor@sysoev.ru
60Sigor@sysoev.ru$echo -n "checking for $nxt_feature ..."
70Sigor@sysoev.ru
80Sigor@sysoev.rucat << END >> $NXT_AUTOCONF_ERR
90Sigor@sysoev.ru----------------------------------------
100Sigor@sysoev.ruchecking for $nxt_feature
110Sigor@sysoev.ruEND
120Sigor@sysoev.ru
130Sigor@sysoev.ru
140Sigor@sysoev.runxt_found=no
150Sigor@sysoev.runxt_feature_value=
160Sigor@sysoev.runxt_feature_inc_path=
170Sigor@sysoev.ru
180Sigor@sysoev.ruif test -n "$nxt_feature_incs"; then
190Sigor@sysoev.ru    case "$nxt_feature_incs" in
200Sigor@sysoev.ru        -*)
210Sigor@sysoev.ru            nxt_feature_inc_path="$nxt_feature_incs"
220Sigor@sysoev.ru        ;;
230Sigor@sysoev.ru
240Sigor@sysoev.ru        *)
250Sigor@sysoev.ru            for nxt_temp in $nxt_feature_incs; do
260Sigor@sysoev.ru                nxt_feature_inc_path="$nxt_feature_inc_path -I $nxt_temp"
270Sigor@sysoev.ru            done
280Sigor@sysoev.ru        ;;
290Sigor@sysoev.ru    esac
300Sigor@sysoev.rufi
310Sigor@sysoev.ru
320Sigor@sysoev.ru
330Sigor@sysoev.rucat << END > $NXT_AUTOTEST.c
340Sigor@sysoev.ru$nxt_feature_test
350Sigor@sysoev.ruEND
360Sigor@sysoev.ru
370Sigor@sysoev.ru
380Sigor@sysoev.runxt_test="$CC $CFLAGS $NXT_CFLAGS $NXT_CC_OPT $NXT_TEST_CFLAGS \
390Sigor@sysoev.ru          $nxt_feature_inc_path -o $NXT_AUTOTEST $NXT_AUTOTEST.c \
40*682Sigor@sysoev.ru          $nxt_feature_libs $NXT_LD_OPT $NXT_TEST_LIBS"
410Sigor@sysoev.ru
420Sigor@sysoev.ru# /bin/sh -c "(...)" is to intercept "Killed", "Abort trap",
430Sigor@sysoev.ru# "Segmentation fault", or other shell messages.
440Sigor@sysoev.ru# "|| true" is to bypass "set -e" setting.
450Sigor@sysoev.ru
460Sigor@sysoev.ru/bin/sh -c "($nxt_test || true)" >> $NXT_AUTOCONF_ERR 2>&1
470Sigor@sysoev.ru
480Sigor@sysoev.ru
490Sigor@sysoev.ruif [ -x $NXT_AUTOTEST ]; then
500Sigor@sysoev.ru
510Sigor@sysoev.ru    case "$nxt_feature_run" in
520Sigor@sysoev.ru
530Sigor@sysoev.ru        value)
540Sigor@sysoev.ru            if /bin/sh -c "($NXT_AUTOTEST)" >> $NXT_AUTOCONF_ERR 2>&1; then
550Sigor@sysoev.ru                $echo >> $NXT_AUTOCONF_ERR
560Sigor@sysoev.ru                nxt_found=yes
570Sigor@sysoev.ru                nxt_feature_value=`$NXT_AUTOTEST`
580Sigor@sysoev.ru                $echo " $nxt_feature_value"
590Sigor@sysoev.ru                if [ -n "$nxt_feature_name" ]; then
600Sigor@sysoev.ru                    cat << END >> $NXT_AUTO_CONFIG_H
610Sigor@sysoev.ru
620Sigor@sysoev.ru#ifndef $nxt_feature_name
630Sigor@sysoev.ru#define $nxt_feature_name  $nxt_feature_value
640Sigor@sysoev.ru#endif
650Sigor@sysoev.ru
660Sigor@sysoev.ruEND
670Sigor@sysoev.ru                fi
680Sigor@sysoev.ru            else
690Sigor@sysoev.ru                $echo " not found"
700Sigor@sysoev.ru            fi
710Sigor@sysoev.ru        ;;
720Sigor@sysoev.ru
730Sigor@sysoev.ru        yes)
740Sigor@sysoev.ru            if /bin/sh -c "($NXT_AUTOTEST)" >> $NXT_AUTOCONF_ERR 2>&1; then
750Sigor@sysoev.ru                $echo " found"
760Sigor@sysoev.ru                nxt_found=yes
77396Smax.romanov@nginx.com                if [ -n "$nxt_feature_name" ]; then
78396Smax.romanov@nginx.com                    cat << END >> $NXT_AUTO_CONFIG_H
790Sigor@sysoev.ru
800Sigor@sysoev.ru#ifndef $nxt_feature_name
810Sigor@sysoev.ru#define $nxt_feature_name  1
820Sigor@sysoev.ru#endif
830Sigor@sysoev.ru
840Sigor@sysoev.ruEND
85396Smax.romanov@nginx.com                fi
860Sigor@sysoev.ru            else
870Sigor@sysoev.ru                $echo " found but is not working"
880Sigor@sysoev.ru            fi
890Sigor@sysoev.ru        ;;
900Sigor@sysoev.ru
910Sigor@sysoev.ru        *)
920Sigor@sysoev.ru            $echo " found"
930Sigor@sysoev.ru            nxt_found=yes
94396Smax.romanov@nginx.com            if [ -n "$nxt_feature_name" ]; then
95396Smax.romanov@nginx.com                cat << END >> $NXT_AUTO_CONFIG_H
960Sigor@sysoev.ru
970Sigor@sysoev.ru#ifndef $nxt_feature_name
980Sigor@sysoev.ru#define $nxt_feature_name  1
990Sigor@sysoev.ru#endif
1000Sigor@sysoev.ru
1010Sigor@sysoev.ruEND
102396Smax.romanov@nginx.com            fi
1030Sigor@sysoev.ru        ;;
1040Sigor@sysoev.ru    esac
1050Sigor@sysoev.ru
1060Sigor@sysoev.ruelse
1070Sigor@sysoev.ru    $echo " not found"
1080Sigor@sysoev.ru
1090Sigor@sysoev.ru    $echo "----------"    >> $NXT_AUTOCONF_ERR
1100Sigor@sysoev.ru    cat $NXT_AUTOTEST.c   >> $NXT_AUTOCONF_ERR
1110Sigor@sysoev.ru    $echo "----------"    >> $NXT_AUTOCONF_ERR
1120Sigor@sysoev.ru    $echo $nxt_test       >> $NXT_AUTOCONF_ERR
1130Sigor@sysoev.ru    $echo "----------"    >> $NXT_AUTOCONF_ERR
1140Sigor@sysoev.rufi
1150Sigor@sysoev.ru
1160Sigor@sysoev.rurm -rf $NXT_AUTOTEST*
117