From 06bf4f095abcb13452e54dc5a9e25bcc361deace Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 18 Dec 2015 01:28:48 +0100 Subject: build system fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- mk/configure | 37 ++++++++++++++++++++++--------------- mk/lang-c.mk | 12 ++++++++++-- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/mk/configure b/mk/configure index 6351380..732163e 100644 --- a/mk/configure +++ b/mk/configure @@ -29,6 +29,19 @@ exec 10>config.status exec 20>.config.mk +# Print a quoted (if necessary) version of a string +quote () +{ + value="$1" + if ! test "${value%%\'*}" = "${value}"; then + value="'$(echo "${value}" | sed "s/'/'\\\\''/g")'" + elif ! test "$(printf '%s' ${value})" = "${value}"; then + value="'${value}'" + fi + echo "${value}" +} + + # Parse command line. incomplete= dashed= @@ -284,7 +297,7 @@ for option; do if test "${option%%=*}" = "${option}"; then incomplete="${option}" else - eval "${nodash}=${option#*=}" + eval "${nodash}=$(quote "${option#*=}")" eval "have_${nodash}=yes" fi done @@ -395,14 +408,9 @@ fi # Set unset directories to their default. defdir () { - p="${2}" + p="$(quote "${2}")" if ! test "${p%%\'*}" = "${p}"; then p="$(echo "${p}" | sed "s/'/'\\\\''/g")" - p="'${p}'" - p="$(echo "${p}" | sed "s/'/'\\\\''/g")" - elif ! test "$(printf '%s' ${p})" = "${p}"; then - p="'${p}'" - p="$(echo "${p}" | sed "s/'/'\\\\''/g")" fi if ! test -n "$(eval echo '${have_'"${1}"'}')"; then eval "${1}='${p}'" @@ -496,7 +504,7 @@ defdir man7 "man7${MAN_SECTION_SUFFIX}" defdir man8 "man8${MAN_SECTION_SUFFIX}" defdir man9 "man9${MAN_SECTION_SUFFIX}" if test -n "${MAN_SECTION}" && ! test -n "$(eval echo '${man'"${MAN_SECTION}"'ext}')"; then - defdir man${MAN_SECTION}ext "$(eval echo '${man'"${MAN_SECTION}"'ext}')" + defdir "man${MAN_SECTION}ext" "$(eval echo '${man'"${MAN_SECTION}"'ext}')" fi defdir man0ext ".0" defdir man1ext ".1" @@ -522,12 +530,7 @@ fi if test -n "${srcdir}"; then srcdir="$(realpath "${srcdir}")/" srcdir_proper="${srcdir}" - if ! test "${srcdir%%\'*}" = "${srcdir}"; then - srcdir="$(echo "${srcdir}" | sed "s/'/'\\\\''/g")" - srcdir="'${srcdir}'" - elif ! test "$(printf '%s' ${srcdir})" = "${srcdir}"; then - srcdir="'${srcdir}'" - fi + srcdir="$(quote "${srcdir}")" fi if ! test -f "${srcdir_proper}Makefile.in"; then echo "${0}: error: cannot found source directory." @@ -548,7 +551,11 @@ echo >&10 echo 'cd "$(dirname "${0}")"' >&10 # config.status calls ./configure with all arguments you called ./configure. -echo "exec ${0}" "$@" >&10 +printf "exec %s" "${0}" >&10 +for option; do + printf " %s" "$(quote "${option}")" >&10 +done +echo >&10 # Close config.status. exec 10>&- diff --git a/mk/lang-c.mk b/mk/lang-c.mk index b8076d6..36d4496 100644 --- a/mk/lang-c.mk +++ b/mk/lang-c.mk @@ -60,11 +60,11 @@ endif # BUILD VARIABLES: # Optimisation settings for C code compilation. +ifndef OPTIMISE ifndef DEBUG OPTIMISE = -O2 -g endif -ifndef DEBUG -ifdef OPTIMISE +ifdef DEBUG ifdef __USING_GCC OPTIMISE = -Og -g endif @@ -78,6 +78,7 @@ endif ifdef _PEDANTIC _PEDANTIC = -pedantic endif +ifndef WARN ifndef DEBUG WARN = -Wall endif @@ -99,6 +100,7 @@ ifndef __USING_GCC WARN = -Wall -Wextra $(_PEDANTIC) endif endif +endif # Support for internationalisation? ifndef WITHOUT_GETTEXT @@ -112,9 +114,15 @@ _CPPFLAGS += $(foreach D,$(_ALL_DIRS),-D'$(D)="$($(D))"') # MORE HELP VARIABLES: # Compilation and linking flags, and command. +ifndef CPPFLAGS CPPFLAGS = +endif +ifndef CFLAGS CFLAGS = $(OPTIMISE) $(WARN) +endif +ifndef LDFLAGS LDFLAGS = $(OPTIMISE) $(WARN) +endif __CC = $(CC) -std=$(_C_STD) -c $(_CPPFLAGS) $(_CFLAGS) __LD = $(CC) -std=$(_C_STD) $(_LDFLAGS) __CC_POST = $(CPPFLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS) $(EXTRA_CFLAGS) -- cgit v1.2.3-70-g09d2