summaryrefslogtreecommitdiff
blob: d9ae18f17e317833cea9be3ec7f0e5bf97754f82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
################################################################################
## CONFIG ######################################################################
################################################################################
MODULES ?= battlemap

SRC_DIR ?= ${CURDIR}/src

################################################################################
## MAKEFILE MAGIC ##############################################################
################################################################################
MODULES_SRC = $(addprefix $(SRC_DIR)/,$(MODULES))

################################################################################
## SANITY CHECKS ###############################################################
################################################################################
MISSING_MODULES_DIR = \
	$(filter-out $(wildcard $(MODULES_SRC)),$(MODULES_SRC))

ifneq ($(MISSING_MODULES_DIR),)
$(error "The following modules are missing: $(MISSING_MODULES_DIR)")
endif

################################################################################
## TARGET RULES ################################################################
################################################################################
all:
	for module in $(MODULES_SRC) ; do \
		$(MAKE) -C $$module all; \
	done

debug:
	for module in $(MODULES_SRC) ; do \
		$(MAKE) -C $$module debug ; \
	done

build:
	for module in $(MODULES_SRC) ; do \
		$(MAKE) -C $$module build ; \
	done

run:
	for module in $(MODULES_SRC) ; do \
		$(MAKE) -C $$module run; \
	done

clean:
	for module in $(MODULES_SRC) ; do \
		$(MAKE) -C $$module clean; \
	done

################################################################################
## INTERNAL RULES ##############################################################
################################################################################