[njs] Configure: generating $NJS_LIB_OBJS using sed.

Dmitry Volyntsev xeioex at nginx.com
Thu Oct 29 12:59:56 UTC 2020


details:   https://hg.nginx.org/njs/rev/19d2a8d68e3a
branches:  
changeset: 1547:19d2a8d68e3a
user:      Dmitry Volyntsev <xeioex at nginx.com>
date:      Thu Oct 29 12:46:19 2020 +0000
description:
Configure: generating $NJS_LIB_OBJS using sed.

diffstat:

 auto/init |  36 ++++++++++++++++++++++++++++++++++++
 auto/make |  36 ++++--------------------------------
 configure |  32 +-------------------------------
 3 files changed, 41 insertions(+), 63 deletions(-)

diffs (146 lines):

diff -r 3d8f6b9548c0 -r 19d2a8d68e3a auto/init
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/auto/init	Thu Oct 29 12:46:19 2020 +0000
@@ -0,0 +1,36 @@
+
+# Copyright (C) Dmitry Volyntsev
+# Copyright (C) NGINX, Inc.
+
+# Initialize variables with null values if they are not defined.
+CFLAGS=${CFLAGS=}
+NJS_TEST_CFLAGS=${NJS_TEST_CFLAGS=}
+NJS_TEST_LIBS=${NJS_TEST_LIBS=}
+
+
+# Initialize variables with default if they are not defined.
+CC=${CC:-cc}
+AR=${AR:-ar}
+NJS_CFLAGS=${NJS_CFLAGS=}
+
+NJS_BUILD_DIR=${NJS_BUILD_DIR:-build}
+
+NJS_AUTOTEST=$NJS_BUILD_DIR/autotest
+NJS_AUTOCONF_ERR=$NJS_BUILD_DIR/autoconf.err
+NJS_AUTO_CONFIG_H=$NJS_BUILD_DIR/njs_auto_config.h
+NJS_MAKEFILE=$NJS_BUILD_DIR/Makefile
+
+test -d $NJS_BUILD_DIR || mkdir $NJS_BUILD_DIR
+
+> $NJS_AUTOCONF_ERR
+
+cat << END > $NJS_AUTO_CONFIG_H
+
+/* This file is auto-generated by configure */
+
+END
+
+NJS_LIBRT=
+
+njs_regex_cont=' \\\
+	'
diff -r 3d8f6b9548c0 -r 19d2a8d68e3a auto/make
--- a/auto/make	Mon Oct 19 21:42:01 2020 +0200
+++ b/auto/make	Thu Oct 29 12:46:19 2020 +0000
@@ -9,6 +9,8 @@ echo "creating $NJS_MAKEFILE"
 mkdir -p $NJS_BUILD_DIR/src
 mkdir -p $NJS_BUILD_DIR/test
 
+njs_objs=`echo $NJS_LIB_SRCS \
+        | sed -e "s# *\([^ ]*\.\)c#$NJS_BUILD_DIR/\1o$njs_regex_cont#g"`
 
 cat << END > $NJS_MAKEFILE
 
@@ -20,38 +22,10 @@ NJS_LINK = ${CC} ${NJS_LD_OPT}
 NJS_CFLAGS = ${NJS_CFLAGS} ${NJS_CC_OPT} ${CFLAGS}
 
 default: $NJS_DEFAULT_TARGET
-END
-
-
-# The include paths list.
-
-printf "NJS_LIB_INCS =" >> $NJS_MAKEFILE
-
-for njs_inc in src $NJS_BUILD_DIR
-do
-	printf " -I$njs_inc" >> $NJS_MAKEFILE
-done
-
-echo >> $NJS_MAKEFILE
-echo >> $NJS_MAKEFILE
-
 
-# The njs object files list.
-
-echo "NJS_LIB_OBJS = \\" >> $NJS_MAKEFILE
+NJS_LIB_INCS = -Isrc -I$NJS_BUILD_DIR
 
-for njs_src in $NJS_LIB_SRCS
-do
-    fname=$(basename $njs_src)
-    njs_obj="src/${fname%.c}.o"
-    echo "    $NJS_BUILD_DIR/$njs_obj \\" >> $NJS_MAKEFILE
-done
-
-echo >> $NJS_MAKEFILE
-
-# The njs static library.
-
-cat << END >> $NJS_MAKEFILE
+NJS_LIB_OBJS = $njs_objs
 
 libnjs: $NJS_BUILD_DIR/libnjs.a
 
@@ -61,10 +35,8 @@ libnjs: $NJS_BUILD_DIR/libnjs.a
 
 	\$(NJS_STATIC_LINK) $NJS_BUILD_DIR/libnjs.a \\
 		\$(NJS_LIB_OBJS)
-
 END
 
-
 # object files.
 
 for njs_src in $NJS_LIB_SRCS
diff -r 3d8f6b9548c0 -r 19d2a8d68e3a configure
--- a/configure	Mon Oct 19 21:42:01 2020 +0200
+++ b/configure	Thu Oct 29 12:46:19 2020 +0000
@@ -13,37 +13,7 @@ set -e
 # Stop on uninitialized variable.
 set -u
 
-
-# Initialize variables with null values if they are not defined.
-CFLAGS=${CFLAGS=}
-NJS_TEST_CFLAGS=${NJS_TEST_CFLAGS=}
-NJS_TEST_LIBS=${NJS_TEST_LIBS=}
-
-
-# Initialize variables with default if they are not defined.
-CC=${CC:-cc}
-AR=${AR:-ar}
-NJS_CFLAGS=${NJS_CFLAGS=}
-
-NJS_BUILD_DIR=${NJS_BUILD_DIR:-build}
-
-NJS_AUTOTEST=$NJS_BUILD_DIR/autotest
-NJS_AUTOCONF_ERR=$NJS_BUILD_DIR/autoconf.err
-NJS_AUTO_CONFIG_H=$NJS_BUILD_DIR/njs_auto_config.h
-NJS_MAKEFILE=$NJS_BUILD_DIR/Makefile
-
-test -d $NJS_BUILD_DIR || mkdir $NJS_BUILD_DIR
-
-> $NJS_AUTOCONF_ERR
-
-cat << END > $NJS_AUTO_CONFIG_H
-
-/* This file is auto-generated by configure */
-
-END
-
-NJS_LIBRT=
-
+. auto/init
 . auto/os
 . auto/options
 . auto/cc


More information about the nginx-devel mailing list