#
# Empire - A multi-player, client/server Internet based war game.
-# Copyright (C) 1986-2017, Dave Pare, Jeff Bailey, Thomas Ruschak,
+# Copyright (C) 1986-2021, Dave Pare, Jeff Bailey, Thomas Ruschak,
# Ken Stevens, Steve McClure, Markus Armbruster
#
# Empire is free software: you can redistribute it and/or modify
# Make.mk: The real Makefile, included by GNUmakefile
#
# Known contributors to this file:
-# Markus Armbruster, 2005-2017
+# Markus Armbruster, 2005-2020
#
# This makefile was inspired by `Recursive Make Considered Harmful',
ifeq ($(revctrl),git)
src := $(shell cd $(srcdir) && git ls-files | uniq)
version := $(shell cd $(srcdir) && build-aux/git-version-gen /dev/null)
+ifeq ($(version),UNKNOWN)
+$(warning cannot figure out version number, falling back to git hash)
+version := UNKNOWN-$(shell cd $(srcdir) && git-rev-parse --verify --short HEAD || echo "UNKNOWN")
+endif
else
include $(srcdir)/sources.mk
version := $(shell cat $(srcdir)/.tarball-version || echo "UNKNOWN")
endif
ifeq ($(version),UNKNOWN)
-$(error cannot figure out version)
+$(error cannot figure out version number)
endif
dirs := $(sort $(dir $(src)))
csrc := $(filter %.c, $(src))
topics := $(patsubst %.t,%,$(notdir $(tsrc)))
info := $(topics) $(subjects) all TOP
scripts := $(srcdir)/src/scripts
-depcomp := $(SHELL) $(srcdir)/depcomp
+depcomp := $(SHELL) $(srcdir)/build-aux/depcomp
tarball := $(SHELL) -e $(scripts)/tarball
econfig := $(sysconfdir)/empire/econfig
schedule := $(sysconfdir)/empire/schedule
quiet-command = @echo $2 && $1
endif
+# Helper for running tests
+# Usage: $(call run-test, SHELL-SCRIPT)
+# Recursively expanded, or else parameters don't work
+run-test = $(call quiet-command, $(SHELL) -e $1 $(srcdir), TEST $1)
+
# How to substitute Autoconf output variables
# Recursively expanded so that $@ and $< work.
subst.in = sed \
check-accept: export EMPIRE_CHECK_ACCEPT := y
_check: all
@echo "Warning: test suite is immature and needs work." >&2
- $(srcdir)/tests/files-test $(srcdir)
- $(srcdir)/tests/fairland-test $(srcdir)
- $(srcdir)/tests/info-test $(srcdir)
+ $(call run-test, $(srcdir)/tests/files-test)
+ $(call run-test, $(srcdir)/tests/fairland-test)
+ $(call run-test, $(srcdir)/tests/info-test)
ifeq ($(empthread),LWP)
- $(srcdir)/tests/smoke-test $(srcdir)
- $(srcdir)/tests/actofgod-test $(srcdir)
- $(srcdir)/tests/build-test $(srcdir)
- $(srcdir)/tests/navi-march-test $(srcdir)
- $(srcdir)/tests/fire-test $(srcdir)
- $(srcdir)/tests/torpedo-test $(srcdir)
- $(srcdir)/tests/bridgefall-test $(srcdir)
- $(srcdir)/tests/retreat-test $(srcdir)
- $(srcdir)/tests/update-test $(srcdir)
- $(srcdir)/tests/version-test $(srcdir)
+ $(call run-test, $(srcdir)/tests/smoke-test)
+ $(call run-test, $(srcdir)/tests/actofgod-test)
+ $(call run-test, $(srcdir)/tests/build-test)
+ $(call run-test, $(srcdir)/tests/load-tend-test)
+ $(call run-test, $(srcdir)/tests/navi-march-test)
+ $(call run-test, $(srcdir)/tests/fire-test)
+ $(call run-test, $(srcdir)/tests/torpedo-test)
+ $(call run-test, $(srcdir)/tests/bridgefall-test)
+ $(call run-test, $(srcdir)/tests/retreat-test)
+ $(call run-test, $(srcdir)/tests/update-test)
+ $(call run-test, $(srcdir)/tests/version-test)
else
- @echo "$(srcdir)/tests/smoke-test SKIPPED"
- @echo "$(srcdir)/tests/actofgod-test SKIPPED"
- @echo "$(srcdir)/tests/build-test SKIPPED"
- @echo "$(srcdir)/tests/navi-march-test SKIPPED"
- @echo "$(srcdir)/tests/fire-test SKIPPED"
- @echo "$(srcdir)/tests/torpedo-test SKIPPED"
- @echo "$(srcdir)/tests/bridgefall-test SKIPPED"
- @echo "$(srcdir)/tests/retreat-test SKIPPED"
- @echo "$(srcdir)/tests/update-test SKIPPED"
- @echo "$(srcdir)/tests/version-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/smoke-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/actofgod-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/build-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/load-tend-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/navi-march-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/fire-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/torpedo-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/bridgefall-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/retreat-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/update-test SKIPPED"
+ @echo "TEST $(srcdir)/tests/version-test SKIPPED"
endif
- $(srcdir)/tests/empdump-test $(srcdir)
+ $(call run-test, $(srcdir)/tests/empdump-test)
### Implicit rules