^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # scripts/dtc makefile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) hostprogs-always-$(CONFIG_DTC) += dtc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) hostprogs-always-$(CHECK_DT_BINDING) += dtc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) srcpos.o checks.o util.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) # Source files need to get at the userspace version of libfdt_env.h to compile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) HOST_EXTRACFLAGS += -I $(srctree)/$(src)/libfdt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) ifeq ($(shell pkg-config --exists yaml-0.1 2>/dev/null && echo yes),)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) ifneq ($(CHECK_DT_BINDING)$(CHECK_DTBS),)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) $(error dtc needs libyaml for DT schema validation support. \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) Install the necessary libyaml development package.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) HOST_EXTRACFLAGS += -DNO_YAML
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) dtc-objs += yamltree.o
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) # To include <yaml.h> installed in a non-default path
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) HOSTCFLAGS_yamltree.o := $(shell pkg-config --cflags yaml-0.1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) # To link libyaml installed in a non-default path
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) HOSTLDLIBS_dtc := $(shell pkg-config --libs yaml-0.1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) # Generated files need one more search path to include headers in source tree
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) HOSTCFLAGS_dtc-lexer.lex.o := -I $(srctree)/$(src)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) HOSTCFLAGS_dtc-parser.tab.o := -I $(srctree)/$(src)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) # dependencies on generated files need to be listed explicitly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) $(obj)/dtc-lexer.lex.o: $(obj)/dtc-parser.tab.h