Basic njs support.

This commit is contained in:
Zhidao HONG
2022-11-20 23:16:51 +08:00
parent 4735931ace
commit 4d6d146e92
20 changed files with 507 additions and 44 deletions

View File

@@ -41,6 +41,8 @@ cat << END
--openssl enable OpenSSL library usage
--njs enable NJS library usage
--debug enable debug logging

41
auto/njs Normal file
View File

@@ -0,0 +1,41 @@
# Copyright (C) NGINX, Inc.
nxt_found=no
NXT_HAVE_NJS=NO
NXT_NJS_CFLAGS=
NXT_NJS_AUX_CFLAGS=
NXT_NJS_LIBS="-lnjs"
NXT_NJS_AUX_LIBS="$NXT_LIBM $NXT_LIB_AUX_LIBS"
nxt_feature="NJS"
nxt_feature_name=NXT_HAVE_NJS
nxt_feature_run=no
nxt_feature_incs="$NXT_NJS_CFLAGS $NXT_NJS_AUX_CFLAGS"
nxt_feature_libs="$NXT_NJS_LIBS $NXT_NJS_AUX_LIBS"
nxt_feature_test="#include <njs.h>
int main(void) {
njs_vm_t *vm;
njs_vm_opt_t opts;
njs_vm_opt_init(&opts);
vm = njs_vm_create(&opts);
if (vm == NULL)
return 1;
return 0;
}"
. auto/feature
if [ $nxt_found = no ]; then
$echo
$echo $0: error: no NJS library found.
$echo
exit 1;
fi
NXT_LIB_AUX_CFLAGS="$NXT_LIB_AUX_CFLAGS $NXT_NJS_CFLAGS"
NXT_LIB_AUX_LIBS="$NXT_NJS_LIBS $NXT_LIB_AUX_LIBS"

View File

@@ -28,6 +28,8 @@ NXT_GNUTLS=NO
NXT_CYASSL=NO
NXT_POLARSSL=NO
NXT_NJS=NO
NXT_TEST_BUILD_EPOLL=NO
NXT_TEST_BUILD_EVENTPORT=NO
NXT_TEST_BUILD_DEVPOLL=NO
@@ -85,6 +87,8 @@ do
--cyassl) NXT_CYASSL=YES ;;
--polarssl) NXT_POLARSSL=YES ;;
--njs) NXT_NJS=YES ;;
--test-build-epoll) NXT_TEST_BUILD_EPOLL=YES ;;
--test-build-eventport) NXT_TEST_BUILD_EVENTPORT=YES ;;
--test-build-devpoll) NXT_TEST_BUILD_DEVPOLL=YES ;;

View File

@@ -135,6 +135,10 @@ NXT_LIB_POLARSSL_SRCS="src/nxt_polarssl.c"
NXT_LIB_PCRE_SRCS="src/nxt_pcre.c"
NXT_LIB_PCRE2_SRCS="src/nxt_pcre2.c"
if [ "$NXT_NJS" != "NO" ]; then
NXT_LIB_SRCS="$NXT_LIB_SRCS src/nxt_js.c"
fi
NXT_LIB_EPOLL_SRCS="src/nxt_epoll_engine.c"
NXT_LIB_KQUEUE_SRCS="src/nxt_kqueue_engine.c"
NXT_LIB_EVENTPORT_SRCS="src/nxt_eventport_engine.c"

View File

@@ -28,6 +28,7 @@ Unit configuration summary:
Unix domain sockets support: $NXT_UNIX_DOMAIN
TLS support: ............... $NXT_OPENSSL
Regex support: ............. $NXT_REGEX
NJS support: ............... $NXT_NJS
process isolation: ......... $NXT_ISOLATION