buildsystem: evaluate the USE_IOPL, USE_DEV_IO, USE_IOPERM macros

Determine which macro has to be set for the target system.
Do this in the buildsystem instead of using preprocessor macros.

Change-Id: Ic41ea025e35feb93f07ce7a94c0d15e6e84f38b9
Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.de>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/58278
Original-Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72247
Reviewed-by: Nico Huber <nico.h@gmx.de>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/Makefile b/Makefile
index 1887846..0b66f37 100644
--- a/Makefile
+++ b/Makefile
@@ -278,6 +278,25 @@
 $(call mark_unsupported,CONFIG_NICINTEL_EEPROM CONFIG_OGP_SPI CONFIG_IT8212)
 endif
 
+ifeq ($(TARGET_OS), $(filter $(TARGET_OS), Linux Darwin NetBSD OpenBSD))
+FEATURE_CFLAGS += -D'USE_IOPL=1'
+else
+FEATURE_CFLAGS += -D'USE_IOPL=0'
+endif
+
+ifeq ($(TARGET_OS), $(filter $(TARGET_OS), FreeBSD FreeBSD-glibc DragonFlyBSD))
+FEATURE_CFLAGS += -D'USE_DEV_IO=1'
+else
+FEATURE_CFLAGS += -D'USE_DEV_IO=0'
+endif
+
+ifeq ($(TARGET_OS), $(filter $(TARGET_OS), Hurd))
+FEATURE_CFLAGS += -D'USE_IOPERM=1'
+else
+FEATURE_CFLAGS += -D'USE_IOPERM=0'
+endif
+
+
 ###############################################################################
 # Flash chip drivers and bus support infrastructure.