| 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | ### |
| 3 | # scripts contains sources for various helper programs used throughout |
| 4 | # the kernel for the build process. |
| 5 | |
| 6 | hostprogs-always-$(CONFIG_BUILD_BIN2C) += bin2c |
| 7 | hostprogs-always-$(CONFIG_KALLSYMS) += kallsyms |
| 8 | hostprogs-always-$(BUILD_C_RECORDMCOUNT) += recordmcount |
| 9 | hostprogs-always-$(CONFIG_BUILDTIME_TABLE_SORT) += sorttable |
| 10 | hostprogs-always-$(CONFIG_ASN1) += asn1_compiler |
| 11 | hostprogs-always-$(CONFIG_MODULE_SIG_FORMAT) += sign-file |
| 12 | hostprogs-always-$(CONFIG_SYSTEM_EXTRA_CERTIFICATE) += insert-sys-cert |
| 13 | |
| 14 | HOSTCFLAGS_sorttable.o = -I$(srctree)/tools/include |
| 15 | HOSTLDLIBS_sorttable = -lpthread |
| 16 | HOSTCFLAGS_asn1_compiler.o = -I$(srctree)/include |
| 17 | HOSTCFLAGS_sign-file.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null) |
| 18 | HOSTLDLIBS_sign-file = $(shell $(HOSTPKG_CONFIG) --libs libcrypto 2> /dev/null || echo -lcrypto) |
| 19 | |
| 20 | ifdef CONFIG_UNWINDER_ORC |
| 21 | ifeq ($(ARCH),x86_64) |
| 22 | ARCH := x86 |
| 23 | endif |
| 24 | HOSTCFLAGS_sorttable.o += -I$(srctree)/tools/arch/x86/include |
| 25 | HOSTCFLAGS_sorttable.o += -DUNWINDER_ORC_ENABLED |
| 26 | endif |
| 27 | |
| 28 | ifdef CONFIG_BUILDTIME_MCOUNT_SORT |
| 29 | HOSTCFLAGS_sorttable.o += -DMCOUNT_SORT_ENABLED |
| 30 | endif |
| 31 | |
| 32 | # The following programs are only built on demand |
| 33 | hostprogs += unifdef |
| 34 | |
| 35 | # The module linker script is preprocessed on demand |
| 36 | targets += module.lds |
| 37 | |
| 38 | subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins |
| 39 | subdir-$(CONFIG_MODVERSIONS) += genksyms |
| 40 | subdir-$(CONFIG_SECURITY_SELINUX) += selinux |
| 41 | |
| 42 | # Let clean descend into subdirs |
| 43 | subdir- += basic dtc gdb kconfig mod |