aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile16
1 files changed, 13 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 0356fa59..3bd9179f 100644
--- a/Makefile
+++ b/Makefile
@@ -18,14 +18,24 @@ else
include config.mk
# Modified progress counter based on: https://stackoverflow.com/a/35320895
+# Only run counter if we're actually building (not for phony targets or no-ops)
ifndef NO_PROGRESS
ifndef ECHO
-T := $(shell $(MAKE) ECHO="COUNTTHIS" $(MAKECMDGOALS) --no-print-directory \
- -n | grep -c "COUNTTHIS")
+# Only count if building actual files, not just checking
+ifneq ($(filter build all,$(MAKECMDGOALS)),)
+T := $(shell $(MAKE) ECHO="COUNTTHIS" $(filter-out check-c-compiler check-libs,$(MAKECMDGOALS)) --no-print-directory \
+ -nq 2>/dev/null | grep -c "COUNTTHIS")
+ifeq ($(T),0)
+ECHO = echo
+else
N := x
C = $(words $N)$(eval N := x $N)
ECHO = echo -e "[`expr $C '*' 100 / $T`%]"
endif
+else
+ECHO = echo
+endif
+endif
endif
ifndef ECHO
ECHO = echo
@@ -83,7 +93,7 @@ O=-O3
# Note: older versions of Make have buggy behavior with hash marks inside strings, so this ugly code is necessary:
TOMO_VERSION=$(shell awk 'BEGIN{hashes=sprintf("%c%c",35,35)} $$1==hashes {print $$2; exit}' CHANGES.md)
GIT_VERSION=$(shell git log -1 --pretty=format:"%as_%h" 2>/dev/null || echo "unknown")
-CFLAGS += $(CCONFIG) $(INCLUDE_DIRS) $(EXTRA) $(CWARN) $(G) $(O) $(OSFLAGS) $(LTO) \
+CFLAGS=$(CCONFIG) $(INCLUDE_DIRS) $(EXTRA) $(CWARN) $(G) $(O) $(OSFLAGS) $(LTO) \
-DSUDO='"$(SUDO)"' -DDEFAULT_C_COMPILER='"$(DEFAULT_C_COMPILER)"' \
-DGIT_VERSION='"$(GIT_VERSION)"' -ffunction-sections -fdata-sections
CFLAGS_PLACEHOLDER="$$(printf '\033[2m<flags...>\033[m\n')"