2013-02-20 105 views
5

我有一个Makefile其完美的作品,从一个新的外壳调用,即让:呼叫从一个makefile内

make -C /dir/ 

但是,如果我把这个Makefile从另一个 Makefile文件,它由于某种复杂依赖性问题。明确了解嵌套调用的知识,通过make[1]:等打印可以看出,我怀疑make是以某种方式与其子进程共享变量的。

是否有反正打电话干净从一个Makefile?如果我的构建是从一个干净的shell运行的,应该可以从另一个Makefile调用它,而不必处理脚本内部的恐怖内容! :)

谢谢!

+0

这并不容易。你的意思是说,makefile_1在从*特定的* makefile_2或者* any *其他的生成文件(例如一个不起作用的简单的)中调用时会失败? – Beta 2013-02-20 05:36:05

+0

嗯,奇怪。在每种情况下比较'make -p'的输出。 (当然,我总是用'-Rr'和'--warn'-YMMV运行_make_。) – bobbogo 2013-02-20 10:35:40

回答

1

您还可以控制远销变量子使这是在主叫方做出打破了被叫做一些环境变量(CFLAGS等)

我的解决方案是在干净的外壳和通话点上区分环境。然后我手动将问题变量添加到列表中,并创建了一些save_env/restore_env脚本。

谢谢!