📄 build.mt
字号:
# build.mt - build-level makefile template
# when this makefile is executed, we are building for a single target and build
# but we could be building for multiple apps
# path to get to top of directory tree
TopDir := ../../../..
NextTopDir := ../$(TopDir)
LibDir := .
include $(TopDir)/std.mf
include $(TopDir)/targets.mf
include $(TopDir)/builddef.mf
MT := app.mt
Prefix := .
RecurseOn = $(APP)
define MakeTempFile
$(Echo) >$(TargetFile) TARGET:=$(TARGET)
$(Echo) >>$(TargetFile) BUILD:=$(BUILD)
$(Echo) >>$(TargetFile) APP:=$(notdir $(@D))
endef
# put default make target before source files are included
.PHONY: all _all clean
_all: all
# get list of apps in APPS; a list of libraries in LIBS; and the rules for libraries
NEEDRULES := yes
-include $(TopDir)/*/source.mf
# VPATH needs to point to all library directories
VPATH := $(sort $(patsubst %, $(TopDir)/%, $(LIBS)))
# only build those apps which are supported on this target
APPS := $(patsubst %/$(TARGET), %, $(filter %/$(TARGET), $(foreach app, $(APPS), $(addprefix $(app)/, $(TARGETS.$(app))))))
ifeq "$(strip $(APP))" ""
# APP is empty, so do all APP types
APP := $(APPS)
endif
ifneq "$(filter-out $(APPS), $(APP))" ""
# if we get here, then the user has specified an invalid app.
# Make gives us no clean way to report this,
# so the following invalid syntax will cause the build to grind to a halt.
gack!
endif
all: $(LIBS) $(patsubst %, %/$(Mkfile), $(APP))
$(Recurse)
clean:
$(Recurse)
$(CLEAN)
$(patsubst %, %/$(Mkfile), $(APP)):
$(MkMakeFile)
$(APP): $(LIBS)
$(MkDir)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -