Custom compilation flag for an nginx module

Maxim Dounin mdounin at mdounin.ru
Wed Dec 3 18:42:15 UTC 2014


Hello!

On Wed, Dec 03, 2014 at 11:28:28AM -0500, erankor2 wrote:

> Thank you Maxim, your suggestion will definitely work for me.
> 
> Are you familiar with any simple "non-core" module that does it ? I will
> need to test for the existence of this function or the need to explicitly
> add librt, and update CORE_LIBS accordingly + define some preprocessor macro
> that I can later #ifdef on in my code.

The code as in feature tests in auto/unix is more or less the same 
you'll need in your module config file, e.g.:

ngx_feature="sched_yield()"
ngx_feature_name="NGX_HAVE_SCHED_YIELD"
ngx_feature_run=no
ngx_feature_incs="#include <sched.h>"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="sched_yield()"
. auto/feature


if [ $ngx_found != yes ]; then

    ngx_feature="sched_yield() in librt"
    ngx_feature_libs="-lrt"
    . auto/feature

    if [ $ngx_found = yes ]; then
        CORE_LIBS="$CORE_LIBS -lrt"
    fi
fi

Replacing sched_yield() here with clock_gettime() as appropriate 
should do the trick.

Note well that the whole configure system is in shell, so it's 
easy to read and understand.

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx mailing list