
# Copyright (C) Igor Sysoev


if [ $NGX_LIBATOMIC != YES ]; then

    have=NGX_HAVE_LIBATOMIC . auto/have
    CORE_INCS="$CORE_INCS $NGX_LIBATOMIC/src"
    LINK_DEPS="$LINK_DEPS $NGX_LIBATOMIC/src/libatomic_ops.a"
    CORE_LIBS="$CORE_LIBS $NGX_LIBATOMIC/src/libatomic_ops.a"

else

    ngx_feature="atomic_ops library"
    ngx_feature_name=NGX_HAVE_LIBATOMIC
    ngx_feature_run=no
    ngx_feature_incs="#include <atomic_ops.h>"
    ngx_feature_path=
    ngx_feature_libs="-latomic_ops"
    ngx_feature_test="AO_t *n;
                      AO_compare_and_swap(n, 0, 1);
                      AO_fetch_and_add(n, 1);
                      AO_nop();"

    . auto/feature

    if [ $ngx_found = yes ]; then
        CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
    else

cat << END

$0: error: libatomic_ops library was not found.

END
        exit 1
    fi
fi
