我有以下的别名,由按项目的项目时,它简化了我的工作流程:指定与环境变量的makefile
alias mk='make -f ${ACTIVE_MAKEFILE}'
一些背景资料:makefile文件是在一个单独的目录,所有一起,与相关名称他们提到的项目。我没有让他们在项目目录,因为:
- 他们是我的私人的makefile,我不希望他们承诺回购
- 其实我是想跟踪的变化,所以他们必须在回购。为此我有一个
umbrella
项目。
这工作正常......但:我失去了完成。做mk <TAB>
不会显示可用的Makefile目标,因此使用别名实际上使我的工作流效率降低。
我认为不是告诉使得使用特定的makefile与-f
标志,我可以设置一个环境变量来告诉做出了这一点,是这样的:
export MAKEFILE=my-makefile
然后在命令:
make
会自动使用我的my-makefile
。由于该命令没有改变,自动完成将继续工作。
但无论该选项不存在,或我无法找到,让使用选择Makefile
我可以设置哪些环境变量(如果有的话)环境变量来告诉make
到的名称使用特定的makefile?
您是否考虑在指向目录之外的目录中使用名为makefile(或Makefile,或GNUMakefile,或甚至是'delavnog.mk',以便您可以将env var设置为固定名称)的符号链接makefile是相关的,并且只是确保你的VCS忽略本地符号链接,因此它不会被推送到中央仓库? –
而且,作为另一种选择,使用shell脚本而不是别名“dlnmk”,它使用规则来为您定位makefile。开销很小,你可以将自己的想法封装在一个脚本中,所以你不必再考虑它了。 –
@JonathanLeffler:你的第一个建议适合我的用例。谢谢!你想补充说,作为答案?我会很乐意接受。 – dangonfast