From 1c29dd81aeb41efb0f23f7615a17004f9477186e Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Thu, 29 Oct 2020 12:46:19 +0000 Subject: [PATCH] Configure: generating $NJS_LIB_OBJS using sed. --- auto/init | 36 ++++++++++++++++++++++++++++++++++++ auto/make | 36 ++++-------------------------------- configure | 32 +------------------------------- 3 files changed, 41 insertions(+), 63 deletions(-) create mode 100644 auto/init diff --git a/auto/init b/auto/init new file mode 100644 index 00000000..648ec261 --- /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=' \\\ + ' diff --git a/auto/make b/auto/make index 4ec533fe..4c788ef8 100644 --- 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 diff --git a/configure b/configure index 2d501c8d..f3e845dc 100755 --- 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 -- 2.47.3