X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=GNUmakefile;h=767b0ee0f66a7e1ed714e33af1200686b51b3d42;hb=refs%2Fheads%2Fmaster;hp=20754e57aa52441baeb90df1ff685c7ce197496c;hpb=c8af075fbf5fe45ceaf411dc01f7016290e8d794;p=bup.git diff --git a/GNUmakefile b/GNUmakefile index 20754e5..767b0ee 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,10 +1,15 @@ MAKEFLAGS += --warn-undefined-variables -OUTPUT_OPTION = -MMD -MP -o $@ SHELL := bash .DEFAULT_GOAL := all +# So where possible we can make tests more reproducible +export BUP_TEST_RANDOM_SEED ?= $(shell echo "$$RANDOM") + +# Guard against accidentally using/testing a local bup +export PATH := $(CURDIR)/dev/shadow-bin:$(PATH) + clean_paths := generated_dependencies := @@ -32,14 +37,13 @@ current_sampledata := test/sampledata/var/rev/v$(sampledata_rev) os := $(shell ($(pf); uname | sed 's/[-_].*//') $(isok)) os := $(call shout,$(os),Unable to determine OS) +# CFLAGS CPPFLAGS LDFLAGS are handled vis config/config.vars.in + # Satisfy --warn-undefined-variables -CFLAGS ?= DESTDIR ?= -CPPFLAGS ?= -LDFLAGS ?= TARGET_ARCH ?= -bup_shared_cflags := -O2 -Wall -Werror -Wformat=2 +bup_shared_cflags := -O2 -Wall -Werror -Wformat=2 -MMD -MP bup_shared_cflags := -Wno-unknown-pragmas -Wsign-compare $(bup_shared_cflags) bup_shared_cflags := -D_FILE_OFFSET_BITS=64 $(bup_shared_cflags) bup_shared_cflags := $(bup_config_cflags) $(bup_shared_cflags) @@ -69,7 +73,7 @@ config/config.vars: configure config/configure config/configure.inc config/*.in # _XOPEN_SOURCE version, i.e. -Werror crashes on a mismatch, so for # now, we're just going to let Python's version win. -helpers_cflags := $(bup_python_cflags) $(bup_shared_cflags) -I$(CURDIR)/src +helpers_cflags = $(bup_python_cflags) $(bup_shared_cflags) -I$(CURDIR)/src helpers_ldflags := $(bup_python_ldflags) $(bup_shared_ldflags) ifneq ($(strip $(bup_readline_cflags)),) @@ -154,14 +158,14 @@ install: all $(INSTALL) -pm 0644 lib/bup/source_info.py $(dest_libdir)/bup/; \ fi -embed_cflags := $(bup_python_cflags_embed) $(bup_shared_cflags) -I$(CURDIR)/src +embed_cflags = $(bup_python_cflags_embed) $(bup_shared_cflags) -I$(CURDIR)/src embed_ldflags := $(bup_python_ldflags_embed) $(bup_shared_ldflags) config/config.h: config/config.vars clean_paths += config/config.h.tmp -cc_bin = $(CC) $(embed_cflags) $(CFLAGS) $^ $(embed_ldflags) $(LDFLAGS) -fPIE \ - -I src $(OUTPUT_OPTION) +cc_bin = $(CC) $(embed_cflags) -I src $(CPPFLAGS) $(CFLAGS) $^ \ + $(embed_ldflags) $(LDFLAGS) -fPIE -o $@ clean_paths += dev/python-proposed generated_dependencies += dev/python-proposed.d @@ -172,17 +176,17 @@ dev/python-proposed: dev/python.c src/bup/compat.c src/bup/io.c clean_paths += dev/python dev/python: dev/python-proposed dev/validate-python $@-proposed - ln $@-proposed $@ + cp -R -p $@-proposed $@ clean_paths += dev/bup-exec generated_dependencies += dev/bup-exec.d -dev/bup-exec: CFLAGS += -D BUP_DEV_BUP_EXEC=1 +dev/bup-exec: bup_shared_cflags += -D BUP_DEV_BUP_EXEC=1 dev/bup-exec: lib/cmd/bup.c src/bup/compat.c src/bup/io.c $(cc_bin) clean_paths += dev/bup-python generated_dependencies += dev/bup-python.d -dev/bup-python: CFLAGS += -D BUP_DEV_BUP_PYTHON=1 +dev/bup-python: bup_shared_cflags += -D BUP_DEV_BUP_PYTHON=1 dev/bup-python: lib/cmd/bup.c src/bup/compat.c src/bup/io.c $(cc_bin) @@ -194,8 +198,8 @@ lib/cmd/bup: lib/cmd/bup.c src/bup/compat.c src/bup/io.c clean_paths += lib/bup/_helpers$(soext) generated_dependencies += lib/bup/_helpers.d lib/bup/_helpers$(soext): lib/bup/_helpers.c lib/bup/bupsplit.c - $(CC) $(helpers_cflags) $(CFLAGS) $^ \ - $(helpers_ldflags) $(LDFLAGS) $(OUTPUT_OPTION) + $(CC) $(helpers_cflags) $(CPPFLAGS) $(CFLAGS) $^ \ + $(helpers_ldflags) $(LDFLAGS) -o $@ test/tmp: mkdir test/tmp @@ -210,6 +214,7 @@ lint: dev/bup-exec dev/bup-python ./pylint test: all test/tmp dev/python lint + ! bup version # Ensure we can't test the local bup (cf. dev/shadow-bin) ./bup features if test yes = "$$(dev/python -c 'import xdist; print("yes")' 2>/dev/null)"; then \ (set -x; ./pytest $(xdist_opt);) \