summaryrefslogtreecommitdiff
path: root/util/blobtool/Makefile.inc
blob: 34340412c8e7e42c3be660f904578da36bb89d87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
blobtool_obj := blobtool.lex.o blobtool.tab.o

BLOBTOOL_FLAGS += -I$(top)/util/blobtool -I$(objutil)/blobtool

$(objutil)/blobtool:
	mkdir -p $@

$(objutil)/blobtool/.generated: $(objutil)/blobtool
	touch $@

$(objutil)/blobtool/%.o: util/blobtool/%.c | $(objutil)/blobtool/.generated
	printf "    HOSTCC     $(subst $(obj)/,,$(@))\n"
	$(HOSTCC) $(BLOBTOOL_FLAGS) $(HOSTCFLAGS) -c -o $@ $<

$(objutil)/blobtool/%.o: $(objutil)/blobtool/%.c
	printf "    HOSTCC     $(subst $(obj)/,,$(@))\n"
	$(HOSTCC) $(BLOBTOOL_FLAGS) $(HOSTCFLAGS) -c -o $@ $<

ifeq ($(CONFIG_UTIL_GENPARSER),y)
$(top)/util/blobtool/blobtool.lex.c_shipped: $(top)/util/blobtool/blobtool.l
	printf "    FLEX       $(subst $(top)/,,$(@))\n"
	flex -L -o $@ $<

# the .c rule also creates .h
$(top)/util/blobtool/blobtool.tab.h_shipped: $(top)/util/blobtool/blobtool.tab.c_shipped
$(top)/util/blobtool/blobtool.tab.c_shipped: $(top)/util/blobtool/blobtool.y
	printf "    BISON      $(subst $(top)/,,$(@))\n"
	bison -l --defines=$(top)/util/blobtool/blobtool.tab.h_shipped -o $@ $<
endif

$(objutil)/blobtool/blobtool.lex.o: $(objutil)/blobtool/blobtool.tab.h

$(objutil)/blobtool/%: $(top)/util/blobtool/%_shipped
	mkdir -p $(dir $@)
	cp $< $@

$(objutil)/blobtool/blobtool: $(addprefix $(objutil)/blobtool/,$(blobtool_obj))
	printf "    HOSTCC     $(subst $(obj)/,,$(@)) (link)\n"
	$(HOSTCC) $(BLOBTOOL_FLAGS) -o $@ $(addprefix $(objutil)/blobtool/,$(blobtool_obj))

$(addprefix $(objutil)/blobtool/,$(blobtool_obj)) : $(objutil)/blobtool/blobtool.tab.h $(objutil)/blobtool/blobtool.tab.c $(objutil)/blobtool/blobtool.lex.c