diff mbox series

[1/2] libtracefs: Add make sqlhist_remake to run bison and flex

Message ID 20250404161504.1671790-2-rostedt@goodmis.org (mailing list archive)
State Accepted
Commit 15145304ea3f2abff2418adc220c1459190246eb
Headers show
Series libtracefs: Update sqlhist bison and flex | expand

Commit Message

Steven Rostedt April 4, 2025, 4:12 p.m. UTC
From: "Steven Rostedt (Google)" <rostedt@goodmis.org>

Because git tends to not maintain timestamps of files, the sqlhist.y and
sqlhist.l can end up having an later timestamp than the files they
produce. This triggers bison and flex to be run and recreate the files
sqlhist.tab.h, sqlhist.tab.c and sqlhist-lex.c.

At best, this causes git to see the differences, at worse, the system may
not even have bison or flex and the build fails.

Add a new make target: make sqlhist_remake

This new target will run the bison and flex portions of the build.
It only needs to be run if the files sqlhist.y or sqlhist.l are modified.

Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 Makefile      |  3 +++
 src/Makefile  | 14 ++++++++------
 src/sqlhist.l |  2 ++
 src/sqlhist.y |  1 +
 4 files changed, 14 insertions(+), 6 deletions(-)
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index bd5c76bcd4f0..6e8022609ee7 100644
--- a/Makefile
+++ b/Makefile
@@ -400,6 +400,9 @@  sqlhist: samples/sqlhist
 samples: libtracefs.a force
 	$(Q)$(call descend,$(src)/samples,all)
 
+sqlhist_remake:
+	$(Q)$(call descend,$(src)/src,sqlhist_remake)
+
 clean: clean_meson
 	$(Q)$(call descend_clean,utest)
 	$(Q)$(call descend_clean,src)
diff --git a/src/Makefile b/src/Makefile
index be81059ce10a..d981d802f8b1 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -46,18 +46,20 @@  $(LIBTRACEFS_SHARED_SO): $(LIBTRACEFS_SHARED_VERSION)
 libtracefs.so: $(LIBTRACEFS_SHARED_SO)
 
 # bison will create both sqlhist.tab.c and sqlhist.tab.h
-sqlhist.tab.h:
-sqlhist.tab.c: sqlhist.y sqlhist.tab.h
-	bison --debug -v --report-file=bison.report -d -o $@ $<
+sqlhist.tab_gen.h:
+sqlhist.tab_gen.c: sqlhist.y sqlhist.tab.h
+	bison --debug -v --report-file=bison.report -d -o $(subst _gen,,$@) $<
 
-sqlhist-lex.c: sqlhist.l sqlhist.tab.c
-	flex -o $@ $<
+sqlhist-lex_gen.c: sqlhist.l sqlhist.tab.c
+	flex -o $(subst _gen,,$@) $<
 
 $(bdir)/%.o: %.c
 	$(Q)$(call do_fpic_compile)
 
 tracefs-sqlhist.o: sqlhist.tab.h
 
+sqlhist_remake: sqlhist.tab_gen.c sqlhist-lex_gen.c
+
 $(OBJS): | $(bdir)
 
 clean:
@@ -67,4 +69,4 @@  clean:
 
 $(bdir)/tracefs-sqlhist.o tracefs-sqlhist.o: sqlhist.tab.h
 
-.PHONY: $(LIBTRACEFS_SHARED_SO) $(LIBTRACEFS_STATIC)
+.PHONY: $(LIBTRACEFS_SHARED_SO) $(LIBTRACEFS_STATIC) sqlhist.tab_gen.c sqlhist-lex_gen.c
diff --git a/src/sqlhist.l b/src/sqlhist.l
index 86e156e52ff7..8b22049a067b 100644
--- a/src/sqlhist.l
+++ b/src/sqlhist.l
@@ -1,6 +1,8 @@ 
 %{
 /* code here */
 
+/* If you change this file, run: make sqlhist_remake */
+
 #include <stdarg.h>
 #include "sqlhist-parse.h"
 
diff --git a/src/sqlhist.y b/src/sqlhist.y
index 7caa364da28d..c35a1a37f8ce 100644
--- a/src/sqlhist.y
+++ b/src/sqlhist.y
@@ -1,4 +1,5 @@ 
 %{
+/* If you change this file, run: make sqlhist_remake */
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>