xref: /linux-6.15/scripts/dtc/Makefile (revision 9fffb55f)
1*9fffb55fSDavid Gibson# scripts/dtc makefile
2*9fffb55fSDavid Gibson
3*9fffb55fSDavid Gibsonhostprogs-y	:= dtc
4*9fffb55fSDavid Gibsonalways		:= $(hostprogs-y)
5*9fffb55fSDavid Gibson
6*9fffb55fSDavid Gibsondtc-objs	:= dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
7*9fffb55fSDavid Gibson		   srcpos.o checks.o
8*9fffb55fSDavid Gibsondtc-objs	+= dtc-lexer.lex.o dtc-parser.tab.o
9*9fffb55fSDavid Gibson
10*9fffb55fSDavid Gibson# Source files need to get at the userspace version of libfdt_env.h to compile
11*9fffb55fSDavid Gibson
12*9fffb55fSDavid GibsonHOSTCFLAGS_DTC := -I$(src) -I$(src)/libfdt
13*9fffb55fSDavid Gibson
14*9fffb55fSDavid GibsonHOSTCFLAGS_checks.o := $(HOSTCFLAGS_DTC)
15*9fffb55fSDavid GibsonHOSTCFLAGS_data.o := $(HOSTCFLAGS_DTC)
16*9fffb55fSDavid GibsonHOSTCFLAGS_dtc.o := $(HOSTCFLAGS_DTC)
17*9fffb55fSDavid GibsonHOSTCFLAGS_flattree.o := $(HOSTCFLAGS_DTC)
18*9fffb55fSDavid GibsonHOSTCFLAGS_fstree.o := $(HOSTCFLAGS_DTC)
19*9fffb55fSDavid GibsonHOSTCFLAGS_livetree.o := $(HOSTCFLAGS_DTC)
20*9fffb55fSDavid GibsonHOSTCFLAGS_srcpos.o := $(HOSTCFLAGS_DTC)
21*9fffb55fSDavid GibsonHOSTCFLAGS_treesource.o := $(HOSTCFLAGS_DTC)
22*9fffb55fSDavid Gibson
23*9fffb55fSDavid GibsonHOSTCFLAGS_dtc-lexer.lex.o := $(HOSTCFLAGS_DTC)
24*9fffb55fSDavid GibsonHOSTCFLAGS_dtc-parser.tab.o := $(HOSTCFLAGS_DTC)
25*9fffb55fSDavid Gibson
26*9fffb55fSDavid Gibson# dependencies on generated files need to be listed explicitly
27*9fffb55fSDavid Gibson$(obj)/dtc-parser.tab.o: $(obj)/dtc-parser.tab.c $(obj)/dtc-parser.tab.h
28*9fffb55fSDavid Gibson$(obj)/dtc-lexer.lex.o:  $(obj)/dtc-lexer.lex.c $(obj)/dtc-parser.tab.h
29*9fffb55fSDavid Gibson
30*9fffb55fSDavid Gibsontargets += dtc-parser.tab.c dtc-lexer.lex.c
31*9fffb55fSDavid Gibson
32*9fffb55fSDavid Gibsonclean-files += dtc-parser.tab.h
33*9fffb55fSDavid Gibson
34*9fffb55fSDavid Gibson# GENERATE_PARSER := 1		# Uncomment to rebuild flex/bison output
35*9fffb55fSDavid Gibson
36*9fffb55fSDavid Gibsonifdef GENERATE_PARSER
37*9fffb55fSDavid Gibson
38*9fffb55fSDavid GibsonBISON = bison
39*9fffb55fSDavid GibsonFLEX = flex
40*9fffb55fSDavid Gibson
41*9fffb55fSDavid Gibsonquiet_cmd_bison = BISON   $@
42*9fffb55fSDavid Gibson      cmd_bison = $(BISON) -o$@ -d $<; cp $@ $@_shipped
43*9fffb55fSDavid Gibsonquiet_cmd_flex = FLEX    $@
44*9fffb55fSDavid Gibson      cmd_flex = $(FLEX) -o$@ $<; cp $@ $@_shipped
45*9fffb55fSDavid Gibson
46*9fffb55fSDavid Gibson$(obj)/dtc-parser.tab.c: $(src)/dtc-parser.y FORCE
47*9fffb55fSDavid Gibson        $(call if_changed,bison)
48*9fffb55fSDavid Gibson
49*9fffb55fSDavid Gibson$(obj)/dtc-parser.tab.h: $(obj)/dtc-parser.tab.c
50*9fffb55fSDavid Gibson
51*9fffb55fSDavid Gibson$(obj)/dtc-lexer.lex.c: $(src)/dtc-lexer.l FORCE
52*9fffb55fSDavid Gibson        $(call if_changed,flex)
53*9fffb55fSDavid Gibson
54*9fffb55fSDavid Gibsonendif
55