У меня есть этот код на bash:
(В начале скрипта: )
function timer()
{
if [[ $# -eq 0 ]]; then
echo $(date '+%s')
else
local stime=$1
etime=$(date '+%s')
if [[ -z "$stime" ]]; then stime=$etime; fi
dt=$((etime - stime))
ds=$((dt % 60))
dm=$(((dt / 60) % 60))
dh=$((dt / 3600))
printf '%d:%02d:%02d' $dh $dm $ds
fi
}
t=$(timer)
(и, в конце сценария:)
printf 'Elapsed time: %s\n' $(timer $t)
, чтобы вычислить общее время, затраченное сценарием. Этот код отлично работает в сценарии bash (shell). Итак, я хочу поместить этот код в make-файл для каждого правила.
Как я могу поместить эту функцию в Makefile? И как можно вызывать их в каждом правиле?
Я сделал что-то вроде этого:
define TIME
stime=$(1)
etime=$(date '+%s')
dt=$((etime - stime)) \
ds=$((dt % 60)) \
...
endef
и в каждом правиле:
rule1: dep1 dep2 dep3
...SOME STUFF
@$(call TIME, starttime)
rule2: depx depD rule1
...SOME STUFF
@$(call TIME, starttime)
, но математическая операция не работает. Я много чего пробовал, но не могу работать