Makefile: Revise C compiler check

Clean up the compiler target by outsourcing the test to an own variable.
Change the print output and don't write to the build-details file.

This is in preparation for further changes.

Change-Id: I3d6f08ef030744c772b4ec0dc2c9e614fb90461d
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/58616
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72251
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/Makefile b/Makefile
index 9d8bb78..bf08717 100644
--- a/Makefile
+++ b/Makefile
@@ -160,6 +160,8 @@
 CC = gcc
 endif
 
+CC_WORKING := $(call c_compile_test, Makefile.d/cc_test.c)
+
 # Determine the destination OS, architecture and endian
 # IMPORTANT: The following lines must be placed before TARGET_OS, ARCH or ENDIAN
 # is ever used (of course), but should come after any lines setting CC because
@@ -864,13 +866,10 @@
 # to environment variables and are referenced with $$<varname> later
 
 compiler: featuresavailable
-	@printf "Checking for a C compiler... " | tee -a $(BUILD_DETAILS_FILE)
-	@echo "$$COMPILER_TEST" > .test.c
-	@printf "\nexec: %s\n" "$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .test.c -o .test$(EXEC_SUFFIX)" >>$(BUILD_DETAILS_FILE)
-	@{ { { { { $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .test.c -o .test$(EXEC_SUFFIX) >&2 && \
-		echo "found." || { echo "not found."; \
-		rm -f .test.c .test$(EXEC_SUFFIX); exit 1; }; } 2>>$(BUILD_DETAILS_FILE); echo $? >&3 ; } | tee -a $(BUILD_DETAILS_FILE) >&4; } 3>&1;} | { read rc ; exit ${rc}; } } 4>&1
-	@rm -f .test.c .test$(EXEC_SUFFIX)
+	@echo -n "C compiler found: "
+	@if [ $(CC_WORKING) = yes ]; \
+		then $(CC) --version 2>/dev/null | head -1; \
+		else echo no; echo Aborting.; exit 1; fi
 	@echo Target arch is $(ARCH)
 	@if [ $(ARCH) = unknown ]; then echo Aborting.; exit 1; fi
 	@echo Target OS is $(TARGET_OS)