blob: 01cdb36fc5832653b665d738f0369a32689b2f2e [file] [log] [blame]
David Gibson9fffb552009-04-30 15:25:53 +10001# 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
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)
22
23HOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
24HOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
25
26# dependencies on generated files need to be listed explicitly
27$(obj)/dtc-parser.tab.o: $(obj)/dtc-parser.tab.c $(obj)/dtc-parser.tab.h
28$(obj)/dtc-lexer.lex.o: $(obj)/dtc-lexer.lex.c $(obj)/dtc-parser.tab.h
29
30targets += dtc-parser.tab.c dtc-lexer.lex.c
31
32clean-files += dtc-parser.tab.h
33
34# GENERATE_PARSER := 1 # Uncomment to rebuild flex/bison output
35
36ifdef GENERATE_PARSER
37
38BISON = bison
39FLEX = flex
40
41quiet_cmd_bison = BISON $@
42 cmd_bison = $(BISON) -o$@ -d $<; cp $@ $@_shipped
43quiet_cmd_flex = FLEX $@
44 cmd_flex = $(FLEX) -o$@ $<; cp $@ $@_shipped
45
46$(obj)/dtc-parser.tab.c: $(src)/dtc-parser.y FORCE
47 $(call if_changed,bison)
48
49$(obj)/dtc-parser.tab.h: $(obj)/dtc-parser.tab.c
50
51$(obj)/dtc-lexer.lex.c: $(src)/dtc-lexer.l FORCE
52 $(call if_changed,flex)
53
54endif