сопоставление списка файлов с GNU make

Скажите awk использовать - в качестве разделителя полей и замените его пробелом по умолчанию:

awk -F - '$1=$1' file
0
16.12.2018, 13:59
2 ответа

Это не особенно удачное использование make, так как здесь нет зависимостей, но, возможно, вы добавите их позже, так что вот возможное начало:

MAINFILES = main letter report course
T = $(addsuffix.tex,$(MAINFILES))

default: ${T}
${T}:
        @if [ -f "$@" -a -r "$@" ]; then latexmk -pdfxe "$@"; else :;fi
clean:
        latexmk -c
.PHONY: ${T} clean

Целью по умолчанию является main.texи т. д. Для сборки этого файла или других нет никаких зависимостей, поэтому запускается сценарий оболочки с одной строкой -для проверки существования и читабельности файла, затем нужная команда бегать. Часть elseпредназначена для того, чтобы make не останавливался с ошибкой, если файл не существует.

Существует сложность, связанная с необходимостью цели .PHONY, иначе, когда файлы существуют, make увидит, что зависимости нет, и ничего не сделает. Это относится и к чистой цели, если у вас есть файл с именем cleanв каталоге.

1
28.01.2020, 02:42

Похоже, вам просто нужен простой Makefile, который знает, как сделать PDF из TeX:

all: $(patsubst %.tex,%.pdf,$(wildcard *.tex))

%.pdf: %.tex
        latexmk -pdfxe $<

.PHONY: all
.DELETE_ON_ERROR:
0
28.01.2020, 02:42

Теги

Похожие вопросы