发送参数(Linux)

时间:2011-11-18 17:34:31

标签: linux terminal makefile

请参阅以下代码:如何在不键入BASE_NAME的情况下将参数BASE_NAME = myfile发送到命令行。我只想进入

$ make pdf myfile

BASE_NAME = myfile

LATEX     = latex
PDFLATEX  = pdflatex
BIBTEX    = bibtex
MAKEINDEX = makeindex
DVIPS     = dvips
PS2PDF    = ps2pdf

pdf: $(BASE_NAME).pdf
ps: $(BASE_NAME).ps

$(BASE_NAME).ps: $(BASE_NAME).tex 
    $(LATEX) $<
    $(BIBTEX) $(BASE_NAME) 
    $(LATEX) $< 
    $(LATEX) $<
    $(DVIPS) -Ppdf $(BASE_NAME)

$(BASE_NAME).pdf: $(BASE_NAME).tex
    $(PDFLATEX) $<

clean:
    rm -f $(BASE_NAME)*.ps $(BASE_NAME)*.dvi *.log \
          *.aux *.blg *.toc \
          missfont.log $(BASE_NAME)*.bbl $(BASE_NAME)*.out \
          $(BASE_NAME)*.lof $(BASE_NAME)*.lot

open:
    acroread $(BASE_NAME).pdf

另外,我如何使用选项类型 $ make pdf -o myfile 生成pdf,然后从选项-o

打开它

2 个答案:

答案 0 :(得分:1)

您可以使用pattern-rule,使目标成为文件名。然后$ @变量将包含文件的名称。

%.pdf:

        @echo $@;

-

$ make hello.pdf
hello.pdf

-

$ make path/to/hello.pdf
path/to/hello.pdf

答案 1 :(得分:0)

你无法做你想做的事。您可以执行以下操作的shell脚本:您将键入mymake pdf myfile,并且您的mymake shell脚本将运行make pdf BASE_NAME=myfile

相关问题