xref: /linux/scripts/dtc/Makefile (revision 33619f0d3ff715a2a5499520967d526ad931d70d)
1# scripts/dtc makefile
2
3hostprogs-y	:= dtc
4always		:= $(hostprogs-y)
5
6dtc-objs	:= dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
7		   srcpos.o checks.o util.o
8dtc-objs	+= dtc-lexer.lex.o dtc-parser.tab.o
9
10# Source files need to get at the userspace version of libfdt_env.h to compile
11
12HOSTCFLAGS_DTC := -I$(src) -I$(src)/libfdt
13
14HOSTCFLAGS_checks.o := $(HOSTCFLAGS_DTC)
15HOSTCFLAGS_data.o := $(HOSTCFLAGS_DTC)
16HOSTCFLAGS_dtc.o := $(HOSTCFLAGS_DTC)
17HOSTCFLAGS_flattree.o := $(HOSTCFLAGS_DTC)
18HOSTCFLAGS_fstree.o := $(HOSTCFLAGS_DTC)
19HOSTCFLAGS_livetree.o := $(HOSTCFLAGS_DTC)
20HOSTCFLAGS_srcpos.o := $(HOSTCFLAGS_DTC)
21HOSTCFLAGS_treesource.o := $(HOSTCFLAGS_DTC)
22HOSTCFLAGS_util.o := $(HOSTCFLAGS_DTC)
23
24HOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
25HOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
26
27# dependencies on generated files need to be listed explicitly
28$(obj)/dtc-parser.tab.o: $(obj)/dtc-parser.tab.c $(obj)/dtc-parser.tab.h
29$(obj)/dtc-lexer.lex.o:  $(obj)/dtc-lexer.lex.c $(obj)/dtc-parser.tab.h
30
31targets += dtc-parser.tab.c dtc-lexer.lex.c
32
33clean-files += dtc-parser.tab.h
34
35# GENERATE_PARSER := 1		# Uncomment to rebuild flex/bison output
36
37ifdef GENERATE_PARSER
38
39BISON = bison
40FLEX = flex
41
42quiet_cmd_bison = BISON   $@
43      cmd_bison = $(BISON) -o$@ -d $<; cp $@ $@_shipped
44quiet_cmd_flex = FLEX    $@
45      cmd_flex = $(FLEX) -o$@ $<; cp $@ $@_shipped
46
47$(obj)/dtc-parser.tab.c: $(src)/dtc-parser.y FORCE
48        $(call if_changed,bison)
49
50$(obj)/dtc-parser.tab.h: $(obj)/dtc-parser.tab.c
51
52$(obj)/dtc-lexer.lex.c: $(src)/dtc-lexer.l FORCE
53        $(call if_changed,flex)
54
55endif
56