autoconf: Allow overriding CFLAGS/CXXFLAGS from outside.

As is normal for autoconf-based projects.

For example, it is a common use case to do

    ./configure CXXFLAGS=-O0

This did not work for nix until now, because the `CXXFLAGS=` declaration
would unconditionally erase what the user had specified.

The custom `OPTIMIZE` flag is removed, but the default `-O3` is retained;
autoconf would default to `-g -O2` by default otherwise as documented on:

https://www.gnu.org/software/autoconf/manual/autoconf-2.60/html_node/C-Compiler.html
https://www.gnu.org/software/autoconf/manual/autoconf-2.60/html_node/C_002b_002b-Compiler.html
This commit is contained in:
Niklas Hambüchen 2019-07-02 22:30:15 +02:00
parent 20129bd83d
commit 717e821b99
4 changed files with 8 additions and 18 deletions

View file

@ -19,11 +19,4 @@ GLOBAL_CXXFLAGS += -g -Wall -include config.h
-include Makefile.config -include Makefile.config
OPTIMIZE = 1
ifeq ($(OPTIMIZE), 1)
GLOBAL_CFLAGS += -O3
GLOBAL_CXXFLAGS += -O3
endif
include mk/lib.mk include mk/lib.mk

View file

@ -50,8 +50,10 @@ AC_DEFINE_UNQUOTED(SYSTEM, ["$system"], [platform identifier ('cpu-os')])
test "$localstatedir" = '${prefix}/var' && localstatedir=/nix/var test "$localstatedir" = '${prefix}/var' && localstatedir=/nix/var
CFLAGS= # Set default flags for nix (as per AC_PROG_CC/CXX docs),
CXXFLAGS= # while still allowing the user to override them from the command line.
: ${CFLAGS="-O3"}
: ${CXXFLAGS="-O3"}
AC_PROG_CC AC_PROG_CC
AC_PROG_CXX AC_PROG_CXX
AC_PROG_CPP AC_PROG_CPP

View file

@ -4,11 +4,4 @@ GLOBAL_CXXFLAGS += -g -Wall
-include Makefile.config -include Makefile.config
OPTIMIZE = 1
ifeq ($(OPTIMIZE), 1)
GLOBAL_CFLAGS += -O3
GLOBAL_CXXFLAGS += -O3
endif
include mk/lib.mk include mk/lib.mk

View file

@ -2,8 +2,10 @@ AC_INIT(nix-perl, m4_esyscmd([bash -c "echo -n $(cat ../.version)$VERSION_SUFFIX
AC_CONFIG_SRCDIR(MANIFEST) AC_CONFIG_SRCDIR(MANIFEST)
AC_CONFIG_AUX_DIR(../config) AC_CONFIG_AUX_DIR(../config)
CFLAGS= # Set default flags for nix (as per AC_PROG_CC/CXX docs),
CXXFLAGS= # while still allowing the user to override them from the command line.
: ${CFLAGS="-O3"}
: ${CXXFLAGS="-O3"}
AC_PROG_CC AC_PROG_CC
AC_PROG_CXX AC_PROG_CXX
AX_CXX_COMPILE_STDCXX_11 AX_CXX_COMPILE_STDCXX_11