【发布时间】:2017-04-07 15:03:08
【问题描述】:
我目前正在尝试构建一个混合 C/Java 构建基础架构,该基础架构大量使用设置为正常工作的协议缓冲区。当 Ant 进行最终的 Java 构建时,在此之前在 Autoconf/Make 中完成了许多 JNI 先决条件,然后从我的 makefile 中调用 Ant。
这是我正在尝试的工作的 sn-p:
PROTODIR = ../server/protos
PROTO_SOURCE = File_1.proto File_2.proto
BUILT_SOURCES = $(PROTO_SOURCE:.proto=.java)
# Tell make where to look for proto files
vpath %.proto $(PROTODIR)
# Build java from proto files
src/appname/proto/%.java: %.proto
protoc --java_out=src/ --proto_path=`dirname $<` $<
问题? protoc Java 删除了文件名中的下划线,因此 %.java 和 %.proto 文件名不匹配。构建最终会工作,但每次调用 Make 时它都会重建 proto 文件(以及因此依赖于 proto 文件的任何内容)。
我怎样才能使 %.java 和 %.proto 可以不同,或者这是否可能?
【问题讨论】:
标签: makefile protocol-buffers automake