-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
70 lines (56 loc) · 1.96 KB
/
Makefile
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
MKFILE_PATH=$(abspath $(lastword $(MAKEFILE_LIST)))
MKFILE_DIR=$(dir $(MKFILE_PATH))
export ROOT_PROJECT_DIRECTORY=$(MKFILE_DIR)
TOPTARGETS=all
SUBDIRS=src
.PHONY: $(TOPTARGETS)
-include $(ROOT_PROJECT_DIRECTORY)options.mk
.WAIT:
$(TOPTARGETS): $(BUILD_DIRECTORY) check_env .WAIT $(BIN_DIRECTORY) $(LIB_DIRECTORY) $(OBJ_DIRECTORY) $(GEN_DIRECTORY) $(SUBDIRS)
@:
$(BUILD_DIRECTORY) $(BIN_DIRECTORY) $(LIB_DIRECTORY) $(OBJ_DIRECTORY) $(GEN_DIRECTORY):
$(AT)mkdir -p $@
VARS_TO_PRINT=CC_1 CXX_1 LD_1 AR_1 RANLIB_1 LEX_1 YACC_1 PYTHON3_1 BUILD BUILD_DIRECTORY BIN_DIRECTORY OBJ_DIRECTORY LIB_DIRECTORY GEN_DIRECTORY DEBUG LLVM_INSTALL LLVM CFLAGS CXXFLAGS ASFLAGS LDFLAGS INCLUDE YFLAGS LFLAGS
.PHONY: check_env
check_env:
@$(PYTHON3_1) scripts/check-build-env.py $(BUILD_DIRECTORY).sapphire-env "$(MFLAGS)" $(foreach v,$(VARS_TO_PRINT),'$(v)=$($(v))') || (echo "Failed to build: ENV for build folder different"; exit 1;)
.PHONY: cache_makefile
cache_makefile:
$(MAKE) --no-print-directory -C $(MKFILE_DIR) dump_paths
clean:
$(RM) -r $(BUILD_DIRECTORY)
.PHONY: $(SUBDIRS)
$(SUBDIRS):
@printf "$(COLOR_RED)$(COLOR_BOLD)MAKE -C $@ $(MAKECMDGOALS)$(COLOR_RESET)\n"
@$(MAKE) --no-print-directory -C $@ $(MAKECMDGOALS)
.PHONY: dump_paths
dump_paths:
$(info CC=$(CC_1))
$(info CXX=$(CXX_1))
$(info LD=$(LD_1))
$(info AR=$(AR_1))
$(info RANLIB=$(RANLIB_1))
$(info LEX=$(LEX))
$(info YACC=$(YACC))
$(info PYTHON3=$(PYTHON3_1))
$(info )
$(info BUILD=$(BUILD))
$(info BUILD_DIRECTORY=$(BUILD_DIRECTORY))
$(info BIN_DIRECTORY=$(BIN_DIRECTORY))
$(info OBJ_DIRECTORY=$(OBJ_DIRECTORY))
$(info LIB_DIRECTORY=$(LIB_DIRECTORY))
$(info GEN_DIRECTORY=$(GEN_DIRECTORY))
$(info )
$(info VERBOSE=$(VERBOSE))
$(info DEBUG=$(DEBUG))
$(info LLVM_INSTALL=$(LLVM_INSTALL))
$(info LLVM=$(LLVM))
$(info )
$(info CFLAGS=$(CFLAGS))
$(info CXXFLAGS=$(CXXFLAGS))
$(info ASFLAGS=$(ASFLAGS))
$(info LDFLAGS=$(LDFLAGS))
$(info INCLUDE=$(INCLUDE))
$(info YFLAGS=$(YFLAGS))
$(info LFLAGS=$(LFLAGS))
@: