2011-03-16 16:17:32 +00:00
|
|
|
######################################################################
|
|
|
|
# Residual auto-configuration
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
include config.mk
|
2011-05-01 20:18:52 +00:00
|
|
|
MKFILES := Makefile config.mk $(wildcard $(CFG_SRC_DIR)/mk/*.mk)
|
2011-08-05 01:26:54 +00:00
|
|
|
MKFILES += $(CFG_SRC_DIR)/src/rt/libuv/Makefile
|
|
|
|
MKFILES += $(wildcard $(CFG_SRC_DIR)/src/rt/libuv/*.mk)
|
2011-03-16 16:17:32 +00:00
|
|
|
|
|
|
|
ifneq ($(MAKE_RESTARTS),)
|
|
|
|
CFG_INFO := $(info cfg: make restarts: $(MAKE_RESTARTS))
|
|
|
|
endif
|
|
|
|
|
2011-09-21 18:24:59 +00:00
|
|
|
CFG_INFO := $(info cfg: shell host triple $(CFG_HOST_TRIPLE))
|
|
|
|
CFG_INFO := $(info cfg: llvm host triple $(CFG_LLVM_TRIPLE))
|
2011-09-23 17:50:06 +00:00
|
|
|
CFG_INFO := $(info cfg: llvm target triples $(CFG_LLVM_TRIPLES))
|
2011-03-16 16:17:32 +00:00
|
|
|
|
2011-04-08 22:44:41 +00:00
|
|
|
ifdef CFG_DISABLE_OPTIMIZE
|
2011-04-08 23:29:19 +00:00
|
|
|
$(info cfg: disabling rustc optimization (CFG_DISABLE_OPTIMIZE))
|
2011-04-29 17:23:07 +00:00
|
|
|
CFG_RUSTC_FLAGS :=
|
2011-04-08 22:44:41 +00:00
|
|
|
else
|
2011-04-29 17:23:07 +00:00
|
|
|
CFG_RUSTC_FLAGS := -O
|
2011-04-08 22:44:41 +00:00
|
|
|
endif
|
2011-03-18 06:51:45 +00:00
|
|
|
|
2011-04-25 21:20:28 +00:00
|
|
|
ifdef SAVE_TEMPS
|
2011-04-26 18:32:08 +00:00
|
|
|
CFG_RUSTC_FLAGS += --save-temps
|
2011-04-25 21:20:28 +00:00
|
|
|
endif
|
2011-04-29 18:55:32 +00:00
|
|
|
ifdef TIME_PASSES
|
|
|
|
CFG_RUSTC_FLAGS += --time-passes
|
|
|
|
endif
|
2011-06-19 00:26:41 +00:00
|
|
|
ifdef TIME_LLVM_PASSES
|
|
|
|
CFG_RUSTC_FLAGS += --time-llvm-passes
|
|
|
|
endif
|
2011-04-29 19:16:14 +00:00
|
|
|
ifdef NO_TYPESTATE
|
|
|
|
CFG_RUSTC_FLAGS += --no-typestate
|
|
|
|
endif
|
2011-05-11 00:48:49 +00:00
|
|
|
ifdef DEBUG
|
|
|
|
CFG_RUSTC_FLAGS += -g
|
|
|
|
endif
|
2011-04-25 21:20:28 +00:00
|
|
|
|
2011-05-01 20:18:52 +00:00
|
|
|
# platform-specific auto-configuration
|
|
|
|
include $(CFG_SRC_DIR)/mk/platform.mk
|
2011-03-18 06:51:45 +00:00
|
|
|
|
2011-05-14 03:20:34 +00:00
|
|
|
# Run the stage1/2 compilers under valgrind
|
|
|
|
ifdef VALGRIND_COMPILE
|
|
|
|
CFG_VALGRIND_COMPILE :=$(CFG_VALGRIND)
|
|
|
|
else
|
|
|
|
CFG_VALGRIND_COMPILE :=
|
|
|
|
endif
|
|
|
|
|
2011-03-18 06:51:45 +00:00
|
|
|
CFG_RUNTIME :=$(call CFG_LIB_NAME,rustrt)
|
2011-03-22 06:06:42 +00:00
|
|
|
CFG_RUSTLLVM :=$(call CFG_LIB_NAME,rustllvm)
|
2011-03-18 06:51:45 +00:00
|
|
|
CFG_STDLIB :=$(call CFG_LIB_NAME,std)
|
2011-07-01 06:16:01 +00:00
|
|
|
CFG_LIBRUSTC :=$(call CFG_LIB_NAME,rustc)
|
2011-03-18 06:51:45 +00:00
|
|
|
|
2011-05-06 18:21:51 +00:00
|
|
|
# version-string calculation
|
|
|
|
CFG_GIT_DIR := $(CFG_SRC_DIR).git
|
2011-06-25 19:23:27 +00:00
|
|
|
CFG_VERSION = prerelease
|
2011-06-13 21:45:26 +00:00
|
|
|
ifneq ($(wildcard $(CFG_GIT)),)
|
2011-05-06 18:21:51 +00:00
|
|
|
ifneq ($(wildcard $(CFG_GIT_DIR)),)
|
|
|
|
CFG_VERSION += $(shell git --git-dir=$(CFG_GIT_DIR) log -1 \
|
|
|
|
--pretty=format:'(%h %ci)')
|
|
|
|
endif
|
2011-06-13 21:45:26 +00:00
|
|
|
endif
|
2011-05-06 18:21:51 +00:00
|
|
|
|
2011-03-30 04:45:09 +00:00
|
|
|
ifdef CFG_DISABLE_VALGRIND
|
|
|
|
$(info cfg: disabling valgrind (CFG_DISABLE_VALGRIND))
|
2011-03-18 06:51:45 +00:00
|
|
|
CFG_VALGRIND :=
|
|
|
|
endif
|
2011-05-06 01:11:40 +00:00
|
|
|
ifdef CFG_BAD_VALGRIND
|
|
|
|
$(info cfg: disabling valgrind due to its unreliability on this platform)
|
|
|
|
CFG_VALGRIND :=
|
|
|
|
endif
|
2011-03-18 06:51:45 +00:00
|
|
|
|
2011-03-23 17:37:35 +00:00
|
|
|
DOCS :=
|
|
|
|
ifeq ($(CFG_MAKEINFO),)
|
|
|
|
$(info cfg: no makeinfo found, omitting doc/rust.html)
|
|
|
|
else
|
|
|
|
DOCS += doc/rust.html
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(CFG_TEXI2PDF),)
|
|
|
|
$(info cfg: no texi2pdf found, omitting doc/rust.pdf)
|
|
|
|
else
|
2011-03-23 20:31:51 +00:00
|
|
|
ifeq ($(CFG_TEX),)
|
|
|
|
$(info cfg: no tex found, omitting doc/rust.pdf)
|
|
|
|
else
|
|
|
|
DOCS += doc/rust.pdf
|
|
|
|
endif
|
2011-03-23 17:37:35 +00:00
|
|
|
endif
|
|
|
|
|
2011-03-30 04:45:09 +00:00
|
|
|
ifdef CFG_DISABLE_DOCS
|
|
|
|
$(info cfg: disabling doc build (CFG_DISABLE_DOCS))
|
|
|
|
DOCS :=
|
|
|
|
endif
|
2011-03-23 17:37:35 +00:00
|
|
|
|
2011-03-18 06:51:45 +00:00
|
|
|
######################################################################
|
|
|
|
# Target-and-rule "utility variables"
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
ifdef VERBOSE
|
|
|
|
Q :=
|
|
|
|
E =
|
|
|
|
else
|
|
|
|
Q := @
|
|
|
|
E = echo $(1)
|
2011-03-16 16:17:32 +00:00
|
|
|
endif
|
|
|
|
|
2011-03-18 06:51:45 +00:00
|
|
|
S := $(CFG_SRC_DIR)
|
|
|
|
X := $(CFG_EXE_SUFFIX)
|
|
|
|
|
|
|
|
# Look in doc and src dirs.
|
|
|
|
VPATH := $(S)doc $(S)src
|
|
|
|
|
|
|
|
# "Source" files we generate in builddir along the way.
|
2011-05-01 20:18:52 +00:00
|
|
|
GENERATED :=
|
2011-03-18 06:51:45 +00:00
|
|
|
|
|
|
|
# Delete the built-in rules.
|
|
|
|
.SUFFIXES:
|
|
|
|
%:: %,v
|
|
|
|
%:: RCS/%,v
|
|
|
|
%:: RCS/%
|
|
|
|
%:: s.%
|
|
|
|
%:: SCCS/s.%
|
2011-03-16 16:17:32 +00:00
|
|
|
|
2011-03-18 06:51:45 +00:00
|
|
|
######################################################################
|
|
|
|
# Standard library variables
|
|
|
|
######################################################################
|
|
|
|
|
2011-03-21 20:42:29 +00:00
|
|
|
STDLIB_CRATE := $(S)src/lib/std.rc
|
2011-03-18 06:51:45 +00:00
|
|
|
STDLIB_INPUTS := $(wildcard $(addprefix $(S)src/lib/,*.rc *.rs */*.rs))
|
2011-03-16 16:17:32 +00:00
|
|
|
|
|
|
|
######################################################################
|
2011-03-18 06:51:45 +00:00
|
|
|
# rustc crate variables
|
2011-03-16 16:17:32 +00:00
|
|
|
######################################################################
|
|
|
|
|
2011-03-21 20:42:29 +00:00
|
|
|
COMPILER_CRATE := $(S)src/comp/rustc.rc
|
2011-03-19 00:30:06 +00:00
|
|
|
COMPILER_INPUTS := $(wildcard $(addprefix $(S)src/comp/, \
|
2011-05-18 22:34:52 +00:00
|
|
|
rustc.rc *.rs */*.rs */*/*.rs))
|
2011-03-18 06:51:45 +00:00
|
|
|
|
2011-05-03 06:37:52 +00:00
|
|
|
######################################################################
|
|
|
|
# Exports for sub-utilities
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
export CFG_SRC_DIR
|
2011-07-23 19:26:47 +00:00
|
|
|
export CFG_BUILD_DIR
|
2011-05-06 18:21:51 +00:00
|
|
|
export CFG_VERSION
|
2011-09-29 19:21:58 +00:00
|
|
|
export CFG_HOST_TRIPLE
|
2011-05-18 19:00:26 +00:00
|
|
|
export CFG_LLVM_ROOT
|
2011-06-28 18:18:25 +00:00
|
|
|
export CFG_ENABLE_MINGW_CROSS
|
2011-05-03 06:37:52 +00:00
|
|
|
|
2011-05-05 01:28:30 +00:00
|
|
|
######################################################################
|
|
|
|
# Subprograms
|
|
|
|
######################################################################
|
|
|
|
|
2011-06-27 18:53:04 +00:00
|
|
|
LLVM_AS := $(CFG_LLVM_BINDIR)/llvm-as$(X)
|
2011-05-05 01:28:30 +00:00
|
|
|
|
2011-06-27 18:53:04 +00:00
|
|
|
LLC := $(CFG_LLVM_BINDIR)/llc$(X)
|
2011-05-03 06:37:52 +00:00
|
|
|
|
2011-03-18 06:51:45 +00:00
|
|
|
######################################################################
|
2011-07-15 23:12:41 +00:00
|
|
|
# Per-stage targets and runner
|
|
|
|
######################################################################
|
|
|
|
|
|
|
|
define SREQ
|
2011-09-30 19:08:51 +00:00
|
|
|
|
2011-09-30 19:24:28 +00:00
|
|
|
# Destinations of artifacts for the host compiler
|
|
|
|
HOST_ROOT$(1) = stage$(1)
|
|
|
|
HOST_BIN$(1) = $$(HOST_ROOT$(1))/bin
|
|
|
|
HOST_LIB$(1) = $$(HOST_ROOT$(1))/lib
|
|
|
|
|
2011-10-01 02:00:19 +00:00
|
|
|
# Destinations of artifacts for target architectures
|
|
|
|
TARGET_ROOT$(1)$(2) = $$(HOST_LIB$(1))/rustc/$(2)
|
|
|
|
TARGET_BIN$(1)$(2) = $$(TARGET_ROOT$(1)$(2))/bin
|
|
|
|
TARGET_LIB$(1)$(2) = $$(TARGET_ROOT$(1)$(2))/lib
|
|
|
|
|
2011-09-30 19:24:28 +00:00
|
|
|
# The target locations of artifacts for the host architecture (used for
|
|
|
|
# promoting target binaries to host binaries)
|
|
|
|
TARGET_HOST_ROOT$(1) = $$(TARGET_ROOT$(1)$$(CFG_HOST_TRIPLE))
|
|
|
|
TARGET_HOST_BIN$(1) = $$(TARGET_BIN$(1)$$(CFG_HOST_TRIPLE))
|
|
|
|
TARGET_HOST_LIB$(1) = $$(TARGET_LIB$(1)$$(CFG_HOST_TRIPLE))
|
2011-09-30 19:08:51 +00:00
|
|
|
|
2011-09-30 23:11:47 +00:00
|
|
|
ifdef CFG_DISABLE_SHAREDSTD
|
|
|
|
HOST_STDLIB_DEFAULT$(1) = $$(HOST_LIB$(1))/libstd.rlib
|
|
|
|
else
|
|
|
|
HOST_STDLIB_DEFAULT$(1) = $$(HOST_LIB$(1))/$(CFG_STDLIB)
|
|
|
|
endif
|
|
|
|
|
2011-07-20 20:02:36 +00:00
|
|
|
ifdef CFG_DISABLE_SHAREDSTD
|
2011-09-30 19:24:28 +00:00
|
|
|
SREQ$(1)$(2) = $$(HOST_BIN$(1))/rustc$(X) \
|
|
|
|
$$(HOST_LIB$(1))/$$(CFG_RUNTIME) \
|
2011-09-30 23:11:47 +00:00
|
|
|
$$(HOST_STDLIB_DEFAULT$(1)) \
|
2011-09-30 19:24:28 +00:00
|
|
|
$$(HOST_LIB$(1))/$$(CFG_RUSTLLVM) \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB) \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/intrinsics.bc \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/main.o \
|
2011-07-20 20:02:36 +00:00
|
|
|
$$(MKFILES)
|
|
|
|
else
|
2011-09-30 19:24:28 +00:00
|
|
|
SREQ$(1)$(2) = $$(HOST_BIN$(1))/rustc$(X) \
|
|
|
|
$$(HOST_LIB$(1))/$$(CFG_RUNTIME) \
|
2011-09-30 23:11:47 +00:00
|
|
|
$$(HOST_STDLIB_DEFAULT$(1)) \
|
2011-09-30 19:24:28 +00:00
|
|
|
$$(HOST_LIB$(1))/$$(CFG_RUSTLLVM) \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB) \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/intrinsics.bc \
|
|
|
|
$$(TARGET_LIB$(1)$(2))/main.o \
|
2011-07-15 23:12:41 +00:00
|
|
|
$$(MKFILES)
|
2011-07-20 20:02:36 +00:00
|
|
|
endif
|
2011-07-15 23:12:41 +00:00
|
|
|
|
2011-08-26 18:11:49 +00:00
|
|
|
ifeq ($(1),0)
|
|
|
|
# Don't run the the stage0 compiler under valgrind - that ship has sailed
|
|
|
|
CFG_VALGRIND_COMPILE$(1) =
|
|
|
|
else
|
|
|
|
CFG_VALGRIND_COMPILE$(1) = $$(CFG_VALGRIND_COMPILE)
|
|
|
|
endif
|
|
|
|
|
2011-09-30 19:24:28 +00:00
|
|
|
STAGE$(1) := $$(Q)$$(call CFG_RUN_TARG,$(1), \
|
|
|
|
$$(CFG_VALGRIND_COMPILE) $$(HOST_BIN$(1))/rustc$$(X) \
|
2011-09-29 19:06:37 +00:00
|
|
|
$$(CFG_RUSTC_FLAGS) --target=$(2))
|
|
|
|
|
2011-09-30 19:24:28 +00:00
|
|
|
PERF_STAGE$(1) := $$(Q)$$(call CFG_RUN_TARG,$(1), \
|
|
|
|
$$(CFG_PERF_TOOL) $$(HOST_BIN$(1))/rustc$$(X) \
|
2011-09-29 19:06:37 +00:00
|
|
|
$$(CFG_RUSTC_FLAGS) --target=$(2))
|
|
|
|
|
2011-07-15 23:12:41 +00:00
|
|
|
endef
|
|
|
|
|
2011-09-29 00:06:57 +00:00
|
|
|
$(foreach target,$(CFG_TARGET_TRIPLES), \
|
|
|
|
$(eval $(call SREQ,0,$(target))) \
|
|
|
|
$(eval $(call SREQ,1,$(target))) \
|
|
|
|
$(eval $(call SREQ,2,$(target))) \
|
|
|
|
$(eval $(call SREQ,3,$(target))))
|
2011-07-15 23:12:41 +00:00
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# Entrypoint rule
|
2011-03-18 06:51:45 +00:00
|
|
|
######################################################################
|
2011-03-16 16:17:32 +00:00
|
|
|
|
2011-05-14 00:00:43 +00:00
|
|
|
ifneq ($(CFG_IN_TRANSITION),)
|
|
|
|
|
2011-05-16 22:14:58 +00:00
|
|
|
CFG_INFO := $(info cfg:)
|
2011-05-14 00:00:43 +00:00
|
|
|
CFG_INFO := $(info cfg: *** compiler is in snapshot transition ***)
|
|
|
|
CFG_INFO := $(info cfg: *** stage2 and later will not be built ***)
|
2011-05-16 22:14:58 +00:00
|
|
|
CFG_INFO := $(info cfg:)
|
2011-05-14 00:00:43 +00:00
|
|
|
|
2011-09-30 23:15:02 +00:00
|
|
|
FUZZ := $(HOST_BIN1)/fuzzer$(X)
|
|
|
|
|
2011-09-30 04:34:46 +00:00
|
|
|
all: $(SREQ0$(CFG_HOST_TRIPLE)) $(SREQ1$(CFG_HOST_TRIPLE)) \
|
|
|
|
$(GENERATED) $(DOCS) $(FUZZ)
|
2011-05-14 00:00:43 +00:00
|
|
|
else
|
2011-09-30 03:27:28 +00:00
|
|
|
|
|
|
|
ALL_SREQS = $(foreach target,$(CFG_TARGET_TRIPLES), \
|
|
|
|
$(SREQ0$(target)) $(SREQ1$(target)) $(SREQ2$(target)) $(SREQ3$(target)))
|
|
|
|
|
|
|
|
all: $(ALL_SREQS) $(GENERATED) $(DOCS) $(FUZZ)
|
2011-05-14 00:00:43 +00:00
|
|
|
endif
|
|
|
|
|
2011-03-25 17:29:45 +00:00
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# Re-configuration
|
|
|
|
######################################################################
|
|
|
|
|
2011-05-14 00:00:43 +00:00
|
|
|
config.mk: $(S)configure $(S)Makefile.in $(S)src/snapshots.txt
|
2011-03-25 17:29:45 +00:00
|
|
|
@$(call E, cfg: reconfiguring)
|
2011-06-30 20:41:20 +00:00
|
|
|
$(Q)$(S)configure $(CFG_CONFIGURE_ARGS)
|
2011-03-25 17:29:45 +00:00
|
|
|
|
|
|
|
|
2011-03-21 18:23:19 +00:00
|
|
|
######################################################################
|
2011-06-25 19:23:27 +00:00
|
|
|
# Primary-target makefiles
|
2011-03-21 18:23:19 +00:00
|
|
|
######################################################################
|
|
|
|
|
2011-05-05 01:28:30 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/intrinsics.mk
|
2011-07-15 23:12:41 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/stageN.mk
|
2011-07-21 18:58:01 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/stage0.mk
|
2011-05-01 20:18:52 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/rt.mk
|
|
|
|
include $(CFG_SRC_DIR)/mk/rustllvm.mk
|
|
|
|
include $(CFG_SRC_DIR)/mk/autodep.mk
|
2011-05-06 00:56:02 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/fuzzer.mk
|
2011-06-25 19:23:27 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/docs.mk
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# Secondary makefiles, conditionalized for speed
|
|
|
|
######################################################################
|
|
|
|
|
2011-06-30 20:41:20 +00:00
|
|
|
ifneq ($(strip $(findstring dist,$(MAKECMDGOALS)) \
|
|
|
|
$(findstring check,$(MAKECMDGOALS)) \
|
|
|
|
$(findstring test,$(MAKECMDGOALS)) \
|
2011-07-13 22:44:09 +00:00
|
|
|
$(findstring tidy,$(MAKECMDGOALS)) \
|
2011-06-30 20:41:20 +00:00
|
|
|
$(findstring clean,$(MAKECMDGOALS))),)
|
|
|
|
CFG_INFO := $(info cfg: including dist rules)
|
2011-06-25 19:23:27 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/dist.mk
|
|
|
|
endif
|
|
|
|
|
2011-06-30 20:41:20 +00:00
|
|
|
ifneq ($(strip $(findstring snap,$(MAKECMDGOALS)) \
|
|
|
|
$(findstring clean,$(MAKECMDGOALS))),)
|
|
|
|
CFG_INFO := $(info cfg: including snap rules)
|
2011-06-25 19:23:27 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/snap.mk
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(findstring reformat,$(MAKECMDGOALS)),)
|
2011-06-30 20:41:20 +00:00
|
|
|
CFG_INFO := $(info cfg: including reformat rules)
|
2011-06-25 19:23:27 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/pp.mk
|
|
|
|
endif
|
|
|
|
|
2011-06-30 20:41:20 +00:00
|
|
|
ifneq ($(strip $(findstring check,$(MAKECMDGOALS)) \
|
|
|
|
$(findstring test,$(MAKECMDGOALS)) \
|
2011-09-13 22:06:21 +00:00
|
|
|
$(findstring perf,$(MAKECMDGOALS)) \
|
2011-06-30 20:41:20 +00:00
|
|
|
$(findstring tidy,$(MAKECMDGOALS))),)
|
|
|
|
CFG_INFO := $(info cfg: including test rules)
|
2011-06-25 19:23:27 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/tests.mk
|
|
|
|
endif
|
|
|
|
|
2011-09-13 22:06:21 +00:00
|
|
|
ifneq ($(findstring perf,$(MAKECMDGOALS)),)
|
|
|
|
CFG_INFO := $(info cfg: including perf rules)
|
|
|
|
include $(CFG_SRC_DIR)/mk/perf.mk
|
|
|
|
endif
|
|
|
|
|
2011-06-25 19:23:27 +00:00
|
|
|
ifneq ($(findstring clean,$(MAKECMDGOALS)),)
|
2011-06-30 20:41:20 +00:00
|
|
|
CFG_INFO := $(info cfg: including clean rules)
|
2011-06-25 19:23:27 +00:00
|
|
|
include $(CFG_SRC_DIR)/mk/clean.mk
|
2011-07-21 18:58:01 +00:00
|
|
|
endif
|
2011-10-01 02:00:19 +00:00
|
|
|
|
|
|
|
ifneq ($(findstring install,$(MAKECMDGOALS)),)
|
|
|
|
CFG_INFO := $(info cfg: including install rules)
|
|
|
|
include $(CFG_SRC_DIR)/mk/install.mk
|
|
|
|
endif
|