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