From e0139539359c0f3bec41b8ba37438f8026975774 Mon Sep 17 00:00:00 2001 From: Mubashshir Date: Fri, 15 Nov 2024 03:04:06 +0600 Subject: Initial commit Signed-off-by: Mubashshir --- Makefile | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2b2ccce --- /dev/null +++ b/Makefile @@ -0,0 +1,51 @@ +BINARY ?= obj/lprotoc +CXXFLAGS += -Isrc -I. $(shell pkg-config --cflags protobuf) +LDFLAGS += $(shell pkg-config --libs protobuf) + +# Echo function +<< := @echo +ifneq ($(shell eval 'echo -e'),-e) + << += -e +endif + + +<> := src/system.l src/system.proto src/system.yy +<> := obj/system.lex.o obj/system.tab.o obj/system.pb.o + +all: $(BINARY) + +%.lex.cc: %.l + $(<<) " LEX\t" $(<:src/%=%) + @flex -+ -o $(@) $(<) + +%.tab.cc: %.yy + $(<<) "BISON\t" $(<:src/%=%) $(@:src/%=%) + @bison -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.tab.cc: src/system.pb.h + +obj/%.o: src/%.cc + $(<<) " CXX\t" $(<:src/%=%) + @mkdir -p $(shell dirname $(@)) + @$(CXX) -c $(<) -o $(@) $(CXXFLAGS) + + +$(BINARY): $(<>) + $(<<) "LINK\t" $(^:obj/%=%) + @$(CXX) $(^) -o $(@) $(LDFLAGS) + +clean: + $(<<) " RM\t" $(<>:obj/%=%) $(BINARY) + @$(RM) -f $(<>) $(BINARY) + +.PHONY: all clean install uninstall test +.INTERMEDIATE: src/system.lex.cc src/system.pb.h src/system.tab.cc src/system.tab.hh -- cgit v1.2.3