прошедшее время для каждого правила

У меня есть этот код на 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)

, но математическая операция не работает. Я много чего пробовал, но не могу работать

6
задан jotapdiez 9 May 2011 в 16:28
поделиться