Вид. Вы можете указать make использовать другую оболочку.
SHELL = myshell
, где myshell
- это оболочка типа
#!/bin/sh
time /bin/sh "$0" "$@"
Однако обычный способ сделать это - добавить префикс переменной ко всем вызовам команд. Хотя для подхода SHELL
я не вижу ни одного show-stopper, префиксный подход имеет то преимущество, что он более гибкий (вы можете указать разные префиксы для разных команд и переопределить значения префиксов в командной строке) и может быть заметно быстрее.
# Set Q=@ to not display command names
TIME = time
foo:
$(Q)$(TIME) foo_compiler
А вот полный рабочий пример оболочки:
#!/bin/bash
RESULTZ=/home/rbroger1/repos/knl/results
if [ "$1" == "-c" ] ; then
shift
fi
strace -f -o `mktemp $RESULTZ/result_XXXXXXX` -e trace=open,stat64,execve,exit_group,chdir /bin/sh -c "$@" | awk '{if (match("Process PID=\d+ runs in (64|32) bit",$0) == 0) {print $0}}'
# EOF