ni845x_spi: handle PROGRAMFILES(X86) env var properly

The PROGRAMFILES(X86) envvar contains brackets which
could not be interpreted by the Makefile's interpreter.
A sed based tweak have been added to extract the variable
value from the env command output. The prefixed include
and linker path with this (now correctly extracted) prefix
only added to the compilation flags if it differ from the
PROGRAMFILES variable.

Change-Id: I397619a5038567d649a417ce6b9d8ac9e1c8c67b
Signed-off-by: Miklós Márton <martonmiklosqdev@gmail.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/56636
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71417
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/Makefile b/Makefile
index 6203d35..8aac967 100644
--- a/Makefile
+++ b/Makefile
@@ -698,9 +698,18 @@
 # if the user did not specified the NI-845x headers/lib path
 # do a guess for both 32 and 64 bit Windows versions
 NI845X_LIBS += -L'${PROGRAMFILES}\National Instruments\NI-845x\MS Visual C'
-NI845X_LIBS += -L'${PROGRAMFILES(x86)}\National Instruments\NI-845x\MS Visual C'
 NI845X_INCLUDES += -I'${PROGRAMFILES}\National Instruments\NI-845x\MS Visual C'
-NI845X_INCLUDES += -I'${PROGRAMFILES(x86)}\National Instruments\NI-845x\MS Visual C'
+
+# hack to access env variable containing brackets...
+PROGRAMFILES_X86DIR = $(shell env | sed -n "s/^PROGRAMFILES(X86)=//p")
+
+ifneq ($(PROGRAMFILES_X86DIR),)
+ifneq ($(PROGRAMFILES_X86DIR), ${PROGRAMFILES})
+NI845X_LIBS += -L'$(PROGRAMFILES_X86DIR)\National Instruments\NI-845x\MS Visual C'
+NI845X_INCLUDES += -I'$(PROGRAMFILES_X86DIR)\National Instruments\NI-845x\MS Visual C'
+endif
+endif
+
 else
 NI845X_LIBS += -L'$(CONFIG_NI845X_LIBRARY_PATH)'
 NI845X_INCLUDES += -I'$(CONFIG_NI845X_LIBRARY_PATH)'