Syntax 解释makefile xpi\u builded:=$(build\u dir)/$(install\u rdf)\ $(构建目录)/$(浏览器清单)\ $(chrome\u jar\u文件)\ $(默认值) xpi\u内置\u否\u目录:=$(子项$(内置\u目录)/,,$(xpi\u内置)) $(xpi\U文件):$(生成目录)$(xpi\U生成) @echo“创建XPI文件” cd$(构建目录)$(ZIP)/$(xpi\U文件)$(xpi\U构建\U否\U目录) @echo“创建XPI文件。完成!” $(构建目录)/%:% cp-f$
谁能给我解释一下这个makefile部分吗?特别感兴趣Syntax 解释makefile xpi\u builded:=$(build\u dir)/$(install\u rdf)\ $(构建目录)/$(浏览器清单)\ $(chrome\u jar\u文件)\ $(默认值) xpi\u内置\u否\u目录:=$(子项$(内置\u目录)/,,$(xpi\u内置)) $(xpi\U文件):$(生成目录)$(xpi\U生成) @echo“创建XPI文件” cd$(构建目录)$(ZIP)/$(xpi\U文件)$(xpi\U构建\U否\U目录) @echo“创建XPI文件。完成!” $(构建目录)/%:% cp-f$,syntax,makefile,Syntax,Makefile,谁能给我解释一下这个makefile部分吗?特别感兴趣 $(build\u dir)/%:%以及$请参见GNU make文档中的和。第一条规则匹配$(build\u dir)中的文件,而不是$(build\u dir)本身$ 下一条规则 $(build_dir)/foo: foo cp -f foo $(build_dir)/foo 用于$(build_dir)本身,并且不必要地复杂。它说“如果$(build\u dir)不存在,那么mkdir就会存在”,可以这样写: $(build
以及$(build\u dir)/%:%
$请参见GNU make文档中的和。第一条规则匹配
中的文件,而不是$(build\u dir)
本身<代码>$ 下一条规则$(build\u dir)
用于$(build_dir)/foo: foo cp -f foo $(build_dir)/foo
本身,并且不必要地复杂。它说“如果$(build_dir)
不存在,那么mkdir就会存在”,可以这样写:$(build\u dir)
看起来您的主要目标是$(build_dir): @if [ ! -x $(build_dir) ]; \ then \ mkdir $(build_dir); \ fi
:$(xpi\u文件)
因此Make将首先生成
(如果需要),然后是列表的成员$(build\u dir)
,其中包括两种形式的内容%(xpi\u builded)
。完成这些操作后,它将执行此规则的命令:它将cd放入$(build\u dir)/%
,压缩一些内容,并$(build\u dir)
回显几条消息。不太正确--
$@谢谢您的详细解释。你知道有什么好的电子书吗?@Michael e-book?LukášLalinský引用了GNUMake手册,这是我所知道的最好的文档。还有“高级自动依赖生成”,这是高级的,还有“递归使被认为是有害的”,我不同意这一说法。
$(build_dir)/foo: foo cp -f foo $(build_dir)/foo
$(build_dir): @if [ ! -x $(build_dir) ]; \ then \ mkdir $(build_dir); \ fi
$(build_dir): mkdir $@
$(xpi_file): $(build_dir) $(xpi_built)