From: Dmitry Volyntsev Date: Tue, 5 Nov 2019 17:49:57 +0000 (+0300) Subject: Added arguments validation for configure script. X-Git-Url: http://git.kaiwu.me/postgresql/log/contrib/postgres_fdw/static/gitweb.js?a=commitdiff_plain;h=dee65b364e5bff567ddc4b626d14ea80b9b78180;p=njs.git Added arguments validation for configure script. --- diff --git a/auto/help b/auto/help new file mode 100644 index 00000000..56de8653 --- /dev/null +++ b/auto/help @@ -0,0 +1,15 @@ + +# Copyright (C) Igor Sysoev +# Copyright (C) NGINX, Inc. + + +cat << END + +./configure options: + + --cc=FILE set C compiler filename, default: "$CC" + --cc-opt=OPTIONS set additional C compiler options + --ld-opt=OPTIONS set additional linker options + --ar=FILE set static linking program, default: "$AR" + +END diff --git a/auto/make b/auto/make index 744980d9..249f59fa 100644 --- a/auto/make +++ b/auto/make @@ -15,8 +15,9 @@ cat << END > $NJS_MAKEFILE # This file is auto-generated by configure NJS_CC = ${CC} -NJS_AR = ${AR} -NJS_CFLAGS = ${NJS_CFLAGS} ${CFLAGS} +NJS_STATIC_LINK = ${AR} -r -c +NJS_LINK = ${CC} ${NJS_LD_OPT} +NJS_CFLAGS = ${NJS_CFLAGS} ${NJS_CC_OPT} ${CFLAGS} default: $NJS_DEFAULT_TARGET END @@ -58,7 +59,7 @@ $NJS_BUILD_DIR/libnjs.a: \\ $NJS_BUILD_DIR/njs_auto_config.h \\ \$(NJS_LIB_OBJS) - \$(NJS_AR) -r -c $NJS_BUILD_DIR/libnjs.a \\ + \$(NJS_STATIC_LINK) $NJS_BUILD_DIR/libnjs.a \\ \$(NJS_LIB_OBJS) END @@ -98,7 +99,7 @@ cat << END >> $NJS_MAKEFILE $NJS_BUILD_DIR/njs: \\ $NJS_BUILD_DIR/libnjs.a \\ src/njs_shell.c - \$(NJS_CC) -o $NJS_BUILD_DIR/njs \$(NJS_CFLAGS) \\ + \$(NJS_LINK) -o $NJS_BUILD_DIR/njs \$(NJS_CFLAGS) \\ $NJS_LIB_AUX_CFLAGS \$(NJS_LIB_INCS) -Injs \\ src/njs_shell.c \\ $NJS_BUILD_DIR/libnjs.a \\ diff --git a/auto/options b/auto/options new file mode 100644 index 00000000..48aec163 --- /dev/null +++ b/auto/options @@ -0,0 +1,41 @@ + +# Copyright (C) Igor Sysoev +# Copyright (C) NGINX, Inc. + + +NJS_CONFIGURE_OPTIONS= +NJS_CC_OPT=${NJS_CC_OPT:--O} +NJS_LD_OPT=${NJS_CC_OPT:--O} + +for njs_option +do + case "$njs_option" in + -*=*) value=`echo "$njs_option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) value="" ;; + esac + + case "$njs_option" in + --cc=*) CC="$value" ;; + --cc-opt=*) NJS_CC_OPT="$value" ;; + --ld-opt=*) NJS_LD_OPT="$value" ;; + --ar=*) AR="$value" ;; + + --help) + . auto/help + exit 0 + ;; + + *) + echo + echo $0: error: invalid option \"$njs_option\". + echo Run \"$0 --help\" to see available options. + echo + exit 1 + ;; + esac + + njs_opt=`echo $njs_option | sed -e "s/\(--[^=]*=\)\(.* .*\)/\1'\2'/"` + + NJS_CONFIGURE_OPTIONS="$NJS_CONFIGURE_OPTIONS $njs_opt" + +done diff --git a/auto/summary b/auto/summary new file mode 100644 index 00000000..9399ed92 --- /dev/null +++ b/auto/summary @@ -0,0 +1,25 @@ + +# Copyright (C) Igor Sysoev +# Copyright (C) NGINX, Inc. + + +echo +echo "NJS configuration summary:" +echo +echo " + using CC: \"$CC\"" +echo " + using CFLAGS: \"$NJS_CFLAGS $NJS_CC_OPT $CFLAGS\"" +echo +echo " + using PCRE library: $NJS_PCRE_LIB" + +if [ $NJS_HAVE_READLINE = YES ]; then + echo " + using readline library: $NJS_READLINE_LIB" +fi + +echo +echo " njs build dir: $NJS_BUILD_DIR" + +if [ $NJS_HAVE_READLINE = YES ]; then + echo " njs CLI: $NJS_BUILD_DIR/njs" +fi + +echo diff --git a/configure b/configure index 18b2cfe3..9276a29b 100755 --- a/configure +++ b/configure @@ -24,8 +24,6 @@ NJS_TEST_LIBS=${NJS_TEST_LIBS=} CC=${CC:-cc} AR=${AR:-ar} NJS_CFLAGS=${NJS_CFLAGS=} -NJS_CC_OPT=${NJS_CC_OPT:--O} -NJS_LD_OPT=${NJS_CC_OPT:--O} NJS_BUILD_DIR=${NJS_BUILD_DIR:-build} @@ -47,6 +45,7 @@ END NJS_LIBRT= . auto/os +. auto/options . auto/cc . auto/clang . auto/time @@ -65,3 +64,5 @@ NJS_LIB_AUX_LIBS="$NJS_PCRE_LIB" . auto/make . auto/expect + +. auto/summary