This allows to use the DOS library trees stored in a user-specified directory.
I have mirrored the needed patches, sources and binaries (the latter are properly licensed to allow that) in the flashrom wiki, so use those URLs instead of the original sources.
Signed-off-by: Stefan Tauner stefan.tauner@student.tuwien.ac.at --- Makefile | 12 +++++++----- README | 20 ++++++++++++-------- 2 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/Makefile b/Makefile index de3cf97..29b5f1e 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,7 @@ CFLAGS ?= -Os -Wall -Wshadow EXPORTDIR ?= . AR ?= ar RANLIB ?= ranlib +DOSLIBS_BASE ?= .. # The following parameter changes the default programmer that will be used if there is no -p/--programmer # argument given when running flashrom. The predefined setting does not enable any default so that every # user has to declare the programmer he wants to use on every run. The rationale for this to be not set @@ -109,11 +110,12 @@ endif
ifeq ($(TARGET_OS), DOS) EXEC_SUFFIX := .exe -CPPFLAGS += -I../libgetopt +CPPFLAGS += -I$(DOSLIBS_BASE)/libgetopt # DJGPP has odd uint*_t definitions which cause lots of format string warnings. CFLAGS += -Wno-format # FIXME Check if we can achieve the same effect with -L../libgetopt -lgetopt -LIBS += ../libgetopt/libgetopt.a +LIBS += -lgetopt +LDFLAGS += -L$(DOSLIBS_BASE)/libgetopt/ # Bus Pirate, Serprog and PonyProg are not supported under DOS (missing serial support). ifeq ($(CONFIG_BUSPIRATE_SPI), yes) UNSUPPORTED_FEATURES += CONFIG_BUSPIRATE_SPI=yes @@ -621,9 +623,9 @@ PCILIBS += -lpciutils -lpci PCILIBS += -l$(shell uname -p) else ifeq ($(TARGET_OS), DOS) -# FIXME There needs to be a better way to do this -CPPFLAGS += -I../libpci/include -PCILIBS += ../libpci/lib/libpci.a +CPPFLAGS += -I$(DOSLIBS_BASE)/libpci/include +LDFLAGS += -L$(DOSLIBS_BASE)/libpci/lib/ +PCILIBS += -lpci else PCILIBS += -lpci ifeq ($(TARGET_OS), OpenBSD) diff --git a/README b/README index 2441089..ba7e295 100644 --- a/README +++ b/README @@ -103,20 +103,24 @@ To cross-compile on Linux for DOS: djcrx-2.04pre_20090725-13ap.i386.rpm The cross toolchain packages for your distribution may have slightly different names (look for packages named *djgpp*). - Download pciutils 3.1.5 and apply http://assembler.cz/flashrom/pciutils.patch - Download and compile http://assembler.cz/flashrom/libgetopt/ + + You will need the following library source trees containing their compiled + static libraries either in the parent directory of the flashrom source or + specify the base folder on compile time with the DOSLIBS_BASE parameter. + The default as described above is equal to calling + 'make djgpp-dos DOSLIBS_BASE=..' + + To get and build said libraries... + Download pciutils 3.1.5 and apply http://flashrom.org/File:Pciutils.patch.gz Compile pciutils, see README.DJGPP for instructions. + Download and compile http://flashrom.org/File:Libgetopt.tar.gz Enter the flashrom directory. - ../libpci should contain pciutils source and binaries. - ../libgetopt should contain getopt.a from libgetopt. Run either (change settings where appropriate) make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip or (above settings hardcoded) make djgpp-dos - You might have to add WARNERROR=no to the make command line. - To run flashrom.exe, download and unpack - http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and make sure - CWSDPMI.EXE is in the current directory. + To run flashrom.exe, download and unpack http://flashrom.org/File:Csdpmi7b.zip + and make sure CWSDPMI.EXE is in the current directory.
To cross-compile on Linux for Windows: