From 60d9bd267e38c6241e05f0253845e1d11d04f3b3 Mon Sep 17 00:00:00 2001 From: Carl-Daniel Hailfinger Date: Thu, 9 Aug 2012 23:34:41 +0000 Subject: 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 Acked-by: Carl-Daniel Hailfinger --- README | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'README') diff --git a/README b/README index f88b3b5..8e812be 100644 --- a/README +++ b/README @@ -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 ------------ -- cgit v1.1