Repository navigation
Expand file tree
/
Copy pathMakefile.kconfig
More file actions
107 lines (88 loc) · 3.06 KB
/
Copy pathMakefile.kconfig
File metadata and controls
107 lines (88 loc) · 3.06 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
CONFIG_CONFIG_IN = Config.in
CONFIG = build/kconfig
DATE := $(shell date +%Y%m%d)
TOPDIR := $(shell pwd)
BASE_DIR := "$(TOPDIR)/"
BUILD_DIR := $(BASE_DIR)/build/kconfig/output
DOT_CONFIG = $(BASE_DIR)/.config
CONFIG_SHELL := $(SHELL)
export SHELL CONFIG_SHELL Q KBUILD_VERBOSE
HOSTAR ?= ar
HOSTAS ?= as
HOSTCC ?= gcc
HOSTCC ?= $(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc)
HOSTCC_NOCCACHE := $(HOSTCC)
HOSTCXX ?= g++
HOSTCXX ?= $(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)
HOSTCXX_NOCCACHE := $(HOSTCXX)
HOSTCPP ?= cpp
HOSTLD ?= ld
HOSTLN ?= ln
HOSTNM ?= nm
HOSTOBJCOPY ?= objcopy
HOSTRANLIB ?= ranlib
HOSTAR := $(shell which $(HOSTAR) || type -p $(HOSTAR) || echo ar)
HOSTAS := $(shell which $(HOSTAS) || type -p $(HOSTAS) || echo as)
HOSTCPP := $(shell which $(HOSTCPP) || type -p $(HOSTCPP) || echo cpp)
HOSTLD := $(shell which $(HOSTLD) || type -p $(HOSTLD) || echo ld)
HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln)
HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)
HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)
HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib)
SED := $(shell which sed || type -p sed) -i -e
export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE
HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
unexport PKG_CONFIG_PATH
unexport PKG_CONFIG_SYSROOT_DIR
unexport PKG_CONFIG_LIBDIR
unexport CROSS_COMPILE
unexport ARCH
unexport CC
unexport LD
unexport AR
unexport CXX
unexport CPP
unexport RANLIB
unexport CFLAGS
unexport CXXFLAGS
unexport GREP_OPTIONS
unexport TAR_OPTIONS
unexport CONFIG_SITE
unexport QMAKESPEC
unexport TERMINFO
unexport MACHINE
unexport O
unexport GCC_COLORS
unexport PLATFORM
unexport OS
# Scripts in build/ or post-build scripts may need to reference
# these locations, so export them so it is easier to use
export HOST_DIR
export BINARIES_DIR
export BASE_DIR
$(BUILD_DIR)/build-kconfig/auto.conf: $(DOT_CONFIG)
$(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" syncconfig
.PHONY: prepare
prepare: $(BUILD_DIR)/build-kconfig/auto.conf
$(BUILD_DIR)/build-kconfig/%onf:
mkdir -p $(@D)/lxdialog
PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \
obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)
# We don't want to fully expand BR2_DEFCONFIG here, so Kconfig will
# recognize that if it's still at its default $(CONFIG_DIR)/defconfig
COMMON_CONFIG_ENV = \
KCONFIG_AUTOCONFIG=$(BUILD_DIR)/build-kconfig/auto.conf \
KCONFIG_AUTOHEADER=$(BUILD_DIR)/build-kconfig/autoconf.h \
KCONFIG_TRISTATE=$(BUILD_DIR)/build-kconfig/tristate.config \
DOT_CONFIG=$(DOT_CONFIG) \
HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
BASE_DIR=$(BASE_DIR) \
SKIP_LEGACY=
menuconfig: $(BUILD_DIR)/build-kconfig/mconf
@$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)
$(BUILD_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):
@mkdir -p $@
.PHONY: clean
clean:
@rm -rf $(BUILD_DIR)