1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-07-01 14:11:15 +02:00

Portability fixes and cleanups

Move Mac OS X IOKit/DirectHW availability checks in the Makefile from
compiler check to pciutils check.

Print the compiler error messages for feature detection.

Add DOS libpci in the Makefile includes only if a PCI-based programmer
was requested.

Restrict mmap usage in ich_descriptors_tool to Unix style systems.

Build ich_descriptors_tool with the correct .exe extension on
DOS/Windows.

Build ich_descriptors_tool by default on x86. (Patch by Stefan Tauner)

Print the Windows version instead of "unknown machine" on Windows.

Don't #define our own __DARWIN__, use the standard OS X detection
method.

Update the README.

Add more generated files to svn:ignore

Corresponding to flashrom svn r1567.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
This commit is contained in:
Carl-Daniel Hailfinger
2012-08-09 23:34:41 +00:00
parent b6304c1a1a
commit 60d9bd267e
9 changed files with 131 additions and 55 deletions

33
README
View File

@ -93,14 +93,18 @@ To compile on OpenBSD, use:
To compile and run on Darwin/Mac OS X:
Install DirectHW from coresystems GmbH.
DirectHW is available at http://www.coresystems.de/en/directhw .
DirectHW is available at http://www.coreboot.org/DirectHW .
To cross-compile on Linux for DOS:
Get RPMs of the cross compiler from the DJGPP site and install them:
Get packages of the DJGPP cross compiler and install them:
djgpp-filesystem djgpp-gcc djgpp-cpp djgpp-runtime djgpp-binutils
As an alternative, the DJGPP web site offers packages for download as well:
djcross-binutils-2.19.1-10ap.i386.rpm
djcross-gcc-4.3.2-8ap.i686.rpm
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/
Compile pciutils, see README.DJGPP for instructions.
@ -108,7 +112,7 @@ To cross-compile on Linux for DOS:
../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 OS_ARCH=DOS
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.
@ -116,17 +120,22 @@ To cross-compile on Linux for DOS:
http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi7b.zip and make sure
CWSDPMI.EXE is in the current directory.
To cross-compile on Linux for Windows:
Get packages of the MinGW cross compiler and install them:
mingw32-filesystem mingw32-cross-cpp mingw32-cross-binutils mingw32-cross-gcc
mingw32-runtime mingw32-headers
The cross toolchain packages for your distribution may have slightly different
names (look for packages named *mingw*).
PCI-based programmers (internal etc.) are not supported on Windows.
Run (change CC= and STRIP= settings where appropriate)
make CC=i686-w64-mingw32-gcc STRIP=i686-w64-mingw32-strip
Processor architecture dependent features:
On non-x86 architectures you have to disable a few programmers because they
use port-based I/O which is not directly available on non-x86. Please add
CONFIG_RAYER_SPI=no CONFIG_NIC3COM=no CONFIG_ATAHPT=no CONFIG_NICREALTEK=no \
CONFIG_NICNATSEMI=no
as parameters to the "make" invocation.
Besides that, the internal programmer is only supported on x86 and MIPS. On
other architectures, please add
CONFIG_INTERNAL=no
as parameter to the "make" invocation.
On non-x86 architectures a few programmers don't work (yet) because they
use port-based I/O which is not directly available on non-x86. Those
programmers will be disabled automatically if you run "make".
Installation
------------