aboutsummaryrefslogtreecommitdiff
path: root/Makefile.inc
blob: f7fdb79b1dcc992c063900f3e0a558dfdef2ffd0 (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
# TODO: MAKEFILE_LIST может хранить больше, чем один (наш) Makefile, в
# зависимости от переменной окружения MAKEFILES
buildsysdir = $(strip $(dir $(firstword $(MAKEFILE_LIST))))
projectdir  = $(CURDIR:$(buildsysdir)%=%)
subdirs     = $(addprefix $(projectdir)/,$(SUBDIRS))

build:
	@if [ "$(DRIVER)" = "subdir" ]; then                            \
	  echo "Building subdirs from $(projectdir)";                   \
	fi
	@builtlist="$(BUILTLIST)";                                      \
	deps='';                                                        \
	for i in $(DEPENDS) $(subdirs); do                              \
		if	[[ ":$$builtlist:" != *":$$i:"* ]]; then                  \
	    deps=$$(make BUILTLIST="$$builtlist" -C "$(buildsysdir)$$i" 3>&1 1>&2 | xargs | tr [:space:] ':'); \
		  builtlist="$$builtlist:$$deps";                             \
			echo "$$i" >&3;                                             \
		fi                                                            \
	done;
	@if [ "$(DRIVER)" == "executable" ] || [ "$(DRIVER)" == "dynamic-library" ]; then \
	  echo "Building $(DRIVER) $(projectdir)" >&2;                                \
	fi
# здесь мог бы быть сам процесс сборки, определённый 
# для executable и dynamic-library
	@echo "$(projectdir)" >&3

# vim: set ft=make: