Makefile 包括要在生成文件本身中生成的参数
gnumake有没有办法在Makefile本身中包含Makefile 包括要在生成文件本身中生成的参数,makefile,gnu-make,Makefile,Gnu Make,gnumake有没有办法在Makefile本身中包含Make的参数?具体地说,如果--check symlink times参数始终适用于给定的生成文件,是否有某种方法在生成文件中对其进行标记?而不是打电话 $ make --check-symlink-times 最好只调用make本身并让Makefile指定一些参数 $ make 我能想到的唯一方法是使用第二个makefilemakefile.internal或类似的方法,使用-f从另一个调用另一个,或者将源代码放入子目录并使用-C,这
Make
的参数?具体地说,如果--check symlink times
参数始终适用于给定的生成文件,是否有某种方法在生成文件中对其进行标记?而不是打电话
$ make --check-symlink-times
最好只调用make本身并让Makefile指定一些参数
$ make
我能想到的唯一方法是使用第二个makefile
makefile.internal
或类似的方法,使用-f
从另一个调用另一个,或者将源代码放入子目录并使用-C
,这通常是一个好主意我能想到的唯一方法是拥有第二个makefilemakefile.internal
或类似的,然后使用-f
从另一个调用,或者将源代码放在子目录中并使用-C
,这通常是一个好主意应该很容易。只需在最上面写一条规则,如下所示:
all:
make --check-symlink-times rest
规则
rest
在下面某个地方执行真正的任务。应该很简单。只需在最上面写一条规则,如下所示:
all:
make --check-symlink-times rest
规则
rest
在下面的某个地方执行真正的任务。我不知道该选项是否特别适用于此机制(我相信至少在3.81中有些选项不适用)但是GNU make确实使用了手册中的MAKEFLAGS
来支持这个概念。我不知道这个选项是否特别适用于这个机制(我相信至少在3.81中没有)但GNU make确实支持使用手册第1部分中所示的MAKEFLAGS
这一概念。您可以从makefile中设置MAKEFLAGS
MAKEFLAGS := --check-symlink-times
这将允许检查此生成文件的符号链接的ctime。这似乎只适用于GNU make的最新版本,根据我的测试,它适用于版本
4.1
,但不适用于版本3.81
您可以从makefile中设置MAKEFLAGS
MAKEFLAGS := --check-symlink-times
这将允许检查此生成文件的符号链接的ctime。这似乎只适用于GNU make的最新版本,根据我的测试,它适用于版本
4.1
,但不适用于版本3.81
如果强制使用有限数量的“入口”目标是不可取的怎么办。如果您只做过makeall
,那么您的解决方案就可以了,但是如果rest依赖于多个目标,并且我希望能够通过添加标志独立调用这些目标呢?@kgraney:将all
更改为。将所有和rest
默认为$(MAKECMDGOALS)
。您最好添加-f
来指定一个单独的makefile,否则您将陷入无限循环。如果强制使用有限数量的“entry”目标是不可取的,该怎么办。如果您只做过makeall
,那么您的解决方案就可以了,但是如果rest依赖于多个目标,并且我希望能够通过添加标志独立调用这些目标呢?@kgraney:将all
更改为。将所有和rest
默认为$(MAKECMDGOALS)
。您最好添加-f
来指定一个单独的makefile,否则您将进入一个无限循环。