summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorLibravatar Mubashshir <ahmubashshir@gmail.com>2024-11-15 17:26:17 +0600
committerLibravatar Mubashshir <ahmubashshir@gmail.com>2024-11-15 17:27:34 +0600
commitd8fe6ba3c6eff80a87335ece23c6111d4996c23c (patch)
tree5a576ec762a1e9baf608a82685cabb828d85aeb1 /Makefile
parent5a02f27098f62f4bfac015c2ed4023715a7d1c33 (diff)
downloadlog-parser-d8fe6ba3c6eff80a87335ece23c6111d4996c23c.tar.gz
log-parser-d8fe6ba3c6eff80a87335ece23c6111d4996c23c.zip
Generate docs on build
Signed-off-by: Mubashshir <ahmubashshir@gmail.com>
Diffstat (limited to '')
-rw-r--r--Makefile38
1 files changed, 29 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index ec5a358..a4e7544 100644
--- a/Makefile
+++ b/Makefile
@@ -9,28 +9,29 @@ ifneq ($(shell eval 'echo -e'),-e)
endif
-<<sources>> := src/system.l src/system.proto src/system.yy
<<objects>> := obj/system.lex.o obj/system.tab.o obj/system.pb.o
-all: $(BINARY)
-%.lex.cc: %.l
+all: $(BINARY) doc
+
+%.lex.cc: %.flex
$(<<) " LEX\t" $(<:src/%=%)
@flex -+ -o $(@) $(<)
%.tab.cc: %.yy
$(<<) "BISON\t" $(<:src/%=%) $(@:src/%=%)
- @bison -o $(@) $(<)
+ @bison -r -o $(@) $(<)
%.tab.hh: %.yy
$(<<) "BISON\t" $(<:src/%=%) $(@:src/%=%)
@bison -o /dev/null --header=$(@) $(<)
+
%.pb.cc %.pb.h: %.proto
$(<<) "PROTOC" $(<)
@protoc --cpp_out=. $(<)
-src/system.lex.cc: src/system.tab.hh src/system.tab.cc
+src/system.lex.cc: src/system.tab.hh
src/system.tab.cc: src/system.pb.h
obj/%.o: src/%.cc
@@ -38,14 +39,33 @@ obj/%.o: src/%.cc
@mkdir -p $(shell dirname $(@))
@$(CXX) -c $(<) -o $(@) $(CXXFLAGS)
+doc/%.tab.gv: src/%.yy
+ $(<<) "BISON\t" $(<:src/%=%) $(@:doc/%=%)
+ @mkdir -p $(shell dirname $(@))
+ @bison -o $(<:src/%.yy=.%.gv.tab) --graph=$(@) $(<)
+ @$(RM) $(<:src/%.yy=.%.gv.tab)
+
+doc/%.tab.html: src/%.yy
+ $(<<) "BISON\t" $(<:src/%=%) $(@:doc/%=%)
+ @mkdir -p $(shell dirname $(@))
+ @bison -o $(<:src/%.yy=.%.html.tab) --html=$(@) $(<)
+ @$(RM) $(<:src/%.yy=.%.html.tab) $(<:src/%.yy=.%.html.xml)
+
+doc/%.tab.xml: src/%.yy
+ $(<<) "BISON\t" $(<:src/%=%) $(@:doc/%=%)
+ @mkdir -p $(shell dirname $(@))
+ @bison -o $(<:src/%.yy=.%.xml.tab) --xml=$(@) $(<)
+ @$(RM) $(<:src/%.yy=.%.xml.tab)
$(BINARY): $(<<objects>>)
$(<<) "LINK\t" $(^:obj/%=%)
@$(CXX) $(^) -o $(@) $(LDFLAGS)
clean:
- $(<<) " RM\t" $(<<objects>>:obj/%=%) $(BINARY)
- @$(RM) -f $(<<objects>>) $(BINARY)
+ $(<<) " RM\t" obj doc
+ @$(RM) -vf obj doc
+
+doc: doc/system.tab.gv doc/system.tab.html doc/system.tab.xml
-.PHONY: all clean install uninstall test
-#.INTERMEDIATE: src/system.lex.cc src/system.pb.h src/system.tab.cc src/system.tab.hh
+.PHONY: all clean install uninstall test doc
+.INTERMEDIATE: src/system.lex.cc src/system.pb.h src/system.tab.cc src/system.tab.hh