include setup/base/config_base_base
include setup/test_base
include setup/test_data

# MSYS's uname returns the OS as part of -s, e.g. MINGW32_NT-4.0
# So we translate this into something nicer.
SYSTEM=$(shell uname -s | sed -e 's/MINGW.*/Mingw/g')
SYSFILES=$(wildcard setup/$(SYSTEM)/config*)

# TODO: This should be refactorred into a foreach
default: config
	+$(MAKE) -C src
#	+$(MAKE) -C plugins
	+$(MAKE) -C tools

config: setup/base/* $(SYSFILES)
	$(foreach test, $(TESTS), $(call TEST_template, $(test)))
	@echo Going to use $(SYSTEM) specific settings
	@cat -- setup/base/config* > config
	@cp -- $(SYSFILES) . || cp -- setup/Linux/config* .
	@cat config_* >> config
	@rm -f config_*

reconfig:
	@echo Resetting config
	-rm -f config config_*
	@$(MAKE) config

.PHONY: clean cleaner doxygen

# TODO: This should be refactorred into a foreach
clean:
	+$(MAKE) -C src clean || (touch config; $(MAKE) -C src clean; rm config)
	+$(MAKE) -C plugins clean || (touch config; $(MAKE) -C plugins clean; rm config)
	+$(MAKE) -C tools clean || (touch config; $(MAKE) -C tools clean; rm config)

cleaner: clean
	-rm -f config config_* freecnc.log audplay.log shpview.log tmpinied.log

doxygen:
	cd doc/tech/doxygen && doxygen
