Отправка параметров, чтобы сделать (Linux) - PullRequest
0 голосов
/ 18 ноября 2011

См. Код ниже: Как отправить параметр BASE_NAME = myfile в командную строку без ввода BASE_NAME. Я хочу ввести только

$ 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 ]

1 голос
/ 18 ноября 2011

Вы можете использовать pattern-rule таким образом, чтобы вашей целью было имя вашего файла. Переменная $ @ будет содержать имя файла.

%.pdf:

        @echo $@;

-

$ make hello.pdf
hello.pdf

-

$ make path/to/hello.pdf
path/to/hello.pdf
0 голосов
/ 18 ноября 2011

Вы не можете делать то, что хотите.Вы можете сделать свой сценарий оболочки, который сделает это: вы наберете mymake pdf myfile, а ваш mymake сценарий оболочки будет запускать make pdf BASE_NAME=myfile

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...