是否可以使用将生成过程本身引导到的生成文件chdir
?我想编写一个期望从构建目录执行的生成文件。
假设我有一个看起来像这样的项目目录结构
project/
├── Makefile
├── include
│ └── Foo.h
├── src
│ └── Foo.cpp
└── test
└── FooTest.cpp
make 目录做的第一件事就是创建一个构建目录。
project/
├── Makefile
├── _build
├── include
│ └── Foo.h
├── src
│ └── Foo.cpp
└── test
└── FooTest.cpp
是否可以将生成文件定向chdir
到_build
以简化我的规则?
我希望能够写作(例如)
foo : Foo.o
$(LD) $^ -o $@ $(LDFLAGS)
而不是
_build/foo : _build/Foo.o
$(LD) $^ -o $@ $(LDFLAGS)
我知道我可以将构建目录添加到VPATH
以影响路径解析,但仅 chdir Make 本身似乎更干净。有没有办法做到这一点(最好不使用诡计)?