看看這個makefile,它有某種基本的進度指示(可能是一個進度條)。Make/makefile進度指示!
請給我建議/意見吧!
# BUILD is initially undefined ifndef BUILD # max equals 256 x's sixteen := x x x x x x x x x x x x x x x x MAX := $(foreach x,$(sixteen),$(sixteen)) # T estimates how many targets we are building by replacing BUILD with a special string T := $(shell $(MAKE) -nrRf $(firstword $(MAKEFILE_LIST)) $(MAKECMDGOALS) \ BUILD="COUNTTHIS" | grep -c "COUNTTHIS") # N is the number of pending targets in base 1, well in fact, base x :-) N := $(wordlist 1,$T,$(MAX)) # auto-decrementing counter that returns the number of pending targets in base 10 counter = $(words $N)$(eval N := $(wordlist 2,$(words $N),$N)) # BUILD is now defined to show the progress, this also avoids redefining T in loop BUILD = @echo $(counter) of $(T) endif # dummy phony targets .PHONY: all clean all: target @echo done clean: @rm -f target *.c # dummy build rules target: a.c b.c c.c d.c e.c f.c g.c @touch [email protected] $(BUILD) %.c: @touch [email protected] $(BUILD)
所有的建議表示歡迎!
可愛的把戲,但我看不到它。 – 2009-01-16 18:27:51
我可以。在Gentoo上這會很好。 `cmake`有一個內置的計數器[文件x/n文件]。但是,如果不用每條命令行都可以獲得進度條而不會溢出屏幕,那就太好了。 – Evi1M4chine 2017-11-06 01:34:41