UPDATE
Graças ao comentário @Kusalananda , descobri.
Eu usei as variáveis como valores iniciais para shell variáveis
CYCLE?=3
COUNT=1
download_when_ready: ## Will try the download operations many times till it succeeds or it reaches 10 tries
while ! composer update $(bundle) 2> /dev/null && [ "$$c" -lt 10 ]; \
do \
c=$$(( $${c:-$(COUNT)}+1 )); \
s=$$(( ($$c / $(CYCLE)) + ($$c % $(CYCLE)) )); \
echo "count $$c"; \
echo "cycle $(CYCLE)"; \
echo "sleep $$s"; \
sleep $$s; \
done
E isso funciona!
count 1
cycle 4
sleep 1
count 2
cycle 4
sleep 2
count 3
cycle 4
sleep 3
count 4
Graças a @Kusalananda & @ Stéphane Chazelas