blob: b821f06f11cb7ba0dc3ce82ea0053cc69982a607 [file] [log] [blame]
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +00001sconfigobj :=
2sconfigobj += lex.yy.o
3sconfigobj += sconfig.tab.o
Patrick Georgi114e7b22010-05-05 11:19:50 +00004sconfigobj += main.o
5
6SCONFIGFLAGS += -I$(top)/util/sconfig -I$(objutil)/sconfig
Julius Werner98eeb962019-12-11 15:47:42 -08007SCONFIGFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +00008
Patrick Georgia2acbc72010-04-16 22:48:57 +00009$(objutil)/sconfig:
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000010 mkdir -p $@
11
Patrick Georgid935f032013-12-05 20:17:36 +010012$(objutil)/sconfig/.generated: $(objutil)/sconfig
13 touch $@
14
15$(objutil)/sconfig/%.o: util/sconfig/%.c | $(objutil)/sconfig/.generated
Patrick Georgi114e7b22010-05-05 11:19:50 +000016 printf " HOSTCC $(subst $(obj)/,,$(@))\n"
17 $(HOSTCC) $(SCONFIGFLAGS) $(HOSTCFLAGS) -c -o $@ $<
18
Patrick Georgia2acbc72010-04-16 22:48:57 +000019$(objutil)/sconfig/%.o: $(objutil)/sconfig/%.c
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000020 printf " HOSTCC $(subst $(obj)/,,$(@))\n"
21 $(HOSTCC) $(SCONFIGFLAGS) $(HOSTCFLAGS) -c -o $@ $<
22
Martin Rothf411b702017-04-09 19:12:42 -060023ifeq ($(CONFIG_UTIL_GENPARSER),y)
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000024$(top)/util/sconfig/lex.yy.c_shipped: $(top)/util/sconfig/sconfig.l
Stefan Reinauer9bf78102010-08-09 13:28:18 +000025 printf " FLEX $(subst $(top)/,,$(@))\n"
Patrick Georgi05245ec2010-04-08 12:59:41 +000026 flex -L -o $@ $<
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000027
28# the .c rule also creates .h
29$(top)/util/sconfig/sconfig.tab.h_shipped: $(top)/util/sconfig/sconfig.tab.c_shipped
30$(top)/util/sconfig/sconfig.tab.c_shipped: $(top)/util/sconfig/sconfig.y
Stefan Reinauer9bf78102010-08-09 13:28:18 +000031 printf " BISON $(subst $(top)/,,$(@))\n"
Patrick Georgi05245ec2010-04-08 12:59:41 +000032 bison -l --defines=$(top)/util/sconfig/sconfig.tab.h_shipped -o $@ $<
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000033
34endif
35
Patrick Georgia2acbc72010-04-16 22:48:57 +000036$(objutil)/sconfig/lex.yy.o: $(objutil)/sconfig/sconfig.tab.h
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000037
Patrick Georgia2acbc72010-04-16 22:48:57 +000038$(objutil)/sconfig/%: $(top)/util/sconfig/%_shipped
Patrick Georgi109a1de2010-04-08 12:00:35 +000039 mkdir -p $(dir $@)
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000040 cp $< $@
41
Patrick Georgid935f032013-12-05 20:17:36 +010042$(objutil)/sconfig/sconfig: $(addprefix $(objutil)/sconfig/,$(sconfigobj))
Stefan Reinauere705f9c2010-04-08 13:16:32 +000043 printf " HOSTCC $(subst $(obj)/,,$(@)) (link)\n"
Patrick Georgia2acbc72010-04-16 22:48:57 +000044 $(HOSTCC) $(SCONFIGFLAGS) -o $@ $(addprefix $(objutil)/sconfig/,$(sconfigobj))
Patrick Georgiaeeafc02014-04-15 20:14:21 +020045
46$(addprefix $(objutil)/sconfig/,$(sconfigobj)) : $(objutil)/sconfig/sconfig.tab.h $(objutil)/sconfig/sconfig.tab.c $(objutil)/sconfig/lex.yy.c