2021-06-14 18:30:08 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2017-09-06 19:19:45 +08:00
|
|
|
#
|
|
|
|
# Copyright (C) 2007-2008 OpenWrt.org
|
|
|
|
# Copyright (C) 2016 LEDE Project
|
|
|
|
|
|
|
|
ifneq ($(__target_inc),1)
|
|
|
|
__target_inc=1
|
|
|
|
|
|
|
|
# default device type
|
|
|
|
DEVICE_TYPE?=router
|
|
|
|
|
|
|
|
# Default packages - the really basic set
|
2021-06-15 17:58:07 +08:00
|
|
|
DEFAULT_PACKAGES:=\
|
|
|
|
base-files \
|
2022-11-19 18:03:18 +08:00
|
|
|
ca-bundle \
|
2021-06-15 17:58:07 +08:00
|
|
|
dropbear \
|
|
|
|
fstools \
|
|
|
|
libc \
|
|
|
|
libgcc \
|
|
|
|
libustream-openssl \
|
|
|
|
logd \
|
|
|
|
mtd \
|
|
|
|
netifd \
|
|
|
|
opkg \
|
|
|
|
uci \
|
|
|
|
uclient-fetch \
|
2022-11-19 18:03:18 +08:00
|
|
|
urandom-seed \
|
|
|
|
urngd
|
2021-06-14 18:30:08 +08:00
|
|
|
|
|
|
|
ifneq ($(CONFIG_SELINUX),)
|
|
|
|
DEFAULT_PACKAGES+=busybox-selinux procd-selinux
|
|
|
|
else
|
|
|
|
DEFAULT_PACKAGES+=busybox procd
|
|
|
|
endif
|
|
|
|
|
2022-11-19 18:03:18 +08:00
|
|
|
# include ujail on systems with enough storage
|
|
|
|
ifeq ($(CONFIG_SMALL_FLASH),)
|
|
|
|
DEFAULT_PACKAGES+=procd-ujail
|
|
|
|
endif
|
|
|
|
|
|
|
|
# include seccomp ld-preload hooks if kernel supports it
|
|
|
|
ifneq ($(CONFIG_SECCOMP),)
|
|
|
|
DEFAULT_PACKAGES+=procd-seccomp
|
|
|
|
endif
|
|
|
|
|
2021-06-15 17:58:07 +08:00
|
|
|
# For the basic set
|
|
|
|
DEFAULT_PACKAGES.basic:=
|
2017-09-06 19:19:45 +08:00
|
|
|
# For nas targets
|
2021-06-15 17:58:07 +08:00
|
|
|
DEFAULT_PACKAGES.nas:=\
|
|
|
|
block-mount \
|
|
|
|
fdisk \
|
|
|
|
lsblk \
|
|
|
|
mdadm
|
2017-09-06 19:19:45 +08:00
|
|
|
# For router targets
|
2021-06-15 17:58:07 +08:00
|
|
|
DEFAULT_PACKAGES.router:=\
|
2024-02-21 14:41:41 +08:00
|
|
|
dnsmasq-full firewall iptables ppp ppp-mod-pppoe \
|
2022-05-17 23:08:30 +08:00
|
|
|
block-mount coremark kmod-nf-nathelper kmod-nf-nathelper-extra kmod-ipt-raw kmod-tun \
|
|
|
|
iptables-mod-tproxy iptables-mod-extra ipset ip-full default-settings luci luci-newapi \
|
|
|
|
ddns-scripts_aliyun ddns-scripts_dnspod luci-app-ddns luci-app-upnp luci-app-autoreboot \
|
|
|
|
luci-app-arpbind luci-app-filetransfer luci-app-vsftpd luci-app-ssr-plus luci-app-vlmcsd \
|
2022-09-14 23:15:19 +08:00
|
|
|
luci-app-accesscontrol luci-app-nlbwmon luci-app-turboacc luci-app-wol curl ca-certificates
|
2017-09-06 19:19:45 +08:00
|
|
|
|
|
|
|
ifneq ($(DUMP),)
|
|
|
|
all: dumpinfo
|
|
|
|
endif
|
|
|
|
|
|
|
|
target_conf=$(subst .,_,$(subst -,_,$(subst /,_,$(1))))
|
|
|
|
ifeq ($(DUMP),)
|
2022-11-19 18:03:18 +08:00
|
|
|
PLATFORM_DIR:=$(firstword $(wildcard $(TOPDIR)/target/linux/feeds/$(BOARD) $(TOPDIR)/target/linux/$(BOARD)))
|
2017-09-06 19:19:45 +08:00
|
|
|
SUBTARGET:=$(strip $(foreach subdir,$(patsubst $(PLATFORM_DIR)/%/target.mk,%,$(wildcard $(PLATFORM_DIR)/*/target.mk)),$(if $(CONFIG_TARGET_$(call target_conf,$(BOARD)_$(subdir))),$(subdir))))
|
|
|
|
else
|
|
|
|
PLATFORM_DIR:=${CURDIR}
|
|
|
|
ifeq ($(SUBTARGETS),)
|
|
|
|
SUBTARGETS:=$(strip $(patsubst $(PLATFORM_DIR)/%/target.mk,%,$(wildcard $(PLATFORM_DIR)/*/target.mk)))
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
TARGETID:=$(BOARD)$(if $(SUBTARGET),/$(SUBTARGET))
|
|
|
|
PLATFORM_SUBDIR:=$(PLATFORM_DIR)$(if $(SUBTARGET),/$(SUBTARGET))
|
|
|
|
|
|
|
|
ifneq ($(TARGET_BUILD),1)
|
|
|
|
ifndef DUMP
|
|
|
|
include $(PLATFORM_DIR)/Makefile
|
|
|
|
ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR))
|
|
|
|
include $(PLATFORM_SUBDIR)/target.mk
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
ifneq ($(SUBTARGET),)
|
|
|
|
-include ./$(SUBTARGET)/target.mk
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
# Add device specific packages (here below to allow device type set from subtarget)
|
|
|
|
DEFAULT_PACKAGES += $(DEFAULT_PACKAGES.$(DEVICE_TYPE))
|
|
|
|
|
|
|
|
filter_packages = $(filter-out -% $(patsubst -%,%,$(filter -%,$(1))),$(1))
|
2020-12-28 14:24:26 +08:00
|
|
|
extra_packages = $(if $(filter wpad wpad-% nas,$(1)),iwinfo)
|
2017-09-06 19:19:45 +08:00
|
|
|
|
|
|
|
define ProfileDefault
|
|
|
|
NAME:=
|
|
|
|
PRIORITY:=
|
|
|
|
PACKAGES:=
|
|
|
|
endef
|
|
|
|
|
|
|
|
ifndef Profile
|
|
|
|
define Profile
|
|
|
|
$(eval $(call ProfileDefault))
|
|
|
|
$(eval $(call Profile/$(1)))
|
|
|
|
dumpinfo : $(call shexport,Profile/$(1)/Description)
|
2018-04-23 18:50:49 +08:00
|
|
|
PACKAGES := $(filter-out -%,$(PACKAGES))
|
2017-09-06 19:19:45 +08:00
|
|
|
DUMPINFO += \
|
|
|
|
echo "Target-Profile: $(1)"; \
|
|
|
|
$(if $(PRIORITY), echo "Target-Profile-Priority: $(PRIORITY)"; ) \
|
|
|
|
echo "Target-Profile-Name: $(NAME)"; \
|
|
|
|
echo "Target-Profile-Packages: $(PACKAGES) $(call extra_packages,$(DEFAULT_PACKAGES) $(PACKAGES))"; \
|
|
|
|
echo "Target-Profile-Description:"; \
|
|
|
|
echo "$$$$$$$$$(call shvar,Profile/$(1)/Description)"; \
|
|
|
|
echo "@@"; \
|
|
|
|
echo;
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR))
|
|
|
|
define IncludeProfiles
|
|
|
|
-include $(sort $(wildcard $(PLATFORM_DIR)/profiles/*.mk))
|
|
|
|
-include $(sort $(wildcard $(PLATFORM_SUBDIR)/profiles/*.mk))
|
|
|
|
endef
|
|
|
|
else
|
|
|
|
define IncludeProfiles
|
|
|
|
-include $(sort $(wildcard $(PLATFORM_DIR)/profiles/*.mk))
|
|
|
|
endef
|
|
|
|
endif
|
|
|
|
|
|
|
|
PROFILE?=$(call qstrip,$(CONFIG_TARGET_PROFILE))
|
|
|
|
|
|
|
|
ifeq ($(TARGET_BUILD),1)
|
|
|
|
ifneq ($(DUMP),)
|
|
|
|
$(eval $(call IncludeProfiles))
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
ifneq ($(TARGET_BUILD)$(if $(DUMP),,1),)
|
|
|
|
include $(INCLUDE_DIR)/kernel-version.mk
|
|
|
|
endif
|
|
|
|
|
|
|
|
GENERIC_PLATFORM_DIR := $(TOPDIR)/target/linux/generic
|
|
|
|
GENERIC_BACKPORT_DIR := $(GENERIC_PLATFORM_DIR)/backport$(if $(wildcard $(GENERIC_PLATFORM_DIR)/backport-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
|
|
|
|
GENERIC_PATCH_DIR := $(GENERIC_PLATFORM_DIR)/pending$(if $(wildcard $(GENERIC_PLATFORM_DIR)/pending-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
|
|
|
|
GENERIC_HACK_DIR := $(GENERIC_PLATFORM_DIR)/hack$(if $(wildcard $(GENERIC_PLATFORM_DIR)/hack-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
|
|
|
|
GENERIC_FILES_DIR := $(foreach dir,$(wildcard $(GENERIC_PLATFORM_DIR)/files $(GENERIC_PLATFORM_DIR)/files-$(KERNEL_PATCHVER)),"$(dir)")
|
|
|
|
|
|
|
|
__config_name_list = $(1)/config-$(KERNEL_PATCHVER) $(1)/config-default
|
|
|
|
__config_list = $(firstword $(wildcard $(call __config_name_list,$(1))))
|
|
|
|
find_kernel_config=$(if $(__config_list),$(__config_list),$(lastword $(__config_name_list)))
|
|
|
|
|
|
|
|
GENERIC_LINUX_CONFIG = $(call find_kernel_config,$(GENERIC_PLATFORM_DIR))
|
|
|
|
LINUX_TARGET_CONFIG = $(call find_kernel_config,$(PLATFORM_DIR))
|
|
|
|
ifneq ($(PLATFORM_DIR),$(PLATFORM_SUBDIR))
|
|
|
|
LINUX_SUBTARGET_CONFIG = $(call find_kernel_config,$(PLATFORM_SUBDIR))
|
|
|
|
endif
|
|
|
|
|
|
|
|
# config file list used for compiling
|
|
|
|
LINUX_KCONFIG_LIST = $(wildcard $(GENERIC_LINUX_CONFIG) $(LINUX_TARGET_CONFIG) $(LINUX_SUBTARGET_CONFIG) $(TOPDIR)/env/kernel-config)
|
|
|
|
|
|
|
|
# default config list for reconfiguring
|
|
|
|
# defaults to subtarget if subtarget exists and target does not
|
|
|
|
# defaults to target otherwise
|
|
|
|
USE_SUBTARGET_CONFIG = $(if $(wildcard $(LINUX_TARGET_CONFIG)),,$(if $(LINUX_SUBTARGET_CONFIG),1))
|
|
|
|
|
|
|
|
LINUX_RECONFIG_LIST = $(wildcard $(GENERIC_LINUX_CONFIG) $(LINUX_TARGET_CONFIG) $(if $(USE_SUBTARGET_CONFIG),$(LINUX_SUBTARGET_CONFIG)))
|
|
|
|
LINUX_RECONFIG_TARGET = $(if $(USE_SUBTARGET_CONFIG),$(LINUX_SUBTARGET_CONFIG),$(LINUX_TARGET_CONFIG))
|
|
|
|
|
2022-11-19 18:03:18 +08:00
|
|
|
CFG_TARGET = $(CONFIG_TARGET)
|
|
|
|
ifeq ($(CFG_TARGET),platform)
|
|
|
|
CFG_TARGET = target
|
|
|
|
$(warning Deprecation warning: use CONFIG_TARGET=target instead.)
|
|
|
|
else ifeq ($(CFG_TARGET),subtarget_platform)
|
|
|
|
CFG_TARGET = subtarget_target
|
|
|
|
$(warning Deprecation warning: use CONFIG_TARGET=subtarget_target instead.)
|
|
|
|
endif
|
|
|
|
|
2017-09-06 19:19:45 +08:00
|
|
|
# select the config file to be changed by kernel_menuconfig/kernel_oldconfig
|
2022-11-19 18:03:18 +08:00
|
|
|
ifeq ($(CFG_TARGET),target)
|
2017-09-06 19:19:45 +08:00
|
|
|
LINUX_RECONFIG_LIST = $(wildcard $(GENERIC_LINUX_CONFIG) $(LINUX_TARGET_CONFIG))
|
|
|
|
LINUX_RECONFIG_TARGET = $(LINUX_TARGET_CONFIG)
|
2022-11-19 18:03:18 +08:00
|
|
|
else ifeq ($(CFG_TARGET),subtarget)
|
2017-09-06 19:19:45 +08:00
|
|
|
LINUX_RECONFIG_LIST = $(wildcard $(GENERIC_LINUX_CONFIG) $(LINUX_TARGET_CONFIG) $(LINUX_SUBTARGET_CONFIG))
|
|
|
|
LINUX_RECONFIG_TARGET = $(LINUX_SUBTARGET_CONFIG)
|
2022-11-19 18:03:18 +08:00
|
|
|
else ifeq ($(CFG_TARGET),subtarget_target)
|
2017-09-06 19:19:45 +08:00
|
|
|
LINUX_RECONFIG_LIST = $(wildcard $(GENERIC_LINUX_CONFIG) $(LINUX_SUBTARGET_CONFIG) $(LINUX_TARGET_CONFIG))
|
|
|
|
LINUX_RECONFIG_TARGET = $(LINUX_TARGET_CONFIG)
|
2022-11-19 18:03:18 +08:00
|
|
|
else ifeq ($(CFG_TARGET),env)
|
2017-09-06 19:19:45 +08:00
|
|
|
LINUX_RECONFIG_LIST = $(LINUX_KCONFIG_LIST)
|
|
|
|
LINUX_RECONFIG_TARGET = $(TOPDIR)/env/kernel-config
|
2022-11-19 18:03:18 +08:00
|
|
|
else ifneq ($(strip $(CFG_TARGET)),)
|
|
|
|
$(error CONFIG_TARGET=$(CFG_TARGET) is invalid. Valid: target|subtarget|subtarget_target|env)
|
2017-09-06 19:19:45 +08:00
|
|
|
endif
|
|
|
|
|
2021-06-14 18:30:08 +08:00
|
|
|
__linux_confcmd = $(2) $(patsubst %,+,$(wordlist 2,9999,$(1))) $(1)
|
2017-09-06 19:19:45 +08:00
|
|
|
|
2021-06-14 18:30:08 +08:00
|
|
|
LINUX_CONF_CMD = $(SCRIPT_DIR)/kconfig.pl $(call __linux_confcmd,$(LINUX_KCONFIG_LIST))
|
|
|
|
LINUX_RECONF_CMD = $(SCRIPT_DIR)/kconfig.pl $(call __linux_confcmd,$(LINUX_RECONFIG_LIST))
|
|
|
|
LINUX_RECONF_DIFF = $(SCRIPT_DIR)/kconfig.pl - '>' $(call __linux_confcmd,$(filter-out $(LINUX_RECONFIG_TARGET),$(LINUX_RECONFIG_LIST))) $(1) $(GENERIC_PLATFORM_DIR)/config-filter
|
2017-09-06 19:19:45 +08:00
|
|
|
|
|
|
|
ifeq ($(DUMP),1)
|
|
|
|
BuildTarget=$(BuildTargets/DumpCurrent)
|
|
|
|
|
|
|
|
CPU_CFLAGS = -Os -pipe
|
|
|
|
ifneq ($(findstring mips,$(ARCH)),)
|
|
|
|
ifneq ($(findstring mips64,$(ARCH)),)
|
|
|
|
CPU_TYPE ?= mips64
|
|
|
|
else
|
|
|
|
CPU_TYPE ?= mips32
|
|
|
|
endif
|
|
|
|
CPU_CFLAGS += -mno-branch-likely
|
|
|
|
CPU_CFLAGS_mips32 = -mips32 -mtune=mips32
|
|
|
|
CPU_CFLAGS_mips64 = -mips64 -mtune=mips64 -mabi=64
|
2021-06-14 18:30:08 +08:00
|
|
|
CPU_CFLAGS_mips64r2 = -mips64r2 -mtune=mips64r2 -mabi=64
|
|
|
|
CPU_CFLAGS_4kec = -mips32r2 -mtune=4kec
|
2017-09-06 19:19:45 +08:00
|
|
|
CPU_CFLAGS_24kc = -mips32r2 -mtune=24kc
|
|
|
|
CPU_CFLAGS_74kc = -mips32r2 -mtune=74kc
|
2018-09-07 13:43:55 +08:00
|
|
|
CPU_CFLAGS_octeonplus = -march=octeon+ -mabi=64
|
2017-09-06 19:19:45 +08:00
|
|
|
endif
|
|
|
|
ifeq ($(ARCH),i386)
|
2021-06-14 18:30:08 +08:00
|
|
|
CPU_TYPE ?= pentium-mmx
|
|
|
|
CPU_CFLAGS_pentium-mmx = -march=pentium-mmx
|
2017-09-06 19:19:45 +08:00
|
|
|
CPU_CFLAGS_pentium4 = -march=pentium4
|
|
|
|
endif
|
|
|
|
ifneq ($(findstring arm,$(ARCH)),)
|
|
|
|
CPU_TYPE ?= xscale
|
|
|
|
endif
|
|
|
|
ifeq ($(ARCH),powerpc)
|
|
|
|
CPU_CFLAGS_603e:=-mcpu=603e
|
|
|
|
CPU_CFLAGS_8540:=-mcpu=8540
|
treewide: sync with upstream (#10720)
* mpc85xx: add support for cpu type 8548
8540 cpu type corresponds to e500v1 core while
8548 cpu type corresponds to e500v2 core
See https://www.nxp.com/products/processors-and-microcontrollers/legacy-mpu-mcus/powerquicc-processors:POWERQUICC_HOME#powerquicc-iii-mpc85xx
and https://www.nxp.com/docs/en/application-note/AN2807.pdf .
Co-authored-by: Josef Schlehofer <josef.schlehofer@nic.cz>
Co-authored-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Šimon Bořek <simon.borek@nic.cz>
* tree-wide: Do not use package librt and libpthread
The libraries libpthread, libdl, libutil, libanl have been integrated
into the libc library in version 2.34. it is not needed to explicitly
link them any more.
Most of the functions have been moved from the librt.so into libc.so
some time ago already.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain/binutils: backport stable patches
Add the patches with real changes from the binutils 2.39 stable branch.
I am not aware that we ran into any of these problems, but I think it is
better to take the existing stable patches.
They were exported like this:
git format-patch binutils-2_39...origin/binutils-2_39-branch
I removed the patches changing the version numbers only.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* toolchain/binutils: switch to version 2.39 by default
This was build tested with all core packages on all targets
successfully.
This was run tested on the following systems:
* lantiq/xrx200 musl
* sunxi/cortex53 musl
* x86/64 musl
* x86/64 glibc
Some trusted firmware arm builds needed some fixes to build with
binutils 2.39, this was merged before.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* tools: Improve diffability/maintainability
There's no purpose to squish multiple tools into a single line (and
spread those out over multiple lines). It might look 'nice' in certain
conditions, but it's annoying to maintain.
For example, but not limited to:
* adding/removing tools, causes hard to read diffs
* Duplicates are harder to spot
* Sorting can not be (easily?) automated
With this proposed change, the above annoyances go away. Inserting a new
tool can be done with a single line-change-diff, sorting can be done by
any editor (in vi, select, :sort for example) and dupes are much easier
to spot.
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
* rules: drop -Wno-error additional flags from default TARGET_CFLAGS
We currently enable -Wno-error=unused-but-set-variable and
-Wno-error=unused-result by default on every compile package.
While this is (relatively) unharmful, we should follow other project
direction and starts enforcing good code quality. For example the linux
kernel recently started to enforce Wall by default and clean code is
mandatory for inclusion.
Drop for good these flags and and make it mandatory to correctly handle
return values at least with a warning log if they are not strictly error
condition.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* bridger: update to the latest version
def7755c459d add missing copyright headers
f68307fd96d7 add hairpin mode support
9ee8f433ba4e nl: do not pass NDA_VLAN with vid=0
978c1f9eed07 add support for the bridge port isolated flag
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Šimon Bořek <simon.borek@nic.cz>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Co-authored-by: Šimon Bořek <simon.borek@nic.cz>
Co-authored-by: Josef Schlehofer <josef.schlehofer@nic.cz>
Co-authored-by: Pali Rohár <pali@kernel.org>
Co-authored-by: Hauke Mehrtens <hauke@hauke-m.de>
Co-authored-by: Olliver Schinagl <oliver@schinagl.nl>
Co-authored-by: Christian Marangi <ansuelsmth@gmail.com>
Co-authored-by: Felix Fietkau <nbd@nbd.name>
2023-01-04 15:41:15 +08:00
|
|
|
CPU_CFLAGS_8548:=-mcpu=8548
|
2017-09-06 19:19:45 +08:00
|
|
|
CPU_CFLAGS_405:=-mcpu=405
|
|
|
|
CPU_CFLAGS_440:=-mcpu=440
|
|
|
|
CPU_CFLAGS_464fp:=-mcpu=464fp
|
|
|
|
endif
|
2018-01-09 14:38:15 +08:00
|
|
|
ifeq ($(ARCH),powerpc64)
|
|
|
|
CPU_TYPE ?= powerpc64
|
2022-11-19 18:03:18 +08:00
|
|
|
CPU_CFLAGS_e5500:=-mcpu=e5500
|
2018-01-09 14:38:15 +08:00
|
|
|
CPU_CFLAGS_powerpc64:=-mcpu=powerpc64
|
|
|
|
endif
|
2017-09-06 19:19:45 +08:00
|
|
|
ifeq ($(ARCH),sparc)
|
|
|
|
CPU_TYPE = sparc
|
|
|
|
CPU_CFLAGS_ultrasparc = -mcpu=ultrasparc
|
|
|
|
endif
|
|
|
|
ifeq ($(ARCH),aarch64)
|
|
|
|
CPU_TYPE ?= generic
|
|
|
|
CPU_CFLAGS_generic = -mcpu=generic
|
|
|
|
CPU_CFLAGS_cortex-a53 = -mcpu=cortex-a53
|
|
|
|
endif
|
|
|
|
ifeq ($(ARCH),arc)
|
|
|
|
CPU_TYPE ?= arc700
|
|
|
|
CPU_CFLAGS += -matomic
|
|
|
|
CPU_CFLAGS_arc700 = -mcpu=arc700
|
|
|
|
CPU_CFLAGS_archs = -mcpu=archs
|
|
|
|
endif
|
2018-12-16 10:45:53 +01:00
|
|
|
ifeq ($(ARCH),riscv64)
|
|
|
|
CPU_TYPE ?= riscv64
|
|
|
|
CPU_CFLAGS_riscv64:=-mabi=lp64d -march=rv64imafdc
|
|
|
|
endif
|
2024-01-12 10:13:05 +08:00
|
|
|
ifeq ($(ARCH),loongarch64)
|
|
|
|
CPU_TYPE ?= generic
|
|
|
|
CPU_CFLAGS := -O2 -pipe
|
|
|
|
CPU_CFLAGS_generic:=-march=loongarch64
|
|
|
|
endif
|
2017-09-06 19:19:45 +08:00
|
|
|
ifneq ($(CPU_TYPE),)
|
|
|
|
ifndef CPU_CFLAGS_$(CPU_TYPE)
|
|
|
|
$(warning CPU_TYPE "$(CPU_TYPE)" doesn't correspond to a known type)
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
DEFAULT_CFLAGS=$(strip $(CPU_CFLAGS) $(CPU_CFLAGS_$(CPU_TYPE)) $(CPU_CFLAGS_$(CPU_SUBTYPE)))
|
|
|
|
|
|
|
|
ifneq ($(BOARD),)
|
|
|
|
TMP_CONFIG:=$(TMP_DIR)/.kconfig-$(call target_conf,$(TARGETID))
|
|
|
|
$(TMP_CONFIG): $(LINUX_KCONFIG_LIST)
|
|
|
|
$(LINUX_CONF_CMD) > $@ || rm -f $@
|
|
|
|
-include $(TMP_CONFIG)
|
|
|
|
.SILENT: $(TMP_CONFIG)
|
|
|
|
.PRECIOUS: $(TMP_CONFIG)
|
|
|
|
|
2020-02-21 02:41:00 +08:00
|
|
|
ifdef KERNEL_TESTING_PATCHVER
|
2020-12-28 14:24:26 +08:00
|
|
|
ifneq ($(KERNEL_TESTING_PATCHVER),$(KERNEL_PATCHVER))
|
|
|
|
FEATURES += testing-kernel
|
|
|
|
endif
|
2020-02-21 02:41:00 +08:00
|
|
|
endif
|
2017-09-06 19:19:45 +08:00
|
|
|
ifneq ($(CONFIG_OF),)
|
|
|
|
FEATURES += dt
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_GENERIC_GPIO)$(CONFIG_GPIOLIB),)
|
|
|
|
FEATURES += gpio
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_PCI),)
|
|
|
|
FEATURES += pci
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_PCIEPORTBUS),)
|
|
|
|
FEATURES += pcie
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_USB)$(CONFIG_USB_SUPPORT),)
|
|
|
|
ifneq ($(CONFIG_USB_ARCH_HAS_HCD)$(CONFIG_USB_EHCI_HCD),)
|
|
|
|
FEATURES += usb
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_PCMCIA)$(CONFIG_PCCARD),)
|
|
|
|
FEATURES += pcmcia
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_VGA_CONSOLE)$(CONFIG_FB),)
|
|
|
|
FEATURES += display
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_RTC_CLASS),)
|
|
|
|
FEATURES += rtc
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_VIRTIO),)
|
|
|
|
FEATURES += virtio
|
|
|
|
endif
|
|
|
|
ifneq ($(CONFIG_CPU_MIPS32_R2),)
|
2018-04-23 18:50:49 +08:00
|
|
|
FEATURES += mips16
|
2017-09-06 19:19:45 +08:00
|
|
|
endif
|
|
|
|
FEATURES += $(foreach v,6 7,$(if $(CONFIG_CPU_V$(v)),arm_v$(v)))
|
|
|
|
|
|
|
|
# remove duplicates
|
|
|
|
FEATURES:=$(sort $(FEATURES))
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
CUR_SUBTARGET:=$(SUBTARGET)
|
|
|
|
ifeq ($(SUBTARGETS),)
|
|
|
|
CUR_SUBTARGET := default
|
|
|
|
endif
|
|
|
|
|
|
|
|
define BuildTargets/DumpCurrent
|
|
|
|
.PHONY: dumpinfo
|
|
|
|
dumpinfo : export DESCRIPTION=$$(Target/Description)
|
|
|
|
dumpinfo:
|
|
|
|
@echo 'Target: $(TARGETID)'; \
|
|
|
|
echo 'Target-Board: $(BOARD)'; \
|
|
|
|
echo 'Target-Name: $(BOARDNAME)$(if $(SUBTARGETS),$(if $(SUBTARGET),))'; \
|
|
|
|
echo 'Target-Arch: $(ARCH)'; \
|
|
|
|
echo 'Target-Arch-Packages: $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(ARCH)$(if $(CPU_TYPE),_$(CPU_TYPE))$(if $(CPU_SUBTYPE),_$(CPU_SUBTYPE)))'; \
|
|
|
|
echo 'Target-Features: $(FEATURES)'; \
|
|
|
|
echo 'Target-Depends: $(DEPENDS)'; \
|
|
|
|
echo 'Target-Optimization: $(if $(CFLAGS),$(CFLAGS),$(DEFAULT_CFLAGS))'; \
|
|
|
|
echo 'CPU-Type: $(CPU_TYPE)$(if $(CPU_SUBTYPE),+$(CPU_SUBTYPE))'; \
|
|
|
|
echo 'Linux-Version: $(LINUX_VERSION)'; \
|
2020-02-21 02:41:00 +08:00
|
|
|
$(if $(LINUX_TESTING_VERSION),echo 'Linux-Testing-Version: $(LINUX_TESTING_VERSION)';) \
|
2017-09-06 19:19:45 +08:00
|
|
|
echo 'Linux-Release: $(LINUX_RELEASE)'; \
|
|
|
|
echo 'Linux-Kernel-Arch: $(LINUX_KARCH)'; \
|
|
|
|
$(if $(SUBTARGET),,$(if $(DEFAULT_SUBTARGET), echo 'Default-Subtarget: $(DEFAULT_SUBTARGET)'; )) \
|
|
|
|
echo 'Target-Description:'; \
|
|
|
|
echo "$$$$DESCRIPTION"; \
|
|
|
|
echo '@@'; \
|
|
|
|
echo 'Default-Packages: $(DEFAULT_PACKAGES) $(call extra_packages,$(DEFAULT_PACKAGES))'; \
|
|
|
|
$(DUMPINFO)
|
|
|
|
$(if $(CUR_SUBTARGET),$(SUBMAKE) -r --no-print-directory -C image -s DUMP=1 SUBTARGET=$(CUR_SUBTARGET))
|
|
|
|
$(if $(SUBTARGET),,@$(foreach SUBTARGET,$(SUBTARGETS),$(SUBMAKE) -s DUMP=1 SUBTARGET=$(SUBTARGET); ))
|
|
|
|
endef
|
|
|
|
|
|
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
ifeq ($(TARGET_BUILD),1)
|
|
|
|
include $(INCLUDE_DIR)/kernel-build.mk
|
|
|
|
BuildTarget?=$(BuildKernel)
|
|
|
|
endif
|
|
|
|
|
|
|
|
endif #__target_inc
|