Author: stefanct Date: Thu Sep 12 01:34:57 2013 New Revision: 1734 URL: http://flashrom.org/trac/flashrom/changeset/1734
Log: DOS refinements.
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 Acked-by: Stefan Tauner stefan.tauner@student.tuwien.ac.at
Modified: trunk/Makefile trunk/README
Modified: trunk/Makefile ============================================================================== --- trunk/Makefile Tue Sep 10 12:42:48 2013 (r1733) +++ trunk/Makefile Thu Sep 12 01:34:57 2013 (r1734) @@ -39,6 +39,7 @@ 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 @@ -99,11 +100,12 @@
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 @@ -611,9 +613,9 @@ 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)
Modified: trunk/README ============================================================================== --- trunk/README Tue Sep 10 12:42:48 2013 (r1733) +++ trunk/README Thu Sep 12 01:34:57 2013 (r1734) @@ -105,20 +105,24 @@ 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 http://flashrom.org/File:Csdpmi7b.zip and + unpack CWSDPMI.EXE into the current directory or one in PATH.
To cross-compile on Linux for Windows: