blob: c3da29d1998e40d096ae36a0cc8af61256e52eda [file] [log] [blame]
Martin Rothadaab4a2022-10-28 22:38:44 -06001## SPDX-License-Identifier: GPL-2.0-only
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +00002sconfigobj :=
3sconfigobj += lex.yy.o
4sconfigobj += sconfig.tab.o
Patrick Georgi114e7b22010-05-05 11:19:50 +00005sconfigobj += main.o
6
7SCONFIGFLAGS += -I$(top)/util/sconfig -I$(objutil)/sconfig
Julius Werner98eeb962019-12-11 15:47:42 -08008SCONFIGFLAGS += -I$(top)/src/commonlib/include -I$(top)/src/commonlib/bsd/include
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +00009
Patrick Georgia2acbc72010-04-16 22:48:57 +000010$(objutil)/sconfig:
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000011 mkdir -p $@
12
Patrick Georgid935f032013-12-05 20:17:36 +010013$(objutil)/sconfig/.generated: $(objutil)/sconfig
14 touch $@
15
16$(objutil)/sconfig/%.o: util/sconfig/%.c | $(objutil)/sconfig/.generated
Patrick Georgi114e7b22010-05-05 11:19:50 +000017 printf " HOSTCC $(subst $(obj)/,,$(@))\n"
18 $(HOSTCC) $(SCONFIGFLAGS) $(HOSTCFLAGS) -c -o $@ $<
19
Patrick Georgia2acbc72010-04-16 22:48:57 +000020$(objutil)/sconfig/%.o: $(objutil)/sconfig/%.c
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000021 printf " HOSTCC $(subst $(obj)/,,$(@))\n"
22 $(HOSTCC) $(SCONFIGFLAGS) $(HOSTCFLAGS) -c -o $@ $<
23
Martin Rothf411b702017-04-09 19:12:42 -060024ifeq ($(CONFIG_UTIL_GENPARSER),y)
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000025$(top)/util/sconfig/lex.yy.c_shipped: $(top)/util/sconfig/sconfig.l
Stefan Reinauer9bf78102010-08-09 13:28:18 +000026 printf " FLEX $(subst $(top)/,,$(@))\n"
Patrick Georgi05245ec2010-04-08 12:59:41 +000027 flex -L -o $@ $<
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000028
29# the .c rule also creates .h
30$(top)/util/sconfig/sconfig.tab.h_shipped: $(top)/util/sconfig/sconfig.tab.c_shipped
31$(top)/util/sconfig/sconfig.tab.c_shipped: $(top)/util/sconfig/sconfig.y
Stefan Reinauer9bf78102010-08-09 13:28:18 +000032 printf " BISON $(subst $(top)/,,$(@))\n"
Patrick Georgi05245ec2010-04-08 12:59:41 +000033 bison -l --defines=$(top)/util/sconfig/sconfig.tab.h_shipped -o $@ $<
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000034
35endif
36
Patrick Georgia2acbc72010-04-16 22:48:57 +000037$(objutil)/sconfig/lex.yy.o: $(objutil)/sconfig/sconfig.tab.h
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000038
Patrick Georgia2acbc72010-04-16 22:48:57 +000039$(objutil)/sconfig/%: $(top)/util/sconfig/%_shipped
Patrick Georgi109a1de2010-04-08 12:00:35 +000040 mkdir -p $(dir $@)
Patrick Georgi7e8c9aa2010-04-08 11:37:43 +000041 cp $< $@
42
Patrick Georgid935f032013-12-05 20:17:36 +010043$(objutil)/sconfig/sconfig: $(addprefix $(objutil)/sconfig/,$(sconfigobj))
Stefan Reinauere705f9c2010-04-08 13:16:32 +000044 printf " HOSTCC $(subst $(obj)/,,$(@)) (link)\n"
Patrick Georgia2acbc72010-04-16 22:48:57 +000045 $(HOSTCC) $(SCONFIGFLAGS) -o $@ $(addprefix $(objutil)/sconfig/,$(sconfigobj))
Patrick Georgiaeeafc02014-04-15 20:14:21 +020046
47$(addprefix $(objutil)/sconfig/,$(sconfigobj)) : $(objutil)/sconfig/sconfig.tab.h $(objutil)/sconfig/sconfig.tab.c $(objutil)/sconfig/lex.yy.c