foo.dvi: foo.texi chap1.texi chap2.texi
$(TEXI2DVI) $(srcdir)/foo.texi
你必须在Makefile中定义变量TEXI2DVI。它应该运行程序texi2dvi,该程序也是Texinfo 发布版本的一部分。作为另一个选择,只要写依赖文件并且允许GNU Make提供这个命令就行了。
`dist'
为本程序创建一个发布版本tar文件。该tar文件将被设置以使得在tar文件中的文件名以子目录名开头,这个子目录名 是包用于发布的名字。这个名字可以包含版本号。
例如,GCC版本1.40的发布tar文件将被解包到名为`gcc-1.40'的子目录中。
完成该任务的最简单方式是以适当的名称创建一个子目录,使用ln或者cp把正确的文件 安装到该目录中,而后tar这个子目录。
目标dist应该显式地依赖于发布版本中所有的非源文件,以确保它们在发布版本中都不是过时的。参见 制作发布包
`check'
(如果有的话)执行自检测。用户必须在运行测试之前,但不必在安装程序之前创建程序;你应该写下自检测以便 它们在程序创建之后而没有被安装之前进行工作。
对于那些适用于以下的目标的程序,建议你按照常用的名字提供它们。
installcheck
(如果有的话)执行安装监测。用户必须在运行该检测之前创建并且安装程序。你不应该假定`$(bindir)' 出现在搜索路径中。
installdirs
添加一个名为`installdirs'的目标,以便创建安装文件的目录和它们的父目录。 有一个称为`mkinstalldirs'的脚本可以为此提供便利;在Texinfo包中可以找到它。你可以使用象下面那样的规则:
# Make sure all installation directories (e.g. $(bindir))
# actually exist by making them if necessary.
installdirs: mkinstalldirs
$(srcdir)/mkinstalldirs $(bindir) $(datadir) \
$(libdir) $(infodir) \
$(mandir)
为指明命令而提供的变量本文来自优.文,论-文·网原文请找腾讯752018766
Makefile应该提供变量以覆盖某些命令、选项等等。
特别地,你应该通过变量来运行大部分工具程序。因此,如果你使用了Bison,就定义一个缺省值是通过`BISON = bison' 来设定的变量BISON,并且在你需要使用Bison的所有地方通过$(BISON)引用它。
在这种方式下,文件管理工具:ln、rm、mv等等并不需要通过变量引用,这是因为 用户不需要用其它程序来替代它们。
每个程序名变量都应该有一个对应的变量以便为程序提供选项。把`FLAGS'附加到程序名变量名的后面就是 选项变量名--例如,BISONFLAGS。(名字CFLAGS是这项规则的一个例外,但因为它是标准的而保留了它。) 在任何运行预处理器的编译命令中使用CPPFLAGS,在任何进行连接的编译命令和任何对ld的直接使用中 使用LDFLAGS。
如果存在一些为了正确地编译某些文件而必须使用的C编译器选项,不要把它们包括在CFLAGS中。用户希望 能够自由地指明CFLAGS的值。替代的方式是:通过在编译命令行中显式地给出这些必要的选项或者通过定义一