更改目录并执行 makefile 命令

changing the directory and executing the makefile commands

我有以下目录结构

project
|-- aws-cdk
|-- data
    |-- some_project_files
    |-- Makefile

使用 Makefile,我正在执行目录 some_project_files,这工作正常。除此之外,我还想执行 aws-cdk 。但我看不到更改 makefile 中目录的方法。我尝试 cd aws-cdk 然后执行,但我一直收到错误 make: *** No rule to make target. Stop.

如何进入back/change目录然后执行Makefile

在一个 makefile 中,您可以在规则内更改目录,但您不能在一个目录中说这组规则 运行s 而在另一个目录中说这组规则 运行s。这不会阻止您 运行ning 通过简单地给出文件的路径来对不同目录中的文件进行规则。 data/Makefile 可以包含 ../aws-cdk/something 甚至 ../aws-cdk/%.out: ../aws-cdk/%.in 的规则,这很好。

如果你真的想改变目录,你需要一个单独的生成文件。我强烈建议将它放在 运行 所在的目录中,这样 aws-cdk/Makefile 然后你就可以从 data 中的那个目录中调用它,比如 $(MAKE) -C ../aws-cdk。你也可以把它放在其他任何地方,并给出一个明确的参数,比如 $(MAKE) -C ../aws-cdk -f aws-cdk.make,但是当它需要两年后由从未见过的人修复 and/or 时,把它放在目录中会更容易理解它。