使用 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=$<

但是目标会被忽略 -- 如果直接调用 $&lt; 则永远不会解析。

怎么办?

【问题讨论】:

正在使用什么make 程序?是 GNU make 还是其他一些 make? @ldav1s,我手头都有。我试图将其放入Makefile.ammake 版本有什么不同吗? 【参考方案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 预处理器的主要内容,如果未能解决你的问题,请参考以下文章

GNU autotool:没有规则来制定目标

重新排序 gnu autotools 链接器标志

gnu autotools

gnu autotools

【转】GNU autotools(二)关于autogen.sh的说明

如何从现有的 C++ 源代码在 Eclipse CDT 中创建 GNU Autotool 项目?