是否有要设置的变量,以便" make"命令搜索makefile

时间:2016-08-24 05:46:18

标签: makefile

是否有要设置的变量,以便make命令在其他目录中搜索makefile而不是仅搜索当前工作目录中的makefile?

更新:场景就像这样,在我们的项目中,我们有一个主要定义&设置一些环境变量。然后在根文件夹(要构建)中给出一个make,它没有makefile。因此,我不认为" -c"或其他make选项可以帮助解决这个问题。 经过一些调查,我发现makefile在内部文件夹中并被调用。所以,我的问题是,是否有任何环境变量使得" make"命令在指定的目录中搜索makefile(通过环境变量)。

3 个答案:

答案 0 :(得分:2)

简短的回答是否定的,对于GNU make,不可能在与启动文件不同的目录中搜索makefile(或由于// Create the renderer renderer = new THREE.WebGLRenderer({ alpha: true }); renderer.setSize(window.innerWidth, window.innerHeight); renderer.setPixelRatio( window.devicePixelRatio ); document.body.appendChild( renderer.domElement ); 选项而切换到目录。 )默认情况下。

您有两种选择:一种是使用上面的-C选项。

另一种方法是在调用-f之前将MAKEFILES变量设置为要读入的makefile列表。请注意,这必须是您要读入的实际文件,而不仅仅是包含它们的目录。这样做的缺点是永远不会从这些makefile中获取默认目标:请参阅https://www.gnu.org/software/make/manual/html_node/MAKEFILES-Variable.html,这意味着您需要始终在命令行上指定要构建的目标。

答案 1 :(得分:0)

对于root makefile,您必须指定文件名,使用

make -f mymakefiledir/makefile

对于嵌套的makefile,有make -I MyMakefileDir

$ man make

-f file, --file=file, --makefile=FILE
                Use file as a makefile.

-I dir, --include-dir=dir
                Specifies  a  directory  dir to search for included makefiles.  If
                several -I options are used to specify  several  directories,  the
                directories are searched in the order specified.  Unlike the argu‐
                ments to other flags of make, directories given with -I flags  may
                come directly after the flag: -Idir is allowed, as well as -I dir.
                This syntax is allowed for compatibility with the C preprocessor's
                -I flag.

答案 2 :(得分:0)

根据GNU make的手册页。

If no -f option is present, make will look for the makefiles,GNUmakefile, 
makefile, and Makefile, in that order.

没有环境变量make会引用在其他目录中搜索Makefile。为什么不在根文件夹中创建一个新的makefile来调用内部文件夹中的makefile?