coreboot/util/dtc/Makefile
Uwe Hermann 246020263e The attached patch adds some verbosity to the bison step in the dtc
build, and also creates the target directory if not done yet. This fixes
a race-like issue I have with make sometimes trying to compile
dtc-parser.tab.c before bison finished execution. I have no idea why it
fixes things, but it seems to do, and does no harm otherwise.

Also, documenting this step is just The Right Thing[tm] in my opinion.

Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@300 f3766cd6-281f-0410-b1cd-43a5c92072e9
2007-05-02 13:29:51 +00:00

62 lines
1.7 KiB
Makefile

TARGETS = dtc ftdump
CFLAGS = -Wall -g
BISON = bison
DTC_OBJS = dtc.o livetree.o flattree.o data.o treesource.o fstree.o \
dtc-parser.tab.o lex.yy.o
OBJS = $(DTC_OBJS) libdt.o ftdump.o
DEPFILES = $(DTC_OBJS:.o=.d)
#all: $(TARGETS)
$(obj)/util/dtc/dtc: $(patsubst %,$(obj)/util/dtc/%,$(DTC_OBJS))
$(Q)mkdir -p $(obj)/util/dtc/
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -o $@ $^
ftdump: ftdump.o
$(Q)$(HOSTCC) -o $@ $^
$(obj)/util/dtc/dtc-parser.tab.c $(obj)/util/dtc/dtc-parser.tab.h $(obj)/util/dtc/dtc-parser.output: $(src)/util/dtc/dtc-parser.y
$(Q)mkdir -p $(obj)/util/dtc
$(Q)printf " BISON $(subst $(shell pwd)/,,$(@))\n"
$(Q)cd $(obj)/util/dtc; $(BISON) -d $< &> $(obj)/util/dtc/dtc.bison.out
$(obj)/util/dtc/lex.yy.c: $(src)/util/dtc/dtc-lexer.l
$(Q)cd $(obj)/util/dtc; $(LEX) $<
$(obj)/util/dtc/%.o: $(src)/util/dtc/%.c
$(Q)mkdir -p $(obj)/util/dtc/
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
$(obj)/util/dtc/dtc-parser.tab.o: $(obj)/util/dtc/dtc-parser.tab.c
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
$(obj)/util/dtc/lex.yy.o: $(obj)/util/dtc/lex.yy.c $(obj)/util/dtc/dtc-parser.tab.h
$(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
ifdef DTC_DEBUG
lex.yy.o: lex.yy.c dtc-parser.tab.h
check: all
$(Q)cd tests && $(MAKE) check
clean:
$(Q)rm -f *~ *.o a.out core $(TARGETS)
$(Q)rm -f *.tab.[ch] lex.yy.c
$(Q)rm -f *.i *.output vgcore.*
$(Q)rm -f *.d
$(Q)cd tests && $(MAKE) clean
endif
%.d: %.c
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(HOSTCC) -MM -MG -MT "$*.o $@" $< > $@
-include $(DEPFILES)