我尝试制作一件或另一件事,具体取决于文件是否有p.md
或md
:
$(DST)/%.md.html: $(SRC)/%.md $(TMPHTML5)
$(eval EXT := $(suffix $<))
ifeq('$(EXT)','.p.md')
$(PANDOC_MD_HTML) -o $@ $< -V filename=$(<F) -V otherformatspresentations=true
else
$(PANDOC_MD_HTML) -o $@ $< -V filename=$(<F)
endif
但我明白了:
make site/ESPA4.Dia-0-presentacio.p.md.html -B
ifeq('.md','.p.md')
/bin/sh: -c: line 0: syntax error near unexpected token `'.md','.p.md''
/bin/sh: -c: line 0: `ifeq('.md','.p.md')'
make: *** [Makefile:103: site/ESPA4.Dia-0-presentacio.p.md.html] Error 1
答案 0 :(得分:3)
为什么不打算在每种类型的文件中使用一种模式,因为打算使用make?
byte[] signedBytes = Convert.FromBase64String(signedMessage);
请注意,根据您使用订单的GNU版本可能会或可能不重要,但这适用于所有版本。
如果您想在一个规则中执行此操作,则无法使用$(DST)/%.p.md : $(SRC)/%.md $(TMPHTML5)
$(PANDOC_MD_HTML) -o $@ $< -V filename=$(<F) -V otherformatspresentations=true
$(DST)/%.md : $(SRC)/%.md $(TMPHTML5)
$(PANDOC_MD_HTML) -o $@ $< -V filename=$(<F)
等。这是一个 make 命令,并且配方中的所有内容都会传递给壳。 shell不了解ifeq
因此你的错误。您必须使用ifeq
函数或完全使用shell语法:
$(if ...)
或者:
$(DST)/%.md.html: $(SRC)/%.md $(TMPHTML5)
$(PANDOC_MD_HTML) -o $@ $< -V filename=$(<F) $(if $(filter %.p.md,$<),-V otherformatspresentations=true)