Я следующий файл сборки, с помощью правила, которое проверяет наличие зависимостей:команда эхо в Makefile не печатает
#!/usr/bin/make -f
dependencies:
$(info START-info)
@echo "START-echo"
$(call assert-command-present,fastqc)
$(call assert-command-present,cutadapt)
$(call assert-command-present,bowtie2)
$(call assert-command-present,samtools)
$(call assert-command-present,bedtools)
$(call assert-command-present,fetchChromSizes)
$(call assert-command-present,bedGraphToBigWig)
$(info END-info)
@echo "END-echo"
pipeline: dependencies
assert-command-present = $(info Checking for $1) && $(if $(shell which $1),$(info OK.),$(error ERROR: could not find '$1'. Exiting))
определяемого пользователем функции утверждают, командно-настоящее проверяет команду на пути, и возвращается если он не найден. Когда я запускаю этот файл сборку, команды эха и информации не возвращаются в порядке, я ожидаю:
START-info
Checking for fastqc
OK.
Checking for cutadapt
OK.
Checking for bowtie2
OK.
Checking for samtools
OK.
Checking for bedtools
OK.
Checking for fetchChromSizes
OK.
Checking for bedGraphToBigWig
OK.
END-info
START-echo
END-echo
С-эхо и С-инфо команды должны работать до того, как утверждает,-команду-подарки функция запуска, но Команда echo запускается после вызова функций.
Похоже, 'make' оценивает свои функции' info' и 'warning' раньше, чем вызовы' echo'. –