audio_hal: Improve proto file target rule [1/1]
PD#SWPL-802
Problem:
Protobuf source generate both .cc and .h file
from proto scipt (.proto) file.
The dependency rule has two independent rules:
src/audio_if_client.cpp: src/audio_service.pb.h
src/audio_service.pb.h: src/audio_service.proto
-> $(PROTOC)
src/audio_service.pb.o: src/audio_service.pb.cc
src/audio_service.pb.cc: src/audio_service.proto
-> $(PROTOC)
These two make paths have no dependency but when
$(PROTOC) runs, both audio_service.pb.h and
audio_service.pb.h.cc are updated, causing build
failures:
https://jenkins-sh.amlogic.com/job/Linux/job/RDK
/job/RDK_Firebolt-Auto/CONFIG=mesong12a_u212,TAR
GET=rdk-generic-mediaclient-image,label=walle08-
sh/120/console
Solution:
Correct PB rules with dual target.
Add both .cc and .h as dependency to pb.o target.
Verify:
Local.
Change-Id: Idb11441c7d66704076aa36135be138b3a5a43e73
Signed-off-by: Tim Yao <tim.yao@amlogic.com>
diff --git a/Makefile b/Makefile
index 788258f..74aeaeb 100644
--- a/Makefile
+++ b/Makefile
@@ -30,19 +30,16 @@
SC_LDFLAGS+=-Wl,--no-as-needed -lgrpc++_unsecure -lprotobuf -lboost_system -lamaudioutils -llog -ldl -lrt -lpthread -lstdc++ -pthread
LDFLAGS+= -Wl,--no-as-needed -llog -ldl -lrt -lpthread -lstdc++ -pthread
-%.grpc.pb.cc: %.proto
+%.grpc.pb.cc %.grpc.pb.h: %.proto
$(PROTOC) -I=. -I=$(PROTOC_INC) --grpc_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $<
-%.pb.h: %.proto
+%.pb.cc %.pb.h: %.proto
$(PROTOC) -I=. -I=$(PROTOC_INC) --cpp_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $<
-%.pb.cc: %.proto
- $(PROTOC) -I=. -I=$(PROTOC_INC) --cpp_out=. --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $<
-
-%.o: %.cpp
+%.pb.o: %.pb.cc %.pb.h
$(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $<
-%.o: %.cc
+%.o: %.cpp
$(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $<
%.o: %.c