ibm midrange -如何向Makefile添加新的文件类型



我试图使用GNU Make 4.0创建一个Makefile,但我遇到了一个问题。这是在QP2TERM PASE环境中的IBM i 7.2版本上。该平台上的文件类型是非标准的。每个源文件以".mbr"结尾;源代码类型可以通过包含该代码的目录名来收集。所以C代码在目录QCSRC中,C头文件在目录H中,RPG代码在目录QRPGLESRC中。源代码被编译成模块,模块被组合成程序。为了简单起见,这个测试只尝试将一个源文件编译成一个模块。

all: file1.module
file1.module: file1.mbr
    system "(compile instruction here...)"

make all的结果是make: 1254-002 Cannot find a rule to create target file1.mbr from dependencies.,所以Make似乎没有意识到*。MBR是一个源文件。我如何告诉它任何以。mbr结尾的都是源文件?更好的是,我如何告诉它,在目录QCSRC中以。mbr结尾的任何东西都是C源,在目录QRPGLESRC中以。mbr结尾的任何东西都是RPG源,所以我可以指定相关的编译指令?

我在定义. suffix方面取得了一些有限的成功,但是Make手册说应该使用模式规则。我试过了,但是没有成功:

all: file1.module
%.module: qrpglesrc/%.mbr
    system "(compile instruction here...)"

现在给出的错误是make: 1254-002 Cannot find a rule to create target file1.module from dependencies.

如果您的make程序是POSIX兼容的,那么您可以使用.SUFFIXES特殊目标并设置合适的推理规则。

例如,你可以输入(pseudo only)

.SUFFIXES: .suffix_used_to_create_mbr_files
.suffix_used_to_create_mbr_files:
    command-to-create-mbr-file

最新更新