使用 GNU autotools 进程和 Oracle Pro C 预处理器
Posted
技术标签:
【中文标题】使用 GNU autotools 进程和 Oracle Pro C 预处理器【英文标题】:Using GNU autotools process and Oracle Pro C preprocessor 【发布时间】:2014-01-10 14:44:06 【问题描述】:我正在将一些库转换为 GNU 自动工具,并且很难集成 Oracle Pro C 预处理器。
工作流程如下:
.pc => .c => o. => .so/.a/binary
我无法在 automake 手册中找到任何提示,如何在构建过程中添加额外的前置步骤。
我试图修改 SOURCES=file.pc
但 autoreconf 抱怨缺少 C 文件。我添加了SUFFIXES = .pc .c .o
和
.pc.c:
$(PROC) iname=$<
但是目标会被忽略 -- 如果直接调用 $<
则永远不会解析。
怎么办?
【问题讨论】:
正在使用什么make
程序?是 GNU make 还是其他一些 make?
@ldav1s,我手头都有。我试图将其放入Makefile.am
。 make
版本有什么不同吗?
【参考方案1】:
类似这样的:
%.c : %.pc
$(PROC) iname=$<
foo.o : foo.pc
似乎适用于 GNU make。我没有任何其他类型的品牌可供测试。 IIRC,我认为
.SUFFIXES : .pc
.pc.c:
$(PROC) iname=$<
可以,但我没有另一个 make
来测试它。
我试过了,它的行为确实像你想要的那样。
foo_SOURCES= $(top_srcdir)/src/main.c $(top_srcdir)/src/foo.pc
SUFFIXES : .pc
.pc.c:
$(PROC) iname=$<
【讨论】:
第二个确实 not 工作,因为 automake 不接受!我已经尝试了第一个,但没有达到那个程度。问题是我如何告诉 automake 生成的 Makefile 应该首先运行 Pro C 然后cc
。以上是关于使用 GNU autotools 进程和 Oracle Pro C 预处理器的主要内容,如果未能解决你的问题,请参考以下文章