aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/parse_kconfig/Makefile11
-rw-r--r--scripts/shared/kconfig/files.mk6
2 files changed, 15 insertions, 2 deletions
diff --git a/scripts/parse_kconfig/Makefile b/scripts/parse_kconfig/Makefile
index 8547617..c102a73 100644
--- a/scripts/parse_kconfig/Makefile
+++ b/scripts/parse_kconfig/Makefile
@@ -1,3 +1,4 @@
+MAKEFLAGS += --no-builtin-rules
.PHONY: all clean
.SUFFIXES:
@@ -10,10 +11,16 @@ SRC = parser.c \
cnfexpr.c \
symlist.c \
output.c
+OBJ = $(patsubst %.c,%.o,$(SRC))
CFLAGS = -O0 -w -ggdb
+INCLUDES = -I../shared
-parse: $(SRC) $(KCONFIG_SRC)
- gcc $(CFLAGS) -o $@ $^ -I../shared
+%.o: %.c
+ gcc -c $(CFLAGS) -o $@ $^ $(INCLUDES)
+
+parse: $(OBJ) $(KCONFIG_OBJ)
+ gcc -o $@ $^
clean::
+ $(RM) $(OBJ)
$(RM) parser
diff --git a/scripts/shared/kconfig/files.mk b/scripts/shared/kconfig/files.mk
index 5552991..e51146a 100644
--- a/scripts/shared/kconfig/files.mk
+++ b/scripts/shared/kconfig/files.mk
@@ -7,6 +7,9 @@ ifndef KCONFIG_PREFIX
endif
KCONFIG_SRC = $(KCONFIG_PREFIX)/zconf.tab.c
+KCONFIG_OBJ = $(KCONFIG_PREFIX)/zconf.tab.o
+
+KCONFIG_CFLAGS = -O3
%.hash.c: %.gperf
gperf -t --output-file $@ -a -C -E -g -k '1,3,$$' -p -t $<
@@ -19,8 +22,11 @@ $(KCONFIG_PREFIX)/zconf.tab.c: $(KCONFIG_PREFIX)/zconf.hash.c
%.tab.c: %.y
bison -o $@ $< -p zconf -t -l
+$(KCONFIG_PREFIX)/zconf.tab.o: $(KCONFIG_PREFIX)/zconf.tab.c
+ gcc $(KCONFIG_CFLAGS) -c -o $@ $^
clean::
+ $(RM) $(KCONFIG_OBJ)
$(RM) $(KCONFIG_PREFIX)/zconf.tab.c
$(RM) $(KCONFIG_PREFIX)/zconf.lex.c
$(RM) $(KCONFIG_PREFIX)/zconf.hash.c