是否可以确定用户在使用“-C”命令行选项时调用make的目录?
更新: 多一点解释。我在理论上知道我不应该需要它。但是在我的情况下,Makefile的用户希望能够控制二进制文件的最终位置,所以我允许他们给我他们想要的路径。所以他们可以这样做:
make OUTPUT_PATH=/home/user/build/
然而,当他们从他们想要用于输出的目录调用make时会崩溃。
cd /home/user/build
make -C /home/user/source OUTPUT_PATH=.
希望能让它更加清晰。我倾向于说这是不可能的,但我想查询整个社区。 p>
谢谢!
答案 0 :(得分:2)
GNU make本身不提供此功能。但是,许多shell将设置PWD
环境变量,并且由于GNU make将所有环境变量导入为make宏,您可以这样找到:
$ pwd
/home/madscientist
$ echo 'all: ; @echo $(PWD) $(CURDIR)' | make -f-
/home/madscientist /home/madscientist
$ echo 'all: ; @echo $(PWD) $(CURDIR)' | make -f- -C /tmp
/home/madscientist /tmp
请注意,这取决于shell的行为!不同用户的shell可能表现不同。