aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Heijligen <thomas.heijligen@secunet.com>2021-12-23 16:55:16 +0100
committerNico Huber <nico.h@gmx.de>2022-01-20 16:51:22 +0000
commit980cf7d31f7b18a3da38a8fd954998b9a74dde33 (patch)
treecae6e54f68f7a40b9e8433484149be5e684a3a9b
parent64b9e3f59e3d859e287884c294ad4180e5a5ef56 (diff)
downloadflashrom-980cf7d31f7b18a3da38a8fd954998b9a74dde33.tar.gz
flashrom-980cf7d31f7b18a3da38a8fd954998b9a74dde33.tar.bz2
flashrom-980cf7d31f7b18a3da38a8fd954998b9a74dde33.zip
Makefile: replace RAW_ACCESS with RAW_MEM_ACCESS X86_MSR X86_PORT_IO
Let programmer only depend on the kind of hardware access method they really need. Libpci no longer depends on all hardware access types since each programmer handles this individually. Change-Id: I5bdafaa3c5023ad6c4a695493eeddf11bc148085 Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/60325 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r--Makefile38
-rw-r--r--meson.build1
2 files changed, 19 insertions, 20 deletions
diff --git a/Makefile b/Makefile
index 6e2e33ff..3325aa6c 100644
--- a/Makefile
+++ b/Makefile
@@ -612,7 +612,6 @@ endif
ifeq ($(CONFIG_RAYER_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_RAYER_SPI=1'
PROGRAMMER_OBJS += rayer_spi.o
-NEED_RAW_ACCESS += CONFIG_RAYER_SPI
endif
ifeq ($(CONFIG_RAIDEN_DEBUG_SPI), yes)
@@ -814,10 +813,6 @@ endif
NEED_LIBPCI := $(call filter_deps,$(DEPENDS_ON_LIBPCI))
ifneq ($(NEED_LIBPCI), )
CHECK_LIBPCI = yes
-# This is a dirty hack, but it saves us from checking all PCI drivers and all platforms manually.
-# libpci may need raw memory, MSR or PCI port I/O on some platforms.
-# Individual drivers might have the same needs as well.
-NEED_RAW_ACCESS += $(NEED_LIBPCI)
FEATURE_CFLAGS += -D'NEED_PCI=1'
FEATURE_CFLAGS += $(call debug_shell,grep -q "OLD_PCI_GET_DEV := yes" .libdeps && printf "%s" "-D'OLD_PCI_GET_DEV=1'")
@@ -830,27 +825,32 @@ PCILIBS += -lpci
endif
endif
-ifneq ($(NEED_RAW_ACCESS), )
-# Raw memory, MSR or PCI port I/O access.
-FEATURE_CFLAGS += -D'NEED_RAW_ACCESS=1'
-PROGRAMMER_OBJS += hwaccess_physmap.o
+USE_X86_MSR := $(if $(call filter_deps,$(DEPENDS_ON_X86_MSR)),yes,no)
+ifeq ($(USE_X86_MSR), yes)
+PROGRAMMER_OBJS += hwaccess_x86_msr.o
+endif
-ifeq ($(ARCH), x86)
+USE_X86_PORT_IO := $(if $(call filter_deps,$(DEPENDS_ON_X86_PORT_IO)),yes,no)
+ifeq ($(USE_X86_PORT_IO), yes)
FEATURE_CFLAGS += -D'__FLASHROM_HAVE_OUTB__=1'
-PROGRAMMER_OBJS += hwaccess_x86_io.o hwaccess_x86_msr.o
-
-ifeq ($(TARGET_OS), NetBSD)
-PCILIBS += -l$(shell uname -p)
+PROGRAMMER_OBJS += hwaccess_x86_io.o
endif
-ifeq ($(TARGET_OS), OpenBSD)
-PCILIBS += -l$(shell uname -m)
+
+USE_RAW_MEM_ACCESS := $(if $(call filter_deps,$(DEPENDS_ON_RAW_MEM_ACCESS)),yes,no)
+ifeq ($(USE_RAW_MEM_ACCESS), yes)
+PROGRAMMER_OBJS += hwaccess_physmap.o
endif
+
+ifeq (Darwin yes, $(TARGET_OS) $(filter $(USE_X86_MSR) $(USE_X86_PORT_IO) $(USE_RAW_MEM_ACCESS), yes))
+override LDFLAGS += -framework IOKit -framework DirectHW
endif
-ifeq ($(TARGET_OS), Darwin)
-# DirectHW framework can be found in the DirectHW library.
-PCILIBS += -framework IOKit -framework DirectHW
+ifeq (NetBSD yes, $(TARGET_OS) $(filter $(USE_X86_MSR) $(USE_X86_PORT_IO), yes))
+override LDFLAGS += -l$(shell uname -p)
endif
+
+ifeq (OpenBSD yes, $(TARGET_OS) $(filter $(USE_X86_MSR) $(USE_X86_PORT_IO), yes))
+override LDFLAGS += -l$(shell uname -m)
endif
USE_LIBUSB1 := $(if $(call filter_deps,$(DEPENDS_ON_LIBUSB1)),yes,no)
diff --git a/meson.build b/meson.build
index 403a33ee..4c33bf5b 100644
--- a/meson.build
+++ b/meson.build
@@ -349,7 +349,6 @@ if need_raw_access
srcs += 'hwaccess_x86_io.c'
srcs += 'hwaccess_x86_msr.c'
srcs += 'hwaccess_physmap.c'
- cargs += '-DNEED_RAW_ACCESS=1'
cargs += '-D__FLASHROM_HAVE_OUTB__=1'
endif