aboutsummaryrefslogtreecommitdiffstats
path: root/target/Config.in
blob: 48fd827326b35073c7bde0f94bfa8a9b216661f5 (plain)
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
source "tmp/.config-target.in"

# Kernel/Hardware features

config LINUX_2_4
	bool

config LINUX_2_6
	bool

config HAS_FPU
	bool

config AUDIO_SUPPORT
	bool

config DISPLAY_SUPPORT
	bool

config GPIO_SUPPORT
	bool

config PCI_SUPPORT
	select AUDIO_SUPPORT
	bool

config PCIE_SUPPORT
	bool

config PCMCIA_SUPPORT
	bool

config USB_SUPPORT
	select AUDIO_SUPPORT
	bool

config BIG_ENDIAN
	bool

config USES_INITRAMFS
	bool

config USES_SQUASHFS
	bool

config USES_JFFS2
	bool

config USES_EXT2
	bool

config USES_TARGZ
	bool

config USES_CPIOGZ
	bool

config USES_UBIFS
	bool

config PROFILE_KCONFIG
	bool

config NOMMU
	bool

# Architecture selection

config arm
	bool

config armeb
	select BIG_ENDIAN
	bool

config avr32
	select BIG_ENDIAN
	bool

config cris
	bool

config i386
	bool

config i686
	bool 

config m68k
	bool

config mips
	select BIG_ENDIAN
	bool

config mipsel
	bool

config mips64
	select BIG_ENDIAN
	bool

config mips64el
	bool

config powerpc
	select BIG_ENDIAN
	bool

config powerpc64
	select BIG_ENDIAN
	bool

config sh3
	bool

config sh3eb
	select BIG_ENDIAN
	bool

config sh4
	bool

config sh4eb
	select BIG_ENDIAN
	bool

config sparc
	select BIG_ENDIAN
	bool

config ubicom32
	select BIG_ENDIAN
	bool

config x86_64
	bool

config ARCH
	string
	default "arm"       if arm
	default "armeb"     if armeb
	default "avr32"     if avr32
	default "cris"      if cris
	default "i386"      if i386
	default "i686"      if i686
	default "m68k"      if m68k
	default "mips"      if mips
	default "mipsel"    if mipsel
	default "mips64"    if mips64
	default "mips64el"  if mips64el
	default "powerpc"   if powerpc
	default "sh3"       if sh3
	default "sh3eb"     if sh3eb
	default "sh4"       if sh4
	default "sh4eb"     if sh4eb
	default "sparc"     if sparc
	default "ubicom32"  if ubicom32
	default "x86_64"    if x86_64
>PKG_BUILD_DIR ?= $(BUILD_DIR)/$(PKG_NAME)$(if $(PKG_VERSION),-$(PKG_VERSION)) PKG_INSTALL_DIR ?= $(PKG_BUILD_DIR)/ipkg-install PKG_MD5SUM ?= unknown PKG_BUILD_PARALLEL ?= PKG_USE_MIPS16 ?= 1 PKG_IREMAP ?= 1 ifneq ($(CONFIG_PKG_BUILD_USE_JOBSERVER),) MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j)) else MAKE_J:=-j$(CONFIG_PKG_BUILD_JOBS) endif ifeq ($(strip $(PKG_BUILD_PARALLEL)),0) PKG_JOBS?=-j1 else PKG_JOBS?=$(if $(PKG_BUILD_PARALLEL)$(CONFIG_PKG_DEFAULT_PARALLEL),\ $(if $(CONFIG_PKG_BUILD_PARALLEL),$(MAKE_J),-j1),-j1) endif ifdef CONFIG_USE_MIPS16 ifeq ($(strip $(PKG_USE_MIPS16)),1) TARGET_ASFLAGS_DEFAULT = $(filter-out -mips16 -minterlink-mips16,$(TARGET_CFLAGS)) TARGET_CFLAGS += -mips16 -minterlink-mips16 endif endif ifeq ($(strip $(PKG_IREMAP)),1) IREMAP_CFLAGS = $(call iremap,$(PKG_BUILD_DIR),$(notdir $(PKG_BUILD_DIR))) TARGET_CFLAGS += $(IREMAP_CFLAGS) endif include $(INCLUDE_DIR)/hardening.mk include $(INCLUDE_DIR)/prereq.mk include $(INCLUDE_DIR)/host.mk include $(INCLUDE_DIR)/unpack.mk include $(INCLUDE_DIR)/depends.mk find_library_dependencies = $(wildcard $(patsubst %,$(STAGING_DIR)/pkginfo/%.version, \ $(filter-out $(BUILD_PACKAGES),$(foreach dep, \ $(filter-out @%, $(patsubst +%,%,$(1))), \ $(if $(findstring :,$(dep)), \ $(word 2,$(subst :,$(space),$(dep))), \ $(dep) \ ) \ )))) PKG_DIR_NAME:=$(lastword $(subst /,$(space),$(CURDIR))) STAMP_NO_AUTOREBUILD=$(wildcard $(PKG_BUILD_DIR)/.no_autorebuild) PREV_STAMP_PREPARED:=$(if $(STAMP_NO_AUTOREBUILD),$(wildcard $(PKG_BUILD_DIR)/.prepared*)) ifneq ($(PREV_STAMP_PREPARED),) STAMP_PREPARED:=$(PREV_STAMP_PREPARED) CONFIG_AUTOREBUILD:= else STAMP_PREPARED=$(PKG_BUILD_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,${CURDIR} $(PKG_FILE_DEPENDS),))$(call confvar,$(PKG_PREPARED_DEPENDS))) endif STAMP_CONFIGURED=$(PKG_BUILD_DIR)/.configured$(if $(DUMP),,_$(call confvar,$(PKG_CONFIG_DEPENDS))) STAMP_CONFIGURED_WILDCARD=$(patsubst %_$(call confvar,$(PKG_CONFIG_DEPENDS)),%_*,$(STAMP_CONFIGURED)) STAMP_BUILT:=$(PKG_BUILD_DIR)/.built STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),)_installed STAGING_FILES_LIST:=$(PKG_DIR_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),).list define CleanStaging rm -f $(STAMP_INSTALLED) @-(\ cd "$(STAGING_DIR)"; \ if [ -f packages/$(STAGING_FILES_LIST) ]; then \ cat packages/$(STAGING_FILES_LIST) | xargs -r rm -f 2>/dev/null; \ fi; \ ) endef ifneq ($(if $(CONFIG_SRC_TREE_OVERRIDE),$(wildcard ./git-src)),) USE_GIT_TREE:=1 QUILT:=1 endif ifdef USE_SOURCE_DIR QUILT:=1 endif ifneq ($(wildcard $(PKG_BUILD_DIR)/.source_dir),) QUILT:=1 endif PKG_INSTALL_STAMP:=$(PKG_INFO_DIR)/$(PKG_DIR_NAME).$(if $(BUILD_VARIANT),$(BUILD_VARIANT),default).install include $(INCLUDE_DIR)/download.mk include $(INCLUDE_DIR)/quilt.mk include $(INCLUDE_DIR)/package-defaults.mk include $(INCLUDE_DIR)/package-dumpinfo.mk include $(INCLUDE_DIR)/package-ipkg.mk include $(INCLUDE_DIR)/package-bin.mk include $(INCLUDE_DIR)/autotools.mk override MAKEFLAGS= CONFIG_SITE:=$(INCLUDE_DIR)/site/$(ARCH) CUR_MAKEFILE:=$(filter-out Makefile,$(firstword $(MAKEFILE_LIST))) SUBMAKE:=$(NO_TRACE_MAKE) $(if $(CUR_MAKEFILE),-f $(CUR_MAKEFILE)) PKG_CONFIG_PATH=$(STAGING_DIR)/usr/lib/pkgconfig:$(STAGING_DIR)/usr/share/pkgconfig unexport QUIET CONFIG_SITE ifeq ($(DUMP)$(filter prereq clean refresh update,$(MAKECMDGOALS)),) ifneq ($(if $(QUILT),,$(CONFIG_AUTOREBUILD)),) define Build/Autoclean $(PKG_BUILD_DIR)/.dep_files: $(STAMP_PREPARED) $(call rdep,${CURDIR} $(PKG_FILE_DEPENDS),$(STAMP_PREPARED),$(PKG_BUILD_DIR)/.dep_files,-x "*/.dep_*") $(if $(filter prepare,$(MAKECMDGOALS)),,$(call rdep,$(PKG_BUILD_DIR),$(STAMP_BUILT),,-x "*/.dep_*" -x "*/ipkg*")) endef endif endif define Download/default FILE:=$(PKG_SOURCE) URL:=$(PKG_SOURCE_URL) SUBDIR:=$(PKG_SOURCE_SUBDIR) PROTO:=$(PKG_SOURCE_PROTO) $(if $(PKG_SOURCE_MIRROR),MIRROR:=$(filter 1,$(PKG_MIRROR))) $(if $(PKG_MIRROR_MD5SUM),MIRROR_MD5SUM:=$(PKG_MIRROR_MD5SUM)) VERSION:=$(PKG_SOURCE_VERSION) MD5SUM:=$(PKG_MD5SUM) endef ifdef USE_GIT_TREE define Build/Prepare/Default mkdir -p $(PKG_BUILD_DIR) ln -s $(CURDIR)/git-src $(PKG_BUILD_DIR)/.git ( cd $(PKG_BUILD_DIR); git checkout .) endef endif ifdef USE_SOURCE_DIR define Build/Prepare/Default rm -rf $(PKG_BUILD_DIR) $(if $(wildcard $(USE_SOURCE_DIR)/*),,@echo "Error: USE_SOURCE_DIR=$(USE_SOURCE_DIR) path not found"; false) ln -snf $(USE_SOURCE_DIR) $(PKG_BUILD_DIR) touch $(PKG_BUILD_DIR)/.source_dir endef endif define Build/Exports/Default $(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR)/usr/share/aclocal $$(STAGING_DIR)/usr/share/aclocal-* $$(STAGING_DIR)/host/share/aclocal $$(STAGING_DIR)/host/share/aclocal-*),-I $$(p)) $(1) : export STAGING_PREFIX=$$(STAGING_DIR)/usr $(1) : export PATH=$$(TARGET_PATH_PKG) $(1) : export CONFIG_SITE:=$$(CONFIG_SITE) $(1) : export PKG_CONFIG_PATH:=$$(PKG_CONFIG_PATH) $(1) : export PKG_CONFIG_LIBDIR:=$$(PKG_CONFIG_PATH) $(1) : export CCACHE_DIR:=$(STAGING_DIR)/ccache endef Build/Exports=$(Build/Exports/Default) define Build/DefaultTargets $(if $(QUILT),$(Build/Quilt)) $(if $(USE_SOURCE_DIR)$(USE_GIT_TREE),,$(if $(strip $(PKG_SOURCE_URL)),$(call Download,default))) $(call Build/Autoclean) download: $(foreach hook,$(Hooks/Download), $(call $(hook))$(sep) ) $(STAMP_PREPARED) : export PATH=$$(TARGET_PATH_PKG) $(STAMP_PREPARED): @-rm -rf $(PKG_BUILD_DIR) @mkdir -p $(PKG_BUILD_DIR) $(foreach hook,$(Hooks/Prepare/Pre),$(call $(hook))$(sep)) $(Build/Prepare) $(foreach hook,$(Hooks/Prepare/Post),$(call $(hook))$(sep)) touch $$@ $(call Build/Exports,$(STAMP_CONFIGURED)) $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(CleanStaging) $(foreach hook,$(Hooks/Configure/Pre),$(call $(hook))$(sep)) $(Build/Configure) $(foreach hook,$(Hooks/Configure/Post),$(call $(hook))$(sep)) rm -f $(STAMP_CONFIGURED_WILDCARD) touch $$@ $(call Build/Exports,$(STAMP_BUILT)) $(STAMP_BUILT): $(STAMP_CONFIGURED) $(foreach hook,$(Hooks/Compile/Pre),$(call $(hook))$(sep)) $(Build/Compile) $(foreach hook,$(Hooks/Compile/Post),$(call $(hook))$(sep)) $(Build/Install) $(foreach hook,$(Hooks/Install/Post),$(call $(hook))$(sep)) touch $$@ $(STAMP_INSTALLED) : export PATH=$$(TARGET_PATH_PKG) $(STAMP_INSTALLED): $(STAMP_BUILT) rm -rf $(TMP_DIR)/stage-$(PKG_DIR_NAME) mkdir -p $(TMP_DIR)/stage-$(PKG_DIR_NAME)/host $(STAGING_DIR)/packages $(STAGING_DIR_HOST)/packages $(foreach hook,$(Hooks/InstallDev/Pre),\ $(call $(hook),$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)$(sep)\ ) $(call Build/InstallDev,$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host) $(foreach hook,$(Hooks/InstallDev/Post),\ $(call $(hook),$(TMP_DIR)/stage-$(PKG_DIR_NAME),$(TMP_DIR)/stage-$(PKG_DIR_NAME)/host)$(sep)\ ) if [ -f $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) ]; then \ $(SCRIPT_DIR)/clean-package.sh \ "$(STAGING_DIR)/packages/$(STAGING_FILES_LIST)" \ "$(STAGING_DIR)"; \ fi if [ -d $(TMP_DIR)/stage-$(PKG_DIR_NAME) ]; then \ (cd $(TMP_DIR)/stage-$(PKG_DIR_NAME); find ./ > $(TMP_DIR)/stage-$(PKG_DIR_NAME).files); \ $(call locked, \ mv $(TMP_DIR)/stage-$(PKG_DIR_NAME).files $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) && \ $(CP) $(TMP_DIR)/stage-$(PKG_DIR_NAME)/* $(STAGING_DIR)/; \ ,staging-dir); \ fi rm -rf $(TMP_DIR)/stage-$(PKG_DIR_NAME) touch $$@ ifdef Build/InstallDev compile: $(STAMP_INSTALLED) endif define Build/DefaultTargets endef prepare: $(STAMP_PREPARED) configure: $(STAMP_CONFIGURED) dist: $(STAMP_CONFIGURED) distcheck: $(STAMP_CONFIGURED) endef define Build/IncludeOverlay $(eval -include $(wildcard $(TOPDIR)/overlay/*/$(PKG_DIR_NAME).mk)) define Build/IncludeOverlay endef endef define BuildPackage $(Build/IncludeOverlay) $(eval $(Package/Default)) $(eval $(Package/$(1))) ifdef DESCRIPTION $$(error DESCRIPTION:= is obsolete, use Package/PKG_NAME/description) endif ifndef Package/$(1)/description define Package/$(1)/description $(TITLE) endef endif BUILD_PACKAGES += $(1) $(STAMP_PREPARED): $$(if $(QUILT)$(DUMP),,$(call find_library_dependencies,$(DEPENDS))) $(foreach FIELD, TITLE CATEGORY SECTION VERSION, ifeq ($($(FIELD)),) $$(error Package/$(1) is missing the $(FIELD) field) endif ) $(if $(DUMP), \ $(Dumpinfo/Package), \ $(foreach target, \ $(if $(Package/$(1)/targets),$(Package/$(1)/targets), \ $(if $(PKG_TARGETS),$(PKG_TARGETS), ipkg) \ ), $(BuildTarget/$(target)) \ ) \ ) $(if $(PKG_HOST_ONLY)$(DUMP),,$(call Build/DefaultTargets,$(1))) endef define pkg_install_files $(foreach install_file,$(1),$(INSTALL_DIR) $(3)/`dirname $(install_file)`; $(INSTALL_DATA) $(2)/$(install_file) $(3)/`dirname $(install_file)`;) endef define pkg_install_bin $(foreach install_apps,$(1),$(INSTALL_DIR) $(3)/`dirname $(install_apps)`; $(INSTALL_BIN) $(2)/$(install_apps) $(3)/`dirname $(install_apps)`;) endef Build/Prepare=$(call Build/Prepare/Default,) Build/Configure=$(call Build/Configure/Default,) Build/Compile=$(call Build/Compile/Default,) Build/Install=$(if $(PKG_INSTALL),$(call Build/Install/Default,)) Build/Dist=$(call Build/Dist/Default,) Build/DistCheck=$(call Build/DistCheck/Default,) .NOTPARALLEL: .PHONY: prepare-package-install prepare-package-install: @mkdir -p $(PKG_INFO_DIR) @touch $(PKG_INSTALL_STAMP).clean @echo "$(filter-out essential,$(PKG_FLAGS))" > $(PKG_INSTALL_STAMP).flags $(PACKAGE_DIR): mkdir -p $@ dumpinfo: download: prepare: configure: compile: prepare-package-install install: compile clean: FORCE $(CleanStaging) $(call Build/UninstallDev,$(STAGING_DIR),$(STAGING_DIR_HOST)) $(Build/Clean) rm -f $(STAGING_DIR)/packages/$(STAGING_FILES_LIST) $(STAGING_DIR_HOST)/packages/$(STAGING_FILES_LIST) rm -rf $(PKG_BUILD_DIR) dist: $(Build/Dist) distcheck: $(Build/DistCheck)