在内存中使用Makefile运行make

时间:2009-10-19 09:43:43

标签: makefile

假设我手头有一个加密的Makefile,我想写一个Perl程序来解密它并用它运行make -f。如果不将解密的Makefile写回硬盘,这可能吗?

4 个答案:

答案 0 :(得分:8)

让您的程序将解密的Makefile写入stdout并将其传递给make - 。

见man make,部分说:

  

如果makefile为“ - ”,则读取标准输入。

答案 1 :(得分:0)

您可以尝试在运行make时设置LD_PRELOAD,以便为make提供一些伪造的fopen / fclose函数,这些函数会读取内存中的makefile。

答案 2 :(得分:0)

make -f <(decrypt file)

这适用于linux和其他一些系统。它不依赖于支持此功能的make。它是在操作系统中完成的。见http://www.gnu.org/software/bash/manual/bashref.html#Process-Substitution

P.S。你会考虑交换空间,告诉make不要交换。

这对第一个文件中包含的文件也无济于事。

答案 3 :(得分:0)

您可以使用加密文件系统。 shell脚本可以启动密钥代理,对于文件系统,make可以运行检索并将所有内容保存到加密文件系统或从加密文件系统保存。我已经使用sshfs成功完成了这项工作(不是加密文件系统,而是加密连接到锁定在房间中的远程文件系统)。