Я использую приватный скрипт, который обычно конвертирует несколько (~ 100) текстовых файлов в HTML. Я написал make-файл для преобразования только текстовых файлов с изменениями:
TEXT_DIR = /path/to/app/data/
OUTPUT_DIR = /path/to/app/reports/
.PHONY : html
html : $(wildcard $(OUTPUT_DIR)/*.html)
$(OUTPUT_DIR)/%.html : $(TEXT_DIR)/%.txt
generate_html --html $< $@
Когда я запускаю make
, он вызывает скрипт один раз для каждого измененного файла:
generate_html --html /path/to/app/data/file1.txt /path/to/app/reports/file1.html
generate_html --html /path/to/app/data/file2.txt /path/to/app/reports/file2.html
generate_html --html /path/to/app/data/file3.txt /path/to/app/reports/file3.html
Это довольно медленный, потому что скрипт занимает немного времени при начальной загрузке, так как он читает конфигурацию и выполняет настройку. Обработка всех файлов за один раз выполняется намного быстрее:
generate_html --html /path/to/app/data/file1.txt /path/to/app/reports/file1.html --html /path/to/app/data/file2.txt /path/to/app/reports/file2.html --html /path/to/app/data/file3.txt /path/to/app/reports/file3.html
Как мне заставить GNU Make запускать скрипт так, как это?