Split C code in sconfig's parser into a separate file.
[coreboot.git] / util / sconfig / Makefile.inc
1 sconfigobj :=
2 sconfigobj += lex.yy.o
3 sconfigobj += sconfig.tab.o
4 sconfigobj += main.o
5
6 SCONFIGFLAGS += -I$(top)/util/sconfig -I$(objutil)/sconfig
7
8 $(objutil)/sconfig:
9         mkdir -p $@
10
11 $(objutil)/sconfig/%.o: util/sconfig/%.c
12         printf "    HOSTCC     $(subst $(obj)/,,$(@))\n"
13         $(HOSTCC) $(SCONFIGFLAGS) $(HOSTCFLAGS) -c -o $@ $<
14
15 $(objutil)/sconfig/%.o: $(objutil)/sconfig/%.c
16         printf "    HOSTCC     $(subst $(obj)/,,$(@))\n"
17         $(HOSTCC) $(SCONFIGFLAGS) $(HOSTCFLAGS) -c -o $@ $<
18
19 ifdef SCONFIG_GENPARSER
20 $(top)/util/sconfig/lex.yy.c_shipped: $(top)/util/sconfig/sconfig.l
21         flex -L -o $@ $<
22
23 # the .c rule also creates .h
24 $(top)/util/sconfig/sconfig.tab.h_shipped: $(top)/util/sconfig/sconfig.tab.c_shipped
25 $(top)/util/sconfig/sconfig.tab.c_shipped: $(top)/util/sconfig/sconfig.y
26         bison -l --defines=$(top)/util/sconfig/sconfig.tab.h_shipped -o $@ $<
27
28 endif
29
30 $(objutil)/sconfig/lex.yy.o: $(objutil)/sconfig/sconfig.tab.h
31
32 $(objutil)/sconfig/%: $(top)/util/sconfig/%_shipped
33         mkdir -p $(dir $@)
34         cp $< $@
35
36 $(objutil)/sconfig/sconfig: $(objutil)/sconfig $(addprefix $(objutil)/sconfig/,$(sconfigobj))
37         printf "    HOSTCC     $(subst $(obj)/,,$(@)) (link)\n"
38         $(HOSTCC) $(SCONFIGFLAGS) -o $@ $(addprefix $(objutil)/sconfig/,$(sconfigobj))