- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 GNUmake 从源目录生成一些 Web 内容的部署版本。我想成为通过压缩工具(例如 YUI 压缩器)运行某些文件的规则,然后对于没有规则的任何内容,只需复制它。
例如:
# Rule with all the $(WWW_OUT_DIR)/*.* files as a prerequisite
all: $(WWW_OUT_FILES)
# Generic rule to perform compression on Javascript files.
$(WWW_OUT_DIR)/%.js: $(WWW_SRC_DIR)/%.js
$(YUI_COMP) $(YUI_COMP_OPTS) $< > $@
# Generic rule to perform compression on CSS files.
$(WWW_OUT_DIR)/%.css: $(WWW_SRC_DIR)/%.css
$(YUI_COMP) $(YUI_COMP_OPTS) $< > $@
# TDB Rule to magically handle everything else? (This doesn't work)
$(WWW_OUT_DIR)/%.%: $(WWW_SRC_DIR)/%.%
cp $< $@
最佳答案
你几乎是对的,唯一需要修复的是最后一个模式规则,只需删除多余的百分比符号:
$(WWW_OUT_DIR)/%: $(WWW_SRC_DIR)/%
cp $< $@
The pattern-specific variables and pattern rules are now applied in the shortest stem first order instead of the definition order (variables and rules with the same stem length are still applied in the definition order). This produces the usually-desired behavior where more specific patterns are preferred.
Prior to version 3.82, when gmake finds multiple matches during a pattern search, it prefers patterns declared earlier in the makefile over patterns declared later. As of 3.82, gmake instead prefers the pattern that results in the shortest stem. That sounds a bit confusing thanks to the jargon, but I think this will actually cause gmake to better adhere to the principle of least astonishment. Here’s an example:
all: sub/foo.x
%.x:
@echo "Prefer first match (stem is $*)."
sub/%.x:
@echo "Prefer most specific match (stem is $*)."
Compare the output from gmake 3.81 and 3.82:
gmake 3.81
Prefer first match (stem is sub/foo).
gmake 3.82
Prefer most specific match (stem is foo).
gmake 3.82 prefers the second pattern because it is a more specific match than the first. Note that this is a significant backwards-incompatibility compared with previous versions of gmake!
关于makefile - gnumake 和模式规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9301669/
我正在使用 GNUmake 从源目录生成一些 Web 内容的部署版本。我想成为通过压缩工具(例如 YUI 压缩器)运行某些文件的规则,然后对于没有规则的任何内容,只需复制它。 例如: # Rule w
我有一个系统,我在其中生成了一个 makefile,它在 Mac OS X 下完美运行。当我在 Linux 下运行它时,我遇到了一个奇怪的问题。我设法将我的 makefile 简化为一个非常简单的示例
我正在尝试使用特殊变量.RECIPEPREFIX来避免难以看到的选项卡,但它似乎不起作用。我的简单测试文件是: .RECIPEPREFIX = + 全部: + @回声确定 但我得到消息: xxx:4:
我正在尝试为我正在进行的一个小项目学习 GNUMake。到目前为止,即使是“基本”教程也显得相当粗糙,而且我还没有理解 makefile 语法。 有没有人有一些好的资源供绝对初学者熟悉 GNUMake
我想检测 makefile 中工具版本错误的情况,并强制 make 失败,并显示一条错误消息,指示该项目不是正确的版本。 谁能举个例子吗? 我尝试了以下命令,但这不是正确的语法: ifeq "$(sh
我想使用 GNUMake 来运行基于规则的 makefile,它在目录结构中(在 Windows 文件系统上)构建一组 C 文件。 根目录、部分子目录和部分文件包含空格。 示例文件:"C:\Docum
我长期以来一直使用 Make 构建系统,但我决定开始学习 Maven 构建系统。虽然我通读了大部分在线文档,但似乎没有一个能给我我正在寻找的类比。我了解系统的生命周期,但我没有看到对编译步骤依赖项的引
我有一个 C++ 生成文件项目。它非常适合非平行建筑。对于并行构建,它的工作效率为 99%...我唯一的问题是我无法让我的最终可执行链接行最后运行(它必须是最后发生的事情)。 我有一些限制:我不想在我
我正在尝试使 ndk-build 在 Windows 上的 Cygwin 中工作。根据 NDK 文档(特别是 INSTALL.htm),“NDK 要求 GNU Make 3.81 或更高版本可用于您的
我得到了本学期的第一个项目,我被要求提交一个 makefile。网上的文献有点多,加上我的懒惰,我来到stackoverflow寻求简单的答案。我找到了 this answer通过 Brendan L
我正在尝试安装 Steel Bank Common Lisp,如 this article 中所述. 但是,当我执行这一步时: sh-3.2# INSTALL_ROOT=/usr/local sh i
我正在尝试运行带有 cocos2d 的应用程序,它显示以下错误。如何解决这个问题。谢谢 **** Build of configuration Default for project TestCpp
我是一名优秀的程序员,十分优秀!