embox
/
Makefile
43 строки · 1.4 Кб
1#
2# Embox root Makefile.
3#
4# This file have just to setup proper make flags and to invoke mk/main.mk
5# which will perform the real work.
6#
7# Author: Eldar Abusalimov
8#
9
10# Check Make version (we need at least GNU Make 3.81). Fortunately,
11# '.FEATURES' built-in variable has been introduced exactly in GNU Make 3.81.
12ifneq ($(origin .FEATURES),default)
13$(error Unsupported Make version. \
14Mybuild does not work properly with GNU Make $(MAKE_VERSION), \
15please use GNU Make 3.81 or above.)
16endif
17
18# Disable everything, turn on undefined variables check.
19MAKEFLAGS += --no-builtin-rules
20MAKEFLAGS += --no-builtin-variables
21MAKEFLAGS += --no-print-directory
22MAKEFLAGS += --warn-undefined-variables
23
24# Fixup for case when prompt contains dollar signs.
25# Avoids bogus 'undefined variable' warnings.
26export PS1 :=
27
28.DEFAULT_GOAL := all
29
30# Force multiple targets listed in the command line to run independently,
31# even if -j option is enabled. This allows 'make -j clean all' to run
32# properly, at the same time executing each target in parallel.
33.NOTPARALLEL :
34
35.PHONY : $(sort all $(MAKECMDGOALS))
36$(sort all $(MAKECMDGOALS)) :
37
38# To account for upper limit on stack size in Mac OS X
39ifneq ($(shell uname -s), Darwin)
40@ulimit -s 65536 && $(MAKE) -C $(dir $(lastword $(MAKEFILE_LIST))) -f mk/main.mk $@
41else
42@ulimit -s $(shell ulimit -Hs) && $(MAKE) -C $(dir $(lastword $(MAKEFILE_LIST))) -f mk/main.mk $@
43endif
44
45