5
export ROOT_DIR := $(abspath .)
6
export EMBOX_ROOT_DIR := $(abspath $(ROOT_DIR))
8
export CONF_DIR = $(ROOT_DIR)/conf
9
export TEMPLATES_DIR = $(ROOT_DIR)/templates
11
export SRC_DIR = $(ROOT_DIR)/src
12
export THIRDPARTY_DIR = $(ROOT_DIR)/third-party
13
export PLATFORM_DIR = $(ROOT_DIR)/platform
14
export PROJECT_DIR = $(ROOT_DIR)/project
15
export EXT_PROJECT_DIR = $(ROOT_DIR)/ext_project
17
export SUBPLATFORM_TEMPLATE_DIR = templates/
19
export BUILD_DIR = $(ROOT_DIR)/build/base
20
export EXTERNAL_BUILD_DIR = $(ROOT_DIR)/build/extbld
21
export LOADABLE_DIR = $(ROOT_DIR)/build/loadable
23
export DOC_DIR = $(ROOT_DIR)/build/doc
25
export BIN_DIR = $(BUILD_DIR)/bin
26
export OBJ_DIR = $(BUILD_DIR)/obj
28
export DIST_DIR = $(ROOT_DIR)/build
29
export DIST_BASE_DIR = $(DIST_DIR)/base
30
export GEN_DIR = $(DIST_BASE_DIR)/gen
31
export SRCGEN_DIR = $(GEN_DIR)
32
export MKGEN_DIR = $(GEN_DIR)
33
export AUTOCONF_DIR = $(GEN_DIR)
35
export INCLUDE_INSTALL_DIR = $(DIST_BASE_DIR)/include
38
export ROOTFS_DIR = $(OBJ_DIR)/rootfs
39
export ROOTFS_IMAGE = $(OBJ_DIR)/rootfs.cpio
40
export USER_ROOTFS_DIR = $(CONF_DIR)/rootfs
41
export DOT_DIR = $(DOC_DIR)
42
export DOCS_OUT_DIR = $(DOC_DIR)
44
export CACHE_DIR = mk/.cache
46
export EMBOX_DIST_BASE_DIR := $(abspath $(DIST_BASE_DIR))
47
export EXTBLD_LIB = $(abspath $(ROOT_DIR))/mk/extbld/lib.mk
48
export EMBOX_GCC_ENV = $(abspath $(MKGEN_DIR))/embox_gcc_env.sh
50
export ANNOTATION_HANDLERS = mk/mybuild/annotation_handlers
56
# find_tool_impl - finds an utillity to be implementation for requested tool.
57
# This should be used to select proper program on different systems, like
58
# 'awk' on linux and 'gawk' on bsd. Returns first utility found.
60
# Example: $(call find_tool_impl,AWK,gawk awk nawk mawk,awk)
63
# 1. tool (uppercase label)
64
# 2. space separated list of utillity names to look at
66
find_tool_impl = $(shell \
68
type $$i >/dev/null 2>&1 && \
72
printf "%s: Found no implementation for %s tool, tried: %s; taking '%s' as default\n" "$0" "$1" "$2" "$3" >&2; \
78
export PRINTF := printf
79
export MKDIR := mkdir -p
81
export MD5 := $(if $(shell which md5sum 2>/dev/null),md5sum,md5 -q)
82
export CPIO := $(call find_tool_impl,CPIO,gcpio gnucpio cpio,cpio)
83
export AWK := $(call find_tool_impl,AWK,gawk awk nawk mawk,awk)
85
export TAC := $(if $(shell which tac 2>/dev/null),tac,tail -rq)
87
export ECHO := $(shell which echo) #force using feature-rich echo instead of shell builtin