Add colorized output of configuration result

This commit is contained in:
Christophe de Dinechin 2018-06-01 15:43:36 +02:00
parent bd7e23a307
commit 10c7dcd30d
3 changed files with 45 additions and 7 deletions

View File

@ -170,9 +170,16 @@ MIQ_CFGTEST= "$<" -o "$<".exe > "$<".err 2>&1 && \
[ -x "$<".exe ] && \
"$<".exe > "$<".out \
$(MIQ_CFGSET)
MIQ_CFG_PRINT= if [ $$MIQ_CFGRC == 1 ]; then \
echo "$(POS_COLOR)OK$(DEF_COLOR)"; \
else \
echo "$(ERR_COLOR)NO$(DEF_COLOR)"; \
fi;
MIQ_CFGUNDEF0= $$MIQ_CFGRC \
| sed -e 's|^\#define \(.*\) 0$$|/* \#undef \1 */|g' > "$@"; \
[ -f "$<".out ] && cat >> "$@" "$<".out; true
[ -f "$<".out ] && cat >> "$@" "$<".out; \
$(MIQ_CFG_PRINT) \
true
MIQ_CFGDEF= echo '\#define'
@ -193,3 +200,31 @@ MIQ_PK_CFG= $(MIQ_CFGPK_CMD) $(MIQ_CFGDEF) HAVE_$(MIQ_CFGUPPER) $(MIQ_CFGUND
MIQ_MK_CFG= sed -e 's|^\#define \([^ ]*\) \(.*\)$$|\1=\2|g' \
-e 's|.*undef.*||g' < "$<" > "$@"
#------------------------------------------------------------------------------
# pkg-config checks
#------------------------------------------------------------------------------
MIQ_PKGCONFIG_CFLAGS_CHECK= \
pkg-config --cflags $* > $@ $(MIQ_PKGCONFIG_ERROR_CHECK)
MIQ_PKGCONFIG_LIBS_CHECK= \
pkg-config --libs $* > $@ $(MIQ_PKGCONFIG_ERROR_CHECK)
MIQ_PKGCONFIG_ERROR_CHECK= \
|| (echo "Error"": Required package $* not found" && false)
MIQ_PKGCONFIG_BUILDMK= \
(echo CFLAGS_PKGCONFIG=`$(CAT) $(MIQ_PKGCFLAGS)`; \
echo LDFLAGS_PKGCONFIG=`$(CAT) $(MIQ_PKGLDFLAGS) $(MIQ_PKGLIBS)` ) > $@
MIQ_PKGCONFIG_CFLAGS_OPTIONAL= \
(pkg-config --cflags $* --silence-errors > $@ \
&& MIQ_CFGRC=1 || MIQ_CFGRC=0; \
true)
MIQ_PKGCONFIG_LIBS_OPTIONAL= \
(pkg-config --libs $* --silence-errors > $@ \
&& MIQ_CFGRC=1 || MIQ_CFGRC=0; \
true)

View File

@ -154,6 +154,7 @@ INFO_POS_COL= \\033[32m
INFO_RST_COL= \\033[39;49;27m
INFO_CLR_EOL= \\033[K
INFO= printf "%-20s %s %s %s %s %s %s %s\n"
INFO_NONL= printf "%-20s %-30s %s %s %s %s %s %s"
# Color for build steps
STEP_COLOR:= $(shell printf "$(INFO_STEP_COL)")

View File

@ -353,7 +353,7 @@ PRINT_CLEAN= $(PRINT_COMMAND) $(INFO) "[CLEAN] " $@ $(MIQ_PRETTYDIR) $(COLORI
PRINT_COPY= $(PRINT_COMMAND) $(INFO) "[COPY]" $< '=>' $@ ;
PRINT_DEPEND= $(PRINT_COMMAND) $(INFO) "[DEPEND] " $< ;
PRINT_TEST= $(PRINT_COMMAND) $(INFO) "[TEST]" $(@:.test=) ;
PRINT_CONFIG= $(PRINT_COMMAND) $(INFO) "[CONFIG]" "$(MIQ_ORIGTARGET)" ;
PRINT_CONFIG= $(PRINT_COMMAND) $(INFO_NONL) "[CONFIG]" "$(MIQ_ORIGTARGET)" ;
PRINT_PKGCONFIG=$(PRINT_COMMAND) $(INFO) "[PKGCONFIG]" "$*" ;
PRINT_LIBCONFIG=$(PRINT_COMMAND) $(INFO) "[LIBCONFIG]" "lib$*" ;
PRINT_REFORMAT= $(PRINT_COMMAND) $(INFO) "[REFORMAT]" "$*" $(COLORIZE);
@ -455,7 +455,7 @@ MIQ_PKGDEPS= $(MIQ_MAKEDEPS) $(MIQ_OBJDIR).mkdir
# Build the package config from cflags, ldflags and libs config
$(MIQ_OBJDIR)pkg-config.mk: $(MIQ_PKGCFLAGS) $(MIQ_PKGLDFLAGS) $(MIQ_PKGLIBS)
$(PRINT_COMMAND) (echo CFLAGS_PKGCONFIG=`$(CAT) $(MIQ_PKGCFLAGS)`; echo LDFLAGS_PKGCONFIG=`$(CAT) $(MIQ_PKGLDFLAGS) $(MIQ_PKGLIBS)`) > $@
$(PRINT_COMMAND) $(MIQ_PKGCONFIG_BUILDMK)
# Include rules for makefiles
-include $(PKGCONFIGS:%=$(MIQ_OBJDIR)pkg-config.mk)
@ -463,15 +463,17 @@ $(MIQ_OBJDIR)pkg-config.mk: $(MIQ_PKGCFLAGS) $(MIQ_PKGLDFLAGS) $(MIQ_PKGLIBS)
# Optional packages end with ?, e.g. PKGCONFIG=openssl?
$(MIQ_OBJDIR)%?.pkg-config.cflags: $(MIQ_PKGDEPS)
$(PRINT_PKGCONFIG) (pkg-config --cflags $* --silence-errors || true) > $@
$(PRINT_PKGCONFIG) $(MIQ_PKGCONFIG_CFLAGS_OPTIONAL)
$(MIQ_OBJDIR)%?.pkg-config.ldflags: $(MIQ_PKGDEPS)
$(PRINT_COMMAND) (pkg-config --libs $* --silence-errors || true) > $@
$(PRINT_COMMAND) $(MIQ_PKGCONFIG_LIBS_OPTIONAL)
# Non-optional packages
$(MIQ_OBJDIR)%.pkg-config.cflags: $(MIQ_PKGDEPS)
$(PRINT_PKGCONFIG) pkg-config --cflags $* > $@ || (echo "Error"": Required package $* not found" && false)
$(PRINT_PKGCONFIG) $(MIQ_PKGCONFIG_CFLAGS_CHECK)
$(MIQ_OBJDIR)%.pkg-config.ldflags: $(MIQ_PKGDEPS)
$(PRINT_COMMAND) pkg-config --libs $* > $@ || (echo "Error"": Required package $* not found" && false)
$(PRINT_COMMAND) $(MIQ_PKGCONFIG_LIBS_CHECK)
$(MIQ_OBJDIR)lib%.cfg.ldflags: $(MIQ_OBJDIR)CFG_HAVE_lib%.h $(MIQ_PKGDEPS)
$(PRINT_COMMAND) (grep -q 'define ' $< && echo $(LINK_CFG_OPT)$* || true) > $@