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>
diff --git a/README b/README
index f88b3b5..8e812be 100644
--- a/README
+++ b/README
@@ -93,14 +93,18 @@
 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 @@
  ../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 @@
  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
 ------------