[flashrom] [PATCH] DOS refinements.

Stefan Tauner stefan.tauner at student.tuwien.ac.at
Fri Sep 6 11:24:40 CEST 2013

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 at 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
 AR      ?= ar
 RANLIB  ?= ranlib
 # 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)
@@ -621,9 +623,9 @@ PCILIBS += -lpciutils -lpci
 PCILIBS += -l$(shell uname -p)
 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
 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:
  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:
Kind regards, Stefan Tauner

More information about the flashrom mailing list