このメイクファイルを見てください。これには、ある種の原始的な進行状況表示 (進行状況バーであった可能性があります) があります。
提案/コメントをお願いします!
# BUILD は最初は未定義です
ifndef ビルド
# 最大は 256 個の x に等しい
16 := xxxxxxxxxxxxxxxx
MAX := $(foreach x,$(sixteen),$(sixteen))
# T は、BUILD を特別な文字列に置き換えることで、ビルドしているターゲットの数を推定します
T := $(shell $(MAKE) -nrRf $(firstword $(MAKEFILE_LIST)) $(MAKECMDGOALS) \
BUILD="COUNTTHIS" | grep -c "COUNTTHIS")
# N は基数 1 の保留中のターゲットの数です。実際には、基数 x :-)
N := $(ワードリスト 1,$T,$(MAX))
# 保留中のターゲットの数を基数 10 で返す自動デクリメント カウンター
カウンター = $(単語 $N)$(eval N := $(単語リスト 2,$(単語 $N),$N))
# BUILD は進行状況を表示するように定義されるようになりました。これにより、ループ内での T の再定義も回避されます。
BUILD = @echo $(counter) of $(T)
終了
# ダミーの偽のターゲット
.PHONY: すべてクリーン
すべて: ターゲット
@echo完了
掃除:
@rm -f ターゲット *.c
# ダミービルドルール
ターゲット: ac bc cc dc ec fc gc
@タッチ $@
$(ビルド)
%.c:
@タッチ $@
$(ビルド)
すべての提案を歓迎します!