]> git.kaiwu.me - njs.git/commitdiff
Configure: generating $NJS_LIB_OBJS using sed.
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 29 Oct 2020 12:46:19 +0000 (12:46 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Thu, 29 Oct 2020 12:46:19 +0000 (12:46 +0000)
auto/init [new file with mode: 0644]
auto/make
configure

diff --git a/auto/init b/auto/init
new file mode 100644 (file)
index 0000000..648ec26
--- /dev/null
+++ b/auto/init
@@ -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=' \\\
+       '
index 4ec533feefe5de422b51f10df049d35b7d2f8963..4c788ef8cd1332172a6bd1dbfc19fb0e547d500c 100644 (file)
--- a/auto/make
+++ b/auto/make
@@ -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
+NJS_LIB_INCS = -Isrc -I$NJS_BUILD_DIR
 
-echo >> $NJS_MAKEFILE
-echo >> $NJS_MAKEFILE
-
-
-# The njs object files list.
-
-echo "NJS_LIB_OBJS = \\" >> $NJS_MAKEFILE
-
-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 @@ $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
index 2d501c8d895661680d76b26f87810c9559c39302..f3e845dca689a45cf5149e46cb625c21cbe58a72 100755 (executable)
--- a/configure
+++ b/configure
@@ -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