-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
74 lines (59 loc) · 1.81 KB
/
Makefile
File metadata and controls
74 lines (59 loc) · 1.81 KB
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
70
71
72
73
74
.RECIPEPREFIX := >
MAKEFLAGS += --no-print-directory
CMAKE ?= cmake
CMAKE_BUILD_DIR ?= build-cmake
CMAKE_BUILD_TYPE ?= Release
CMAKE_GENERATOR ?=
CMAKE_EXTRA_ARGS ?=
APPS ?=
WERROR ?= ON
KIT_CC ?=
KIT_LD ?=
ifeq ($(strip $(CMAKE_GENERATOR)),)
GEN_ARG :=
else
GEN_ARG := -G "$(CMAKE_GENERATOR)"
endif
APPS_ARG :=
ifneq ($(strip $(APPS)),)
APPS_ARG := -DCLEONOS_KIT_APP_NAMES=$(APPS)
endif
KIT_CC_ARG :=
ifneq ($(strip $(KIT_CC)),)
KIT_CC_ARG := -DCLEONOS_KIT_CC=$(KIT_CC)
endif
KIT_LD_ARG :=
ifneq ($(strip $(KIT_LD)),)
KIT_LD_ARG := -DCLEONOS_KIT_LD=$(KIT_LD)
endif
KIT_CC_STRICT_ARG :=
ifneq ($(strip $(KIT_CC)),)
KIT_CC_STRICT_ARG := -DCLEONOS_KIT_CC_STRICT=ON
endif
KIT_LD_STRICT_ARG :=
ifneq ($(strip $(KIT_LD)),)
KIT_LD_STRICT_ARG := -DCLEONOS_KIT_LD_STRICT=ON
endif
.PHONY: all configure reconfigure apps clean clean-all help
all: apps
configure:
> @$(CMAKE) -S . -B $(CMAKE_BUILD_DIR) $(GEN_ARG) -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) -DCLEONOS_KIT_ENABLE_WERROR=$(WERROR) $(APPS_ARG) $(KIT_CC_ARG) $(KIT_LD_ARG) $(KIT_CC_STRICT_ARG) $(KIT_LD_STRICT_ARG) $(CMAKE_EXTRA_ARGS)
reconfigure:
> @$(CMAKE) -E rm -rf $(CMAKE_BUILD_DIR)
> @$(MAKE) configure CMAKE_BUILD_TYPE="$(CMAKE_BUILD_TYPE)" CMAKE_GENERATOR="$(CMAKE_GENERATOR)" CMAKE_EXTRA_ARGS="$(CMAKE_EXTRA_ARGS)" APPS="$(APPS)" WERROR="$(WERROR)" KIT_CC="$(KIT_CC)" KIT_LD="$(KIT_LD)"
apps: configure
> @$(CMAKE) --build $(CMAKE_BUILD_DIR) --target apps
clean:
> @if [ -d "$(CMAKE_BUILD_DIR)" ]; then \
> $(CMAKE) --build $(CMAKE_BUILD_DIR) --target clean; \
> fi
clean-all:
> @$(CMAKE) -E rm -rf $(CMAKE_BUILD_DIR) build
help:
> @echo "CLeonOS kit build wrapper"
> @echo " make apps"
> @echo " make apps APPS=hello"
> @echo " make apps APPS=hello,foo"
> @echo " make apps KIT_CC=x86_64-elf-gcc KIT_LD=x86_64-elf-ld"
> @echo " make clean"
> @echo " make clean-all"