We already have NEED_PCI in the Makefile to link in PCI support
Add NEED_SERIAL and NEED_NET to decouple individual drivers from
compilation and linking decisions. Move libgetopt from a DOS+PCI
dependency to a DOS dependency to fix linking on DOS if no driver
requiring PCI is enabled.
Corresponding to flashrom svn r1044.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
diff --git a/Makefile b/Makefile
index 2e774df..6ea7c73 100644
--- a/Makefile
+++ b/Makefile
@@ -50,6 +50,8 @@
endif
ifeq ($(OS_ARCH), DOS)
CPPFLAGS += -I../libgetopt -I../libpci/include
+# FIXME Check if we can achieve the same effect with -L../libgetopt -lgetopt
+LIBS += ../libgetopt/libgetopt.a
# Bus Pirate and Serprog are not supported under DOS.
CONFIG_BUSPIRATE_SPI = no
CONFIG_SERPROG = no
@@ -136,9 +138,8 @@
ifeq ($(CONFIG_SERPROG), yes)
FEATURE_CFLAGS += -D'CONFIG_SERPROG=1'
PROGRAMMER_OBJS += serprog.o
-ifeq ($(OS_ARCH), SunOS)
-LIBS += -lsocket
-endif
+NEED_SERIAL := yes
+NEED_NET := yes
endif
ifeq ($(CONFIG_BITBANG_SPI), yes)
@@ -204,6 +205,7 @@
ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_BUSPIRATE_SPI=1'
PROGRAMMER_OBJS += buspirate_spi.o
+NEED_SERIAL := yes
endif
ifeq ($(CONFIG_DEDIPROG), yes)
@@ -212,20 +214,18 @@
PROGRAMMER_OBJS += dediprog.o
endif
-# Ugly, but there's no elif/elseif.
-ifeq ($(CONFIG_SERPROG), yes)
+ifeq ($(NEED_SERIAL), yes)
LIB_OBJS += serial.o
-else
-ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
-LIB_OBJS += serial.o
+endif
+
+ifeq ($(NEED_NET), yes)
+ifeq ($(OS_ARCH), SunOS)
+LIBS += -lsocket
endif
endif
ifeq ($(NEED_PCI), yes)
CHECK_LIBPCI = yes
-endif
-
-ifeq ($(NEED_PCI), yes)
FEATURE_CFLAGS += -D'NEED_PCI=1'
PROGRAMMER_OBJS += pcidev.o physmap.o hwaccess.o
ifeq ($(OS_ARCH), NetBSD)
@@ -236,7 +236,7 @@
else
ifeq ($(OS_ARCH), DOS)
# FIXME There needs to be a better way to do this
-LIBS += ../libpci/lib/libpci.a ../libgetopt/libgetopt.a
+LIBS += ../libpci/lib/libpci.a
else
LIBS += -lpci
endif