2009-11-25 11:55:25 -06:00
|
|
|
|
|
|
|
# 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
|
2009-11-27 16:00:39 -06:00
|
|
|
ngx_feature_run=yes
|
2009-12-07 09:32:38 -06:00
|
|
|
ngx_feature_incs="#define AO_REQUIRE_CAS
|
|
|
|
#include <atomic_ops.h>"
|
2009-11-25 11:55:25 -06:00
|
|
|
ngx_feature_path=
|
|
|
|
ngx_feature_libs="-latomic_ops"
|
2009-11-27 16:00:39 -06:00
|
|
|
ngx_feature_test="long n = 0;
|
|
|
|
if (!AO_compare_and_swap(&n, 0, 1))
|
|
|
|
return 1;
|
|
|
|
if (AO_fetch_and_add(&n, 1) != 1)
|
|
|
|
return 1;
|
|
|
|
if (n != 2)
|
|
|
|
return 1;
|
2009-11-25 11:55:25 -06:00
|
|
|
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
|