From: Dmitry Volyntsev Date: Thu, 22 Oct 2026 00:38:04 +0000 (-0700) Subject: Modules: fix incremental engine build dependencies X-Git-Url: https://git.kaiwu.me/?a=commitdiff_plain;h=b59abf30e34c9914bf136f8a135149395889700a;p=njs.git Modules: fix incremental engine build dependencies Existing archives prevent the nested make from checking engine source changes. QuickJS builds also omit libnjs.a and engine headers from the module dependencies. Changes to engine sources are now picked up by nginx make without rerunning configure or removing the existing libraries. --- diff --git a/nginx/config b/nginx/config index 654d6704..15d4f9cf 100644 --- a/nginx/config +++ b/nginx/config @@ -157,14 +157,17 @@ if [ $NJS_ZLIB != NO ]; then fi -NJS_ENGINE_DEP="$NJS_BUILD_DIR/libnjs.a" NJS_ENGINE_LIB="$NJS_BUILD_DIR/libnjs.a" if [ "$NJS_HAVE_QUICKJS" = "YES" ]; then - NJS_ENGINE_DEP="$NJS_BUILD_DIR/libqjs.a" NJS_ENGINE_LIB="$NJS_ENGINE_LIB $NJS_BUILD_DIR/libqjs.a" QJS_SRCS="$QJS_SRCS $ngx_addon_dir/ngx_qjs_fetch.c" fi +NJS_ENGINE_DEP="$NJS_ENGINE_LIB $NJS_BUILD_DIR/njs_auto_config.h" +NJS_DEPS="$NJS_DEPS `echo $ngx_addon_dir/../src/*.h` \ + `echo $ngx_addon_dir/../external/*.h` \ + $ngx_addon_dir/../external/njs_regex.c" + if [ $HTTP != NO ]; then ngx_module_type=HTTP_AUX_FILTER ngx_module_name="ngx_http_js_module ngx_http_js_core_module" diff --git a/nginx/config.make b/nginx/config.make index d55987cb..7b0d1ef4 100644 --- a/nginx/config.make +++ b/nginx/config.make @@ -1,20 +1,45 @@ +NJS_BUILD_TARGETS=libnjs +NJS_QUICKJS_OPT=--no-quickjs + +if [ "$NJS_HAVE_QUICKJS" = YES ]; then + NJS_BUILD_TARGETS="libnjs libqjs" + NJS_QUICKJS_OPT="--with-quickjs --quickjs-inc=\"$NJS_QUICKJS_INC\" \ + --quickjs-lib=\"$NJS_QUICKJS_LIB\"" +fi + cat << END >> $NGX_MAKEFILE -$NJS_BUILD_DIR/libnjs.a: $NGX_MAKEFILE +.PHONY: njs_build + +njs_build: $NJS_BUILD_DIR/Makefile + +$NJS_BUILD_DIR/Makefile: $NGX_MAKEFILE \\ + $ngx_addon_dir/../configure `echo $ngx_addon_dir/../auto/*` cd $ngx_addon_dir/.. \\ && CFLAGS="\$(CFLAGS)" CC="\$(CC)" ./configure --no-openssl \\ - --no-libxml2 --no-zlib --no-pcre --no-quickjs \\ - --no-root-makefile --build-dir="$NJS_BUILD_DIR" \\ - --ld-opt="$NGX_LD_OPT" \\ - && \$(MAKE) -f $NJS_BUILD_DIR/Makefile libnjs + --no-libxml2 --no-zlib --no-pcre --no-root-makefile \\ + --build-dir="$NJS_BUILD_DIR" --ld-opt="$NGX_LD_OPT" \\ + $NJS_QUICKJS_OPT -$NJS_BUILD_DIR/libqjs.a: $NGX_MAKEFILE +$NJS_ENGINE_DEP: njs_build + +$NJS_BUILD_DIR/libnjs.a: cd $ngx_addon_dir/.. \\ - && CFLAGS="\$(CFLAGS)" CC="\$(CC)" ./configure --no-openssl \\ - --no-libxml2 --no-zlib --no-pcre --with-quickjs \\ - --no-root-makefile --build-dir="$NJS_BUILD_DIR" \\ - --quickjs-inc="$NJS_QUICKJS_INC" \\ - --quickjs-lib="$NJS_QUICKJS_LIB" --ld-opt="$NGX_LD_OPT" \\ - && \$(MAKE) -f $NJS_BUILD_DIR/Makefile libnjs libqjs + && \$(MAKE) -f $NJS_BUILD_DIR/Makefile \\ + $NJS_BUILD_TARGETS + +END + +if [ "$NJS_HAVE_QUICKJS" = YES ]; then + cat << END >> $NGX_MAKEFILE + +$NJS_BUILD_DIR/libqjs.a: $NJS_BUILD_DIR/libnjs.a + +END +fi + +cat << END >> $NGX_MAKEFILE + +$NJS_BUILD_DIR/njs_auto_config.h: $NJS_BUILD_DIR/libnjs.a END