[flashrom] Added autotools support which fixes annoying compilation issues on non-x86 platforms

Peter Lemenkov peter at fedoraproject.org
Fri Sep 24 10:59:29 UTC 2010


commit c17bb0a5e3c8732c79672c99dd1bc562f74db2ee
Author: Peter Lemenkov <lemenkov at gmail.com>
Date:   Fri Sep 24 14:58:44 2010 +0400

    Added autotools support which fixes annoying compilation issues on
    non-x86 platforms
    
    Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>

 ...01-Define-dmidecode-path-at-a-build-stage.patch |   60 -
 ... => flashrom-0001-Sync-with-svn-ver.-1180.patch |   90 ++-
 ...Initial-commit-of-autotools-related-files.patch | 1216 ++++++++++++++++++++
 flashrom-svn_ver.diff                              |   11 -
 flashrom.spec                                      |   32 +-
 5 files changed, 1318 insertions(+), 91 deletions(-)
---
diff --git a/flashrom-r1002-r1180.diff b/flashrom-0001-Sync-with-svn-ver.-1180.patch
similarity index 99%
rename from flashrom-r1002-r1180.diff
rename to flashrom-0001-Sync-with-svn-ver.-1180.patch
index b74e86a..23c393c 100644
--- a/flashrom-r1002-r1180.diff
+++ b/flashrom-0001-Sync-with-svn-ver.-1180.patch
@@ -1,3 +1,79 @@
+From 2b6eddb61699265ce89bc93c9523dd5658513019 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 24 Sep 2010 14:42:32 +0400
+Subject: [PATCH 1/2] Sync with svn ver. 1180
+
+---
+ 82802ab.c               |    2 -
+ Makefile                |  230 +++--
+ README                  |    9 +
+ atahpt.c                |    4 +-
+ bitbang_spi.c           |  158 ++--
+ board_enable.c          | 1248 ++++++++++++++++-------
+ buspirate_spi.c         |  129 +--
+ cbtable.c               |    3 +
+ chipdrivers.h           |   23 +-
+ chipset_enable.c        |  590 ++++-------
+ cli_classic.c           |   90 +-
+ dediprog.c              |   40 +-
+ dmi.c                   |   55 +-
+ drkaiser.c              |   24 +-
+ dummyflasher.c          |   51 +-
+ flash.h                 |  472 +--------
+ flashchips.c            | 2698 ++++++++++++++++++++++++++++++++++++-----------
+ flashchips.h            |  728 +++++++------
+ flashrom.8              |  255 ++++--
+ flashrom.c              |  479 ++++++---
+ ft2232_spi.c            |  191 ++--
+ gfxnvidia.c             |   19 +-
+ hwaccess.c              |  105 ++-
+ hwaccess.h              |  163 +++-
+ ichspi.c                |  346 +++++--
+ internal.c              |   81 ++-
+ it87spi.c               |  226 +++--
+ jedec.c                 |   20 +-
+ layout.c                |   40 +-
+ m29f400bt.c             |   53 -
+ mcp6x_spi.c             |  176 +++
+ nic3com.c               |   20 +-
+ nicintel_spi.c          |  179 ++++
+ nicnatsemi.c            |   95 ++
+ nicrealtek.c            |  115 ++
+ pcidev.c                |   12 +-
+ physmap.c               |   40 +-
+ pm49fl00x.c             |    2 +-
+ print.c                 |  638 +++++++-----
+ print_wiki.c            |  480 ++-------
+ processor_enable.c      |   46 +
+ programmer.c            |    1 -
+ programmer.h            |  602 +++++++++++
+ rayer_spi.c             |  123 +++
+ satasii.c               |   35 +-
+ sb600spi.c              |  223 ++++-
+ serial.c                |   11 +-
+ serprog.c               |  100 ++-
+ sharplhf00l04.c         |    1 -
+ spi.c                   |  134 ++-
+ spi.h                   |   14 +-
+ spi25.c                 |  626 +++++++++--
+ sst28sf040.c            |    4 +-
+ sst49lfxxxc.c           |   28 +-
+ sst_fwhub.c             |    6 +-
+ stm50flw0x0x.c          |    4 +-
+ udelay.c                |   67 +-
+ util/z60_flashrom.rules |   55 +
+ w29ee011.c              |    1 -
+ wbsio_spi.c             |   28 +-
+ 60 files changed, 8413 insertions(+), 3985 deletions(-)
+ create mode 100644 mcp6x_spi.c
+ create mode 100644 nicintel_spi.c
+ create mode 100644 nicnatsemi.c
+ create mode 100644 nicrealtek.c
+ create mode 100644 processor_enable.c
+ create mode 100644 programmer.h
+ create mode 100644 rayer_spi.c
+ create mode 100644 util/z60_flashrom.rules
+
 diff --git a/82802ab.c b/82802ab.c
 index c9d1a75..3935a7e 100644
 --- a/82802ab.c
@@ -12,7 +88,7 @@ index c9d1a75..3935a7e 100644
  #include "chipdrivers.h"
  
 diff --git a/Makefile b/Makefile
-index 6a9beb5..e83fc0b 100644
+index 51ca084..e83fc0b 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -48,11 +48,37 @@ ifeq ($(OS_ARCH), FreeBSD)
@@ -56,7 +132,7 @@ index 6a9beb5..e83fc0b 100644
  endif
  
  CHIP_OBJS = jedec.o stm50flw0x0x.o w39v040c.o w39v080fa.o w29ee011.o \
-@@ -65,7 +91,7 @@ CLI_OBJS = flashrom.o cli_classic.o cli_output.o print.o
+@@ -65,13 +91,13 @@ CLI_OBJS = flashrom.o cli_classic.o cli_output.o print.o
  
  PROGRAMMER_OBJS = udelay.o programmer.o
  
@@ -65,6 +141,13 @@ index 6a9beb5..e83fc0b 100644
  
  # Set the flashrom version string from the highest revision number
  # of the checked out flashrom files.
+ # Note to packagers: Any tree exported with "make export" or "make tarball"
+ # will not require subversion. The downloadable snapshots are already exported.
+-SVNVERSION := 1001
++SVNVERSION := $(shell LC_ALL=C svnversion -cn . 2>/dev/null | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/" | grep "[0-9]" || LC_ALL=C svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || LC_ALL=C git svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || echo unknown)
+ 
+ RELEASE := 0.9.2
+ VERSION := $(RELEASE)-r$(SVNVERSION)
 @@ -85,14 +111,29 @@ CONFIG_INTERNAL ?= yes
  # Always enable serprog for now. Needs to be disabled on Windows.
  CONFIG_SERPROG ?= yes
@@ -19298,3 +19381,6 @@ index ca39322..acf9cb2 100644
 -	return spi_chip_write_1(flash, buf);
 -}
 +#endif
+-- 
+1.7.2.3
+
diff --git a/flashrom-0002-Initial-commit-of-autotools-related-files.patch b/flashrom-0002-Initial-commit-of-autotools-related-files.patch
new file mode 100644
index 0000000..6373acc
--- /dev/null
+++ b/flashrom-0002-Initial-commit-of-autotools-related-files.patch
@@ -0,0 +1,1216 @@
+From 457ef87be837eb1dab7e62fb22f2b3fc29e2619c Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 17 Sep 2010 22:32:07 +0400
+Subject: [PATCH 2/2] Initial commit of autotools-related files
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ Makefile     |  451 ----------------------------------------------------------
+ Makefile.am  |  166 +++++++++++++++++++++
+ configure.ac |  197 +++++++++++++++++++++++++
+ dmi.c        |    2 +-
+ flash.h      |    1 -
+ flashrom.c   |   12 +-
+ hwaccess.h   |    6 +-
+ ichspi.c     |    4 -
+ internal.c   |    3 +-
+ it87spi.c    |    4 -
+ mcp6x_spi.c  |    4 -
+ nic3com.c    |    6 -
+ nicnatsemi.c |    6 -
+ nicrealtek.c |    6 -
+ print_wiki.c |    3 +-
+ programmer.h |    6 +-
+ rayer_spi.c  |    5 -
+ sb600spi.c   |    4 -
+ wbsio_spi.c  |    4 -
+ 19 files changed, 383 insertions(+), 507 deletions(-)
+ delete mode 100644 Makefile
+ create mode 100644 Makefile.am
+ create mode 100644 configure.ac
+
+diff --git a/Makefile b/Makefile
+deleted file mode 100644
+index e83fc0b..0000000
+--- a/Makefile
++++ /dev/null
+@@ -1,451 +0,0 @@
+-#
+-# This file is part of the flashrom project.
+-#
+-# Copyright (C) 2005 coresystems GmbH <stepan at coresystems.de>
+-# Copyright (C) 2009,2010 Carl-Daniel Hailfinger
+-#
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; version 2 of the License.
+-#
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+-#
+-
+-PROGRAM = flashrom
+-
+-CC      ?= gcc
+-STRIP   ?= strip
+-INSTALL = install
+-DIFF    = diff
+-PREFIX  ?= /usr/local
+-MANDIR  ?= $(PREFIX)/share/man
+-CFLAGS  ?= -Os -Wall -Wshadow
+-EXPORTDIR ?= .
+-
+-WARNERROR ?= yes
+-
+-ifeq ($(WARNERROR), yes)
+-CFLAGS += -Werror
+-endif
+-
+-# FIXME We have to differentiate between host and target arch.
+-OS_ARCH	?= $(shell uname)
+-ifneq ($(OS_ARCH), SunOS)
+-STRIP_ARGS = -s
+-endif
+-ifeq ($(OS_ARCH), Darwin)
+-CPPFLAGS += -I/opt/local/include -I/usr/local/include
+-LDFLAGS += -framework IOKit -framework DirectIO -L/opt/local/lib -L/usr/local/lib
+-endif
+-ifeq ($(OS_ARCH), FreeBSD)
+-CPPFLAGS += -I/usr/local/include
+-LDFLAGS += -L/usr/local/lib
+-endif
+-ifeq ($(OS_ARCH), OpenBSD)
+-CPPFLAGS += -I/usr/local/include
+-LDFLAGS += -L/usr/local/lib
+-endif
+-ifeq ($(OS_ARCH), DOS)
+-EXEC_SUFFIX := .exe
+-CPPFLAGS += -I../libgetopt -I../libpci/include
+-# FIXME Check if we can achieve the same effect with -L../libgetopt -lgetopt
+-LIBS += ../libgetopt/libgetopt.a
+-# Bus Pirate and Serprog are not supported under DOS (missing serial support).
+-ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
+-UNSUPPORTED_FEATURES += CONFIG_BUSPIRATE_SPI=yes
+-else
+-override CONFIG_BUSPIRATE_SPI = no
+-endif
+-ifeq ($(CONFIG_SERPROG), yes)
+-UNSUPPORTED_FEATURES += CONFIG_SERPROG=yes
+-else
+-override CONFIG_SERPROG = no
+-endif
+-# Dediprog and FT2232 are not supported under DOS (missing USB support).
+-ifeq ($(CONFIG_DEDIPROG), yes)
+-UNSUPPORTED_FEATURES += CONFIG_DEDIPROG=yes
+-else
+-override CONFIG_DEDIPROG = no
+-endif
+-ifeq ($(CONFIG_FT2232_SPI), yes)
+-UNSUPPORTED_FEATURES += CONFIG_FT2232_SPI=yes
+-else
+-override CONFIG_FT2232_SPI = no
+-endif
+-endif
+-
+-CHIP_OBJS = jedec.o stm50flw0x0x.o w39v040c.o w39v080fa.o w29ee011.o \
+-	sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \
+-	sst49lfxxxc.o sst_fwhub.o flashchips.o spi.o spi25.o
+-
+-LIB_OBJS = layout.o
+-
+-CLI_OBJS = flashrom.o cli_classic.o cli_output.o print.o
+-
+-PROGRAMMER_OBJS = udelay.o programmer.o
+-
+-all: pciutils features $(PROGRAM)$(EXEC_SUFFIX)
+-
+-# Set the flashrom version string from the highest revision number
+-# of the checked out flashrom files.
+-# Note to packagers: Any tree exported with "make export" or "make tarball"
+-# will not require subversion. The downloadable snapshots are already exported.
+-SVNVERSION := $(shell LC_ALL=C svnversion -cn . 2>/dev/null | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/" | grep "[0-9]" || LC_ALL=C svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || LC_ALL=C git svn info . 2>/dev/null | awk '/^Revision:/ {print $$2 }' | grep "[0-9]" || echo unknown)
+-
+-RELEASE := 0.9.2
+-VERSION := $(RELEASE)-r$(SVNVERSION)
+-RELEASENAME ?= $(VERSION)
+-
+-SVNDEF := -D'FLASHROM_VERSION="$(VERSION)"'
+-
+-# Always enable internal/onboard support for now.
+-CONFIG_INTERNAL ?= yes
+-
+-# Always enable serprog for now. Needs to be disabled on Windows.
+-CONFIG_SERPROG ?= yes
+-
+-# RayeR SPIPGM hardware support
+-CONFIG_RAYER_SPI ?= yes
+-
+-# Bitbanging SPI infrastructure, default off unless needed.
+-ifeq ($(CONFIG_RAYER_SPI), yes)
+-override CONFIG_BITBANG_SPI = yes
+-else
+-ifeq ($(CONFIG_INTERNAL), yes)
+-override CONFIG_BITBANG_SPI = yes
+-else
+-ifeq ($(CONFIG_NICINTEL_SPI), yes)
+-override CONFIG_BITBANG_SPI = yes
+-else
+-CONFIG_BITBANG_SPI ?= no
+-endif
+-endif
+-endif
+-
+-# Always enable 3Com NICs for now.
+-CONFIG_NIC3COM ?= yes
+-
+-# Enable NVIDIA graphics cards. Note: write and erase do not work properly.
+-CONFIG_GFXNVIDIA ?= yes
+-
+-# Always enable SiI SATA controllers for now.
+-CONFIG_SATASII ?= yes
+-
+-# Highpoint (HPT) ATA/RAID controller support.
+-# IMPORTANT: This code is not yet working!
+-CONFIG_ATAHPT ?= no
+-
+-# Always enable FT2232 SPI dongles for now.
+-CONFIG_FT2232_SPI ?= yes
+-
+-# Always enable dummy tracing for now.
+-CONFIG_DUMMY ?= yes
+-
+-# Always enable Dr. Kaiser for now.
+-CONFIG_DRKAISER ?= yes
+-
+-# Always enable Realtek NICs for now.
+-CONFIG_NICREALTEK ?= yes
+-
+-# Disable National Semiconductor NICs until support is complete and tested.
+-CONFIG_NICNATSEMI ?= no
+-
+-# Always enable SPI on Intel NICs for now.
+-CONFIG_NICINTEL_SPI ?= yes
+-
+-# Always enable Bus Pirate SPI for now.
+-CONFIG_BUSPIRATE_SPI ?= yes
+-
+-# Disable Dediprog SF100 until support is complete and tested.
+-CONFIG_DEDIPROG ?= no
+-
+-# Disable wiki printing by default. It is only useful if you have wiki access.
+-CONFIG_PRINT_WIKI ?= no
+-
+-ifeq ($(CONFIG_INTERNAL), yes)
+-FEATURE_CFLAGS += -D'CONFIG_INTERNAL=1'
+-PROGRAMMER_OBJS += processor_enable.o chipset_enable.o board_enable.o cbtable.o dmi.o internal.o
+-# FIXME: The PROGRAMMER_OBJS below should only be included on x86.
+-PROGRAMMER_OBJS += it87spi.o ichspi.o sb600spi.o wbsio_spi.o mcp6x_spi.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_SERPROG), yes)
+-FEATURE_CFLAGS += -D'CONFIG_SERPROG=1'
+-PROGRAMMER_OBJS += serprog.o
+-NEED_SERIAL := yes
+-NEED_NET := yes
+-endif
+-
+-ifeq ($(CONFIG_RAYER_SPI), yes)
+-FEATURE_CFLAGS += -D'CONFIG_RAYER_SPI=1'
+-PROGRAMMER_OBJS += rayer_spi.o
+-# Actually, NEED_PCI is wrong. NEED_IOPORT_ACCESS would be more correct.
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_BITBANG_SPI), yes)
+-FEATURE_CFLAGS += -D'CONFIG_BITBANG_SPI=1'
+-PROGRAMMER_OBJS += bitbang_spi.o
+-endif
+-
+-ifeq ($(CONFIG_NIC3COM), yes)
+-FEATURE_CFLAGS += -D'CONFIG_NIC3COM=1'
+-PROGRAMMER_OBJS += nic3com.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_GFXNVIDIA), yes)
+-FEATURE_CFLAGS += -D'CONFIG_GFXNVIDIA=1'
+-PROGRAMMER_OBJS += gfxnvidia.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_SATASII), yes)
+-FEATURE_CFLAGS += -D'CONFIG_SATASII=1'
+-PROGRAMMER_OBJS += satasii.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_ATAHPT), yes)
+-FEATURE_CFLAGS += -D'CONFIG_ATAHPT=1'
+-PROGRAMMER_OBJS += atahpt.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_FT2232_SPI), yes)
+-FTDILIBS := $(shell pkg-config --libs libftdi 2>/dev/null || printf "%s" "-lftdi -lusb")
+-# This is a totally ugly hack.
+-FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'CONFIG_FT2232_SPI=1'")
+-FEATURE_LIBS += $(shell LC_ALL=C grep -q "FTDISUPPORT := yes" .features && printf "%s" "$(FTDILIBS)")
+-PROGRAMMER_OBJS += ft2232_spi.o
+-endif
+-
+-ifeq ($(CONFIG_DUMMY), yes)
+-FEATURE_CFLAGS += -D'CONFIG_DUMMY=1'
+-PROGRAMMER_OBJS += dummyflasher.o
+-endif
+-
+-ifeq ($(CONFIG_DRKAISER), yes)
+-FEATURE_CFLAGS += -D'CONFIG_DRKAISER=1'
+-PROGRAMMER_OBJS += drkaiser.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_NICREALTEK), yes)
+-FEATURE_CFLAGS += -D'CONFIG_NICREALTEK=1'
+-PROGRAMMER_OBJS += nicrealtek.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_NICNATSEMI), yes)
+-FEATURE_CFLAGS += -D'CONFIG_NICNATSEMI=1'
+-PROGRAMMER_OBJS += nicnatsemi.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_NICINTEL_SPI), yes)
+-FEATURE_CFLAGS += -D'CONFIG_NICINTEL_SPI=1'
+-PROGRAMMER_OBJS += nicintel_spi.o
+-NEED_PCI := yes
+-endif
+-
+-ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
+-FEATURE_CFLAGS += -D'CONFIG_BUSPIRATE_SPI=1'
+-PROGRAMMER_OBJS += buspirate_spi.o
+-NEED_SERIAL := yes
+-endif
+-
+-ifeq ($(CONFIG_DEDIPROG), yes)
+-FEATURE_CFLAGS += -D'CONFIG_DEDIPROG=1'
+-FEATURE_LIBS += -lusb
+-PROGRAMMER_OBJS += dediprog.o
+-endif
+-
+-ifeq ($(NEED_SERIAL), yes)
+-LIB_OBJS += serial.o
+-endif
+-
+-ifeq ($(NEED_NET), yes)
+-ifeq ($(OS_ARCH), SunOS)
+-LIBS += -lsocket
+-endif
+-endif
+-
+-ifeq ($(NEED_PCI), yes)
+-CHECK_LIBPCI = yes
+-FEATURE_CFLAGS += -D'NEED_PCI=1'
+-PROGRAMMER_OBJS += pcidev.o physmap.o hwaccess.o
+-ifeq ($(OS_ARCH), NetBSD)
+-# The libpci we want is called libpciutils on NetBSD and needs NetBSD libpci.
+-LIBS += -lpciutils -lpci
+-# For (i386|x86_64)_iopl(2).
+-LIBS += -l$(shell uname -p)
+-else
+-ifeq ($(OS_ARCH), DOS)
+-# FIXME There needs to be a better way to do this
+-LIBS += ../libpci/lib/libpci.a
+-else
+-LIBS += -lpci
+-ifeq ($(OS_ARCH), OpenBSD)
+-# For (i386|amd64)_iopl(2).
+-LIBS += -l$(shell uname -m)
+-endif
+-endif
+-endif
+-endif
+-
+-ifeq ($(CONFIG_PRINT_WIKI), yes)
+-FEATURE_CFLAGS += -D'CONFIG_PRINT_WIKI=1'
+-CLI_OBJS += print_wiki.o
+-endif
+-
+-FEATURE_CFLAGS += $(shell LC_ALL=C grep -q "UTSNAME := yes" .features && printf "%s" "-D'HAVE_UTSNAME=1'")
+-
+-# We could use PULLED_IN_LIBS, but that would be ugly.
+-FEATURE_LIBS += $(shell LC_ALL=C grep -q "NEEDLIBZ := yes" .libdeps && printf "%s" "-lz")
+-
+-OBJS = $(CHIP_OBJS) $(CLI_OBJS) $(PROGRAMMER_OBJS) $(LIB_OBJS)
+-
+-$(PROGRAM)$(EXEC_SUFFIX): $(OBJS)
+-	$(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(FEATURE_LIBS) $(LIBS)
+-
+-# TAROPTIONS reduces information leakage from the packager's system.
+-# If other tar programs support command line arguments for setting uid/gid of
+-# stored files, they can be handled here as well.
+-TAROPTIONS = $(shell LC_ALL=C tar --version|grep -q GNU && echo "--owner=root --group=root")
+-
+-%.o: %.c .features
+-	$(CC) -MMD $(CFLAGS) $(CPPFLAGS) $(FEATURE_CFLAGS) $(SVNDEF) -o $@ -c $<
+-
+-# Make sure to add all names of generated binaries here.
+-# This includes all frontends and libflashrom.
+-# We don't use EXEC_SUFFIX here because we want to clean everything.
+-clean:
+-	rm -f $(PROGRAM) $(PROGRAM).exe *.o *.d
+-
+-distclean: clean
+-	rm -f .features .libdeps
+-
+-strip: $(PROGRAM)$(EXEC_SUFFIX)
+-	$(STRIP) $(STRIP_ARGS) $(PROGRAM)$(EXEC_SUFFIX)
+-
+-compiler: featuresavailable
+-	@printf "Checking for a C compiler... "
+-	@$(shell ( echo "int main(int argc, char **argv)"; \
+-		   echo "{ return 0; }"; ) > .test.c )
+-	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .test.c -o .test$(EXEC_SUFFIX) >/dev/null &&	\
+-		echo "found." || ( echo "not found."; \
+-		rm -f .test.c .test$(EXEC_SUFFIX); exit 1)
+-	@rm -f .test.c .test$(EXEC_SUFFIX)
+-
+-ifeq ($(CHECK_LIBPCI), yes)
+-pciutils: compiler
+-	@printf "Checking for libpci headers... "
+-	@# Avoid a failing test due to libpci header symbol shadowing breakage
+-	@$(shell ( echo "#define index shadow_workaround_index"; \
+-		   echo "#include <pci/pci.h>";		   \
+-		   echo "struct pci_access *pacc;";	   \
+-		   echo "int main(int argc, char **argv)"; \
+-		   echo "{ pacc = pci_alloc(); return 0; }"; ) > .test.c )
+-	@$(CC) -c $(CPPFLAGS) $(CFLAGS) .test.c -o .test.o >/dev/null 2>&1 &&		\
+-		echo "found." || ( echo "not found."; echo;			\
+-		echo "Please install libpci headers (package pciutils-devel).";	\
+-		echo "See README for more information."; echo;			\
+-		rm -f .test.c .test.o; exit 1)
+-	@printf "Checking if libpci is present and sufficient... "
+-	@printf "" > .libdeps
+-	@$(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) >/dev/null 2>&1 &&				\
+-		echo "yes." || ( echo "no.";							\
+-		printf "Checking if libz+libpci are present and sufficient...";	\
+-		$(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) -lz >/dev/null 2>&1 &&		\
+-		( echo "yes."; echo "NEEDLIBZ := yes" > .libdeps ) || ( echo "no."; echo;	\
+-		echo "Please install libpci (package pciutils) and/or libz.";			\
+-		echo "See README for more information."; echo;				\
+-		rm -f .test.c .test.o .test$(EXEC_SUFFIX); exit 1) )
+-	@rm -f .test.c .test.o .test$(EXEC_SUFFIX)
+-else
+-pciutils: compiler
+-	@printf "" > .libdeps
+-endif
+-
+-.features: features
+-
+-# If a user does not explicitly request a non-working feature, we should
+-# silently disable it. However, if a non-working (does not compile) feature
+-# is explicitly requested, we should bail out with a descriptive error message.
+-ifeq ($(UNSUPPORTED_FEATURES), )
+-featuresavailable:
+-else
+-featuresavailable:
+-	@echo "The following features are unavailable on your machine: $(UNSUPPORTED_FEATURES)"
+-	@false
+-endif
+-
+-ifeq ($(CONFIG_FT2232_SPI), yes)
+-features: compiler
+-	@echo "FEATURES := yes" > .features.tmp
+-	@printf "Checking for FTDI support... "
+-	@$(shell ( echo "#include <ftdi.h>";		   \
+-		   echo "struct ftdi_context *ftdic = NULL;";	   \
+-		   echo "int main(int argc, char **argv)"; \
+-		   echo "{ return ftdi_init(ftdic); }"; ) > .featuretest.c )
+-	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) $(FTDILIBS) $(LIBS) >/dev/null 2>&1 &&	\
+-		( echo "found."; echo "FTDISUPPORT := yes" >> .features.tmp ) ||	\
+-		( echo "not found."; echo "FTDISUPPORT := no" >> .features.tmp )
+-	@printf "Checking for utsname support... "
+-	@$(shell ( echo "#include <sys/utsname.h>";		   \
+-		   echo "struct utsname osinfo;";	   \
+-		   echo "int main(int argc, char **argv)"; \
+-		   echo "{ uname (&osinfo); return 0; }"; ) > .featuretest.c )
+-	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) >/dev/null 2>&1 &&	\
+-		( echo "found."; echo "UTSNAME := yes" >> .features.tmp ) ||	\
+-		( echo "not found."; echo "UTSNAME := no" >> .features.tmp )
+-	@$(DIFF) -q .features.tmp .features >/dev/null 2>&1 && rm .features.tmp || mv .features.tmp .features
+-	@rm -f .featuretest.c .featuretest$(EXEC_SUFFIX)
+-else
+-features: compiler
+-	@echo "FEATURES := yes" > .features.tmp
+-	@printf "Checking for utsname support... "
+-	@$(shell ( echo "#include <sys/utsname.h>";		   \
+-		   echo "struct utsname osinfo;";	   \
+-		   echo "int main(int argc, char **argv)"; \
+-		   echo "{ uname (&osinfo); return 0; }"; ) > .featuretest.c )
+-	@$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) >/dev/null 2>&1 &&	\
+-		( echo "found."; echo "UTSNAME := yes" >> .features.tmp ) ||	\
+-		( echo "not found."; echo "UTSNAME := no" >> .features.tmp )
+-	@$(DIFF) -q .features.tmp .features >/dev/null 2>&1 && rm .features.tmp || mv .features.tmp .features
+-	@rm -f .featuretest.c .featuretest$(EXEC_SUFFIX)
+-endif
+-
+-install: $(PROGRAM)$(EXEC_SUFFIX)
+-	mkdir -p $(DESTDIR)$(PREFIX)/sbin
+-	mkdir -p $(DESTDIR)$(MANDIR)/man8
+-	$(INSTALL) -m 0755 $(PROGRAM)$(EXEC_SUFFIX) $(DESTDIR)$(PREFIX)/sbin
+-	$(INSTALL) -m 0644 $(PROGRAM).8 $(DESTDIR)$(MANDIR)/man8
+-
+-export:
+-	@rm -rf $(EXPORTDIR)/flashrom-$(RELEASENAME)
+-	@svn export -r BASE . $(EXPORTDIR)/flashrom-$(RELEASENAME)
+-	@sed "s/^SVNVERSION.*/SVNVERSION := $(SVNVERSION)/" Makefile >$(EXPORTDIR)/flashrom-$(RELEASENAME)/Makefile
+-	@LC_ALL=C svn log >$(EXPORTDIR)/flashrom-$(RELEASENAME)/ChangeLog
+-	@echo Exported $(EXPORTDIR)/flashrom-$(RELEASENAME)/
+-
+-tarball: export
+-	@tar cjf $(EXPORTDIR)/flashrom-$(RELEASENAME).tar.bz2 -C $(EXPORTDIR)/ $(TAROPTIONS) flashrom-$(RELEASENAME)/
+-	@rm -rf $(EXPORTDIR)/flashrom-$(RELEASENAME)
+-	@echo Created $(EXPORTDIR)/flashrom-$(RELEASENAME).tar.bz2
+-
+-djgpp-dos: clean
+-	make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip WARNERROR=no OS_ARCH=DOS
+-
+-.PHONY: all clean distclean compiler pciutils features export tarball dos featuresavailable
+-
+--include $(OBJS:.o=.d)
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 0000000..671287c
+--- /dev/null
++++ b/Makefile.am
+@@ -0,0 +1,166 @@
++sbin_PROGRAMS = flashrom
++
++man_MANS = flashrom.8
++
++DEFS += -DDMIDECODE_PATH=\"@DMIDECODE@\"
++
++if HAVE_INTERNAL
++internal_SOURCES = \
++	board_enable.c \
++	cbtable.c \
++	chipset_enable.c \
++	dmi.c \
++	internal.c \
++	processor_enable.c
++if HAVE_X86_ONLY_INTERNAL
++internal_x86_only_SOURCES = \
++	ichspi.c \
++	it87spi.c \
++	mcp6x_spi.c \
++	sb600spi.c \
++	wbsio_spi.c
++endif
++DEFS += -DCONFIG_INTERNAL=1
++endif
++
++if HAVE_RAYER_SPI
++rayer_spi_SOURCES = rayer_spi.c
++DEFS += -DCONFIG_RAYER_SPI=1
++endif
++
++if HAVE_NIC3COM
++nic3com_SOURCES = nic3com.c
++DEFS += -DCONFIG_NIC3COM=1
++endif
++
++if HAVE_GFXNVIDIA
++gfxnvidia_SOURCES = gfxnvidia.c
++DEFS += -DCONFIG_GFXNVIDIA=1
++endif
++
++if HAVE_SATASII
++satasii_SOURCES = satasii.c
++DEFS += -DCONFIG_SATASII=1
++endif
++
++if HAVE_ATAHPT
++atahpt_SOURCES = atahpt.c
++DEFS += -DCONFIG_ATAHPT=1
++endif
++
++if HAVE_FT2232_SPI
++ft_2232_spi_SOURCES = ft2232_spi.c
++DEFS += -DCONFIG_FT2232_SPI=1
++endif
++
++if HAVE_DUMMY
++dummy_SOURCES= dummyflasher.c
++DEFS += -DCONFIG_DUMMY=1
++endif
++
++if HAVE_DRKAISER
++drkaiser_SOURCES = drkaiser.c
++DEFS += -DCONFIG_DRKAISER=1
++endif
++
++if HAVE_NICREALTEK
++nicrealtek_SOURCES = nicrealtek.c
++DEFS += -DCONFIG_NICREALTEK=1
++endif
++
++if HAVE_NICNATSEMI
++nicnatsemi_SOURCES = nicnatsemi.c
++DEFS += -DCONFIG_NICNATSEMI=1
++endif
++
++if HAVE_NICINTEL_SPI
++nicintel_SOURCES = nicintel_spi.c
++DEFS += -DCONFIG_NICINTEL_SPI=1
++endif
++
++if HAVE_SERPROG
++serprog_SOURCES = serprog.c
++DEFS += -DCONFIG_SERPROG=1
++endif
++
++if HAVE_BUSPIRATE_SPI
++buspirate_SOURCES = buspirate_spi.c
++DEFS += -DCONFIG_BUSPIRATE_SPI=1
++endif
++
++if HAVE_SERIAL
++serial_SOURCES = serial.c
++endif
++
++if HAVE_DEDIPROG
++dediprog_SOURCES = dediprog.c
++DEFS += -DCONFIG_DEDIPROG=1
++endif
++
++if HAVE_PRINT_WIKI
++print_wiki_SOURCES = print_wiki.c
++DEFS += -DCONFIG_PRINT_WIKI=1
++endif
++
++if HAVE_PCI
++pci_SOURCES = pcidev.c \
++	      physmap.c \
++	      hwaccess.c
++endif
++
++chip_SOURCES = 82802ab.c \
++	       flashchips.c \
++	       jedec.c \
++	       m29f400bt.c \
++	       pm49fl00x.c \
++	       spi.c \
++	       spi25.c \
++	       sst_fwhub.c \
++	       sst28sf040.c \
++	       sst49lfxxxc.c \
++	       stm50flw0x0x.c \
++	       w29ee011.c \
++	       w39v040c.c \
++	       w39v080fa.c
++
++cli_SOURCES = \
++	flashrom.c \
++	cli_classic.c \
++	cli_output.c \
++	print.c
++
++lib_SOURCES = layout.c
++
++if HAVE_BITBANG_SPI
++bitbang_spi_SOURCES = bitbang_spi.c
++endif
++
++# Unknown purpose
++# sharplhf00l04.c
++
++flashrom_SOURCES = \
++	programmer.c \
++	udelay.c \
++	$(lib_SOURCES) \
++	$(cli_SOURCES) \
++	$(bitbang_spi_SOURCES) \
++	$(chip_SOURCES) \
++	$(pci_SOURCES) \
++	$(serprog_SOURCES) \
++	$(rayer_spi_SOURCES) \
++	$(nic3com_SOURCES) \
++	$(internal_SOURCES) \
++	$(internal_x86_only_SOURCES) \
++	$(satasii_SOURCES) \
++	$(atahpt_SOURCES) \
++	$(dummy_SOURCES) \
++	$(ft_2232_spi_SOURCES) \
++	$(gfxnvidia_SOURCES) \
++	$(drkaiser_SOURCES) \
++	$(nicrealtek_SOURCES) \
++	$(nicnatsemi_SOURCES) \
++	$(nicintel_SOURCES) \
++	$(buspirate_SOURCES) \
++	$(dediprog_SOURCES) \
++	$(print_wiki_SOURCES) \
++	$(serial_SOURCES)
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 0000000..18c1262
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,197 @@
++AC_INIT([flashrom], [0.9.2-r1180], [flashrom at flashrom.org], [flashrom], [http://www.flashrom.org/])
++
++AC_CANONICAL_TARGET
++
++AC_CONFIG_SRCDIR([flashrom.c])
++AC_CONFIG_HEADERS([config.h])
++AM_INIT_AUTOMAKE([foreign dist-xz])
++
++AC_ARG_WITH([dummy],
++	    AC_HELP_STRING([--with-dummy],[dummy flashing support.]),
++	    [dummy="$withval"],[dummy="yes"])
++
++# Internal (mainboard) flashing
++AC_ARG_WITH([internal],
++	    AC_HELP_STRING([--with-internal],[mainboard's internal flashing support.]),
++	    [internal="$withval"],[internal="yes"])
++
++# SATA and ATA PCI adapters
++AC_ARG_WITH([satasii],
++	    AC_HELP_STRING([--with-satasii],[SiI SATA controllers support.]),
++	    [satasii="$withval"],[satasii="no"])
++AC_ARG_WITH([atahpt],
++	    AC_HELP_STRING([--with-atahpt],[Highpoint (HPT) ATA/RAID controller support. IMPORTANT: This code is not yet working!]),
++	    [atahpt="$withval"],[atahpt="no"])
++
++# Network interface cards
++AC_ARG_WITH([nic3com],
++	    AC_HELP_STRING([--with-nic3com],[3Com NICs support.]),
++	    [nic3com="$withval"],[nic3com="yes"])
++AC_ARG_WITH([nicintel_spi],
++	    AC_HELP_STRING([--with-nicintel-spi],[SPI on Intel NICs support.]),
++	    [nicintel_spi="$withval"],[nicintel_spi="yes"])
++AC_ARG_WITH([nicnatsemi],
++	    AC_HELP_STRING([--with-nicnatsemi],[National Semiconductor NICs support. Incomplete and untested.]),
++	    [nicnatsemi="$withval"],[nicnatsemi="no"])
++AC_ARG_WITH([nicrealtek],
++	    AC_HELP_STRING([--with-nicrealtek],[Realtek NICs support.]),
++	    [nicrealtek="$withval"],[nicrealtek="yes"])
++
++# Graphics cards
++AC_ARG_WITH([gfxnvidia],
++	    AC_HELP_STRING([--with-gfxnvidia],[NVIDIA graphics cards support. Note: write and erase do not work properly.]),
++	    [gfxnvidia="$withval"],[gfxnvidia="yes"])
++
++# External flashers
++AC_ARG_WITH([buspirate_spi],
++	    AC_HELP_STRING([--with-buspirate-spi],[Bus Pirate SPI support.]),
++	    [buspirate_spi="$withval"],[buspirate_spi="yes"])
++AC_ARG_WITH([dediprog],
++	    AC_HELP_STRING([--with-dediprog],[Dediprog SF100 support. Incomplete and untested.]),
++	    [dediprog="$withval"],[dediprog="no"])
++AC_ARG_WITH([drkaiser],
++	    AC_HELP_STRING([--with-drkaiser],[Dr. Kaiser support.]),
++	    [drkaiser="$withval"],[drkaiser="yes"])
++AC_ARG_WITH([ft2232_spi],
++	    AC_HELP_STRING([--with-ft2232-spi],[FT2232 SPI dongles support.]),
++	    [ft2232_spi="$withval"],[ft2232_spi="yes"])
++AC_ARG_WITH([rayer_spi],
++	    AC_HELP_STRING([--with-rayer-spi],[RayeR SPIPGM hardware support.]),
++	    [rayer_spi="$withval"],[rayer_spi="yes"])
++# Needs to be disabled on Windows.
++AC_ARG_WITH([serprog],
++	    AC_HELP_STRING([--with-serprog],[serprog support.]),
++	    [serprog="$withval"],[serprog="yes"])
++
++# Specific for Flashrom Wiki
++AC_ARG_WITH([print_wiki],
++	    AC_HELP_STRING([--with-print-wiki],[enable wiki export support. It is only useful if you have Flashrom wiki access.]),
++	    [print_wiki="$withval"],[print_wiki="no"])
++
++# Check for CPU-specific features
++case $target_cpu in
++	i386|i486|i586|i686|x86_64)
++		if test "$internal" = 'yes'; then
++			enable_x86_only_internal="yes"
++		fi
++		;;
++	*)
++		if test "$nic3com" = 'yes'; then
++			echo "NIC 3Com is not supported for this target (" $target_cpu "). No PCI port I/O access on this architecture yet"
++			nic3com="no"
++		fi
++		if test "$nicnatsemi" = 'yes'; then
++			echo "NIC NatSemi is not supported for this target (" $target_cpu "). No PCI port I/O access on this architecture yet"
++			nicnatsemi="no"
++		fi
++		if test "$nicrealtek" = 'yes'; then
++			echo "NIC Realtek is not supported for this target (" $target_cpu "). No PCI port I/O access on this architecture yet"
++			nicrealtek="no"
++		fi
++		if test "$rayer_spi" = 'yes'; then
++			echo "RayeR SPIPGM is not supported for this target (" $target_cpu "). No PCI port I/O access on this architecture yet"
++			rayer_spi="no"
++		fi
++		;;
++esac
++
++# Enable OS-specific fompilation flags
++# TODO
++
++# Check whether we need seial support
++if test "$serprog" = 'yes' -o \
++	"$buspirate_spi" = 'yes' ; then
++	serial="yes"
++fi
++
++# Check whether we need PCI support
++if test "$internal" = 'yes' -o \
++	"$rayer_spi" = 'yes' -o \
++	"$bitbang_spi" = 'yes' -o \
++	"$nic3com" = 'yes' -o \
++	"$gfxnvidia" = 'yes' -o \
++	"satasii" = 'yes' -o \
++	"$atahpt" = 'yes' -o \
++	"$drkaiser" = 'yes' -o \
++	"$nicrealtek" = 'yes' -o \
++	"$nicnatsemi" = 'yes' -o \
++	"$nicintel_spi" = 'yes' ; then
++	pci="yes"
++fi
++
++if test "$internal" = 'yes' -o \
++	"$rayer_spi" = 'yes' -o \
++	"$nicintel_spi" = 'yes' ; then
++	bitbang_spi="yes"
++fi
++
++# Checks for programs.
++AC_PROG_CC
++AC_PROG_INSTALL
++AC_PROG_MAKE_SET
++
++AC_PATH_PROG([DMIDECODE], dmidecode, [dmidecode], [$PATH$PATH_SEPARATOR/usr/sbin])
++
++# Checks for header files.
++AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h limits.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/ioctl.h sys/socket.h sys/time.h sys/utsname.h termios.h unistd.h])
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_C_INLINE
++AC_TYPE_OFF_T
++AC_TYPE_SIZE_T
++AC_TYPE_SSIZE_T
++AC_TYPE_UINT16_T
++AC_TYPE_UINT32_T
++AC_TYPE_UINT64_T
++AC_TYPE_UINT8_T
++
++# Checks for library functions.
++AC_FUNC_MALLOC
++AC_FUNC_MMAP
++AC_FUNC_REALLOC
++AC_CHECK_FUNCS([gethostbyaddr gethostbyname getpagesize gettimeofday memmove memset munmap socket strcasecmp strchr strcspn strdup strerror strncasecmp strspn strstr strtol strtoul uname])
++
++# Checks for pcilib
++if test "$pci" = 'yes' ; then
++	AC_CHECK_LIB([pci], [pci_alloc],,[AC_MSG_ERROR([pci library missing])])
++fi
++
++# check for socket (required for SunOS)
++if test "$serprog" = 'yes' ; then
++	AC_CHECK_LIB([socket], [socket])
++fi
++
++# Check for libusb
++if test "$dediprog" = 'yes' -o "$ft2232_spi" = 'yes'  ; then
++	AC_CHECK_LIB([usb], [usb_init])
++fi
++
++if test "$ft2232_spi" = 'yes' ; then
++#	AC_CHECK_LIB([ftdi],[main],,[AC_MSG_ERROR([ftdi library missing which is required for ft2232-spi])])
++	AC_CHECK_LIB([ftdi],[main],,[ft2232_spi="no"])
++fi
++
++# For Makefile.am
++AM_CONDITIONAL(HAVE_RAYER_SPI, test "$rayer_spi" = "yes")
++AM_CONDITIONAL(HAVE_NIC3COM, test "$nic3com" = "yes")
++AM_CONDITIONAL(HAVE_DUMMY, test "$dummy" = "yes")
++AM_CONDITIONAL(HAVE_INTERNAL, test "$internal" = "yes")
++AM_CONDITIONAL(HAVE_X86_ONLY_INTERNAL, test "$enable_x86_only_internal" = "yes")
++AM_CONDITIONAL(HAVE_SATASII, test "$satasii" = "yes")
++AM_CONDITIONAL(HAVE_ATAHPT, test "$atahpt" = "yes")
++AM_CONDITIONAL(HAVE_NICINTEL_SPI, test "$nicintel_spi" = "yes")
++AM_CONDITIONAL(HAVE_NICNATSEMI, test "$nicnatsemi" = "yes")
++AM_CONDITIONAL(HAVE_NICREALTEK, test "$nicrealtek" = "yes")
++AM_CONDITIONAL(HAVE_GFXNVIDIA, test "$gfxnvidia" = "yes")
++AM_CONDITIONAL(HAVE_SERPROG, test "$serprog" = "yes")
++AM_CONDITIONAL(HAVE_BUSPIRATE_SPI, test "$buspirate_spi" = "yes")
++AM_CONDITIONAL(HAVE_SERIAL, test "$serial" = "yes")
++AM_CONDITIONAL(HAVE_PCI, test "$pci" = "yes")
++AM_CONDITIONAL(HAVE_DEDIPROG, test "$dediprog" = "yes")
++AM_CONDITIONAL(HAVE_DRKAISER, test "$drkaiser" = "yes")
++AM_CONDITIONAL(HAVE_FT2232_SPI, test "$ft2232_spi" = "yes")
++AM_CONDITIONAL(HAVE_BITBANG_SPI, test "$bitbang_spi" = "yes")
++AM_CONDITIONAL(HAVE_PRINT_WIKI, test "$print_wiki" = "yes")
++
++AC_CONFIG_FILES([Makefile])
++AC_OUTPUT
+diff --git a/dmi.c b/dmi.c
+index f18907f..09009e7 100644
+--- a/dmi.c
++++ b/dmi.c
+@@ -55,7 +55,7 @@ static const char *dmidecode_names[] = {
+ };
+ 
+ #define DMI_COMMAND_LEN_MAX 260
+-static const char *dmidecode_command = "dmidecode";
++static const char *dmidecode_command = DMIDECODE_PATH;
+ 
+ static char *dmistrings[ARRAY_SIZE(dmidecode_names)];
+ 
+diff --git a/flash.h b/flash.h
+index 6f0d7c0..4aba5ab 100644
+--- a/flash.h
++++ b/flash.h
+@@ -182,7 +182,6 @@ enum write_granularity {
+ };
+ extern enum chipbustype buses_supported;
+ extern int verbose;
+-extern const char * const flashrom_version;
+ extern char *chip_to_probe;
+ void map_flash_registers(struct flashchip *flash);
+ int read_memmapped(struct flashchip *flash, uint8_t *buf, int start, int len);
+diff --git a/flashrom.c b/flashrom.c
+index f722029..a2be2fc 100644
+--- a/flashrom.c
++++ b/flashrom.c
+@@ -28,14 +28,16 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <getopt.h>
+-#if HAVE_UTSNAME == 1
++
++#include "config.h"
++
++#if HAVE_SYS_UTSNAME_H == 1
+ #include <sys/utsname.h>
+ #endif
+ #include "flash.h"
+ #include "flashchips.h"
+ #include "programmer.h"
+ 
+-const char * const flashrom_version = FLASHROM_VERSION;
+ char *chip_to_probe = NULL;
+ int verbose = 0;
+ 
+@@ -1332,7 +1334,7 @@ void list_programmers(char *delim)
+ 
+ void print_sysinfo(void)
+ {
+-#if HAVE_UTSNAME == 1
++#if HAVE_UNAME == 1
+ 	struct utsname osinfo;
+ 	uname(&osinfo);
+ 
+@@ -1342,7 +1344,7 @@ void print_sysinfo(void)
+ 	msg_ginfo(" on unknown machine");
+ #endif
+ 	msg_ginfo(", built with");
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ #ifdef PCILIB_VERSION
+ 	msg_ginfo(" libpci %s,", PCILIB_VERSION);
+ #else
+@@ -1376,7 +1378,7 @@ void print_sysinfo(void)
+ 
+ void print_version(void)
+ {
+-	msg_ginfo("flashrom v%s", flashrom_version);
++	msg_ginfo("flashrom v%s", PACKAGE_VERSION);
+ 	print_sysinfo();
+ }
+ 
+diff --git a/hwaccess.h b/hwaccess.h
+index 2d17326..bd78539 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -24,13 +24,15 @@
+ #ifndef __HWACCESS_H__
+ #define __HWACCESS_H__ 1
+ 
++#include "config.h"
++
+ #if defined (__i386__) || defined (__x86_64__)
+ #if defined(__GLIBC__)
+ #include <sys/io.h>
+ #endif
+ #endif
+ 
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ /*
+  * libpci headers use the variable name "index" which triggers shadowing
+  * warnings on systems which have the index() function in a default #include
+@@ -160,7 +162,7 @@ cpu_to_be(64)
+ #define le_to_cpu32 cpu_to_le32
+ #define le_to_cpu64 cpu_to_le64
+ 
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ #if defined (__i386__) || defined (__x86_64__)
+ 
+ #define __FLASHROM_HAVE_OUTB__ 1
+diff --git a/ichspi.c b/ichspi.c
+index bb6007e..7ac8e37 100644
+--- a/ichspi.c
++++ b/ichspi.c
+@@ -33,8 +33,6 @@
+  *
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <string.h>
+ #include "flash.h"
+ #include "chipdrivers.h"
+@@ -1072,5 +1070,3 @@ int via_init_spi(struct pci_dev *dev)
+ 
+ 	return 0;
+ }
+-
+-#endif
+diff --git a/internal.c b/internal.c
+index 497ce6c..71965de 100644
+--- a/internal.c
++++ b/internal.c
+@@ -24,8 +24,9 @@
+ #include <sys/types.h>
+ #include "flash.h"
+ #include "programmer.h"
++#include "config.h"
+ 
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ struct pci_dev *pci_dev_find_filter(struct pci_filter filter)
+ {
+ 	struct pci_dev *temp;
+diff --git a/it87spi.c b/it87spi.c
+index 9ecc414..1750cf8 100644
+--- a/it87spi.c
++++ b/it87spi.c
+@@ -23,8 +23,6 @@
+  * Contains the ITE IT87* SPI specific routines
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <string.h>
+ #include <stdlib.h>
+ #include "flash.h"
+@@ -371,5 +369,3 @@ int it8716f_spi_chip_write_256(struct flashchip *flash, uint8_t *buf, int start,
+ 
+ 	return 0;
+ }
+-
+-#endif
+diff --git a/mcp6x_spi.c b/mcp6x_spi.c
+index 97c0a1c..a277983 100644
+--- a/mcp6x_spi.c
++++ b/mcp6x_spi.c
+@@ -23,8 +23,6 @@
+  * created by Michael Karcher.
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <ctype.h>
+@@ -172,5 +170,3 @@ int mcp6x_spi_init(int want_spi)
+ 
+ 	return 0;
+ }
+-
+-#endif
+diff --git a/nic3com.c b/nic3com.c
+index 0eb781a..7084edf 100644
+--- a/nic3com.c
++++ b/nic3com.c
+@@ -18,8 +18,6 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdlib.h>
+ #include "flash.h"
+ #include "programmer.h"
+@@ -114,7 +112,3 @@ uint8_t nic3com_chip_readb(const chipaddr addr)
+ 	OUTL((uint32_t)addr, io_base_addr + BIOS_ROM_ADDR);
+ 	return INB(io_base_addr + BIOS_ROM_DATA);
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/nicnatsemi.c b/nicnatsemi.c
+index 1683857..e3a2807 100644
+--- a/nicnatsemi.c
++++ b/nicnatsemi.c
+@@ -18,8 +18,6 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdlib.h>
+ #include "flash.h"
+ #include "programmer.h"
+@@ -89,7 +87,3 @@ uint8_t nicnatsemi_chip_readb(const chipaddr addr)
+ 	 */
+ 	return INB(io_base_addr + BOOT_ROM_DATA);
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/nicrealtek.c b/nicrealtek.c
+index c32e5d6..b5bcbaf 100644
+--- a/nicrealtek.c
++++ b/nicrealtek.c
+@@ -18,8 +18,6 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include <stdlib.h>
+ #include "flash.h"
+ #include "programmer.h"
+@@ -109,7 +107,3 @@ uint8_t nicrealtek_chip_readb(const chipaddr addr)
+ 
+ 	return val;
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/print_wiki.c b/print_wiki.c
+index 313fdea..c061116 100644
+--- a/print_wiki.c
++++ b/print_wiki.c
+@@ -26,6 +26,7 @@
+ #include "flash.h"
+ #include "flashchips.h"
+ #include "programmer.h"
++#include "config.h"
+ 
+ static const char * const wiki_header = "= Supported devices =\n\n\
+ <div style=\"margin-top:0.5em; padding:0.5em 0.5em 0.5em 0.5em; \
+@@ -267,7 +268,7 @@ void print_supported_wiki(void)
+ {
+ 	time_t t = time(NULL);
+ 
+-	printf(wiki_header, ctime(&t), flashrom_version);
++	printf(wiki_header, ctime(&t), PACKAGE_VERSION);
+ #if CONFIG_INTERNAL == 1
+ 	print_supported_chips_wiki(2);
+ 	print_supported_chipsets_wiki(3);
+diff --git a/programmer.h b/programmer.h
+index 6407695..dfd99b4 100644
+--- a/programmer.h
++++ b/programmer.h
+@@ -24,6 +24,8 @@
+ #ifndef __PROGRAMMER_H__
+ #define __PROGRAMMER_H__ 1
+ 
++#include "config.h"
++
+ enum programmer {
+ #if CONFIG_INTERNAL == 1
+ 	PROGRAMMER_INTERNAL,
+@@ -198,7 +200,7 @@ void myusec_delay(int usecs);
+ void myusec_calibrate_delay(void);
+ void internal_delay(int usecs);
+ 
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ /* pcidev.c */
+ extern uint32_t io_base_addr;
+ extern struct pci_access *pacc;
+@@ -253,7 +255,7 @@ void dmi_init(void);
+ int dmi_match(const char *pattern);
+ 
+ /* internal.c */
+-#if NEED_PCI == 1
++#if HAVE_LIBPCI == 1
+ struct superio {
+ 	uint16_t vendor;
+ 	uint16_t port;
+diff --git a/rayer_spi.c b/rayer_spi.c
+index 722ad14..df6d972 100644
+--- a/rayer_spi.c
++++ b/rayer_spi.c
+@@ -28,7 +28,6 @@
+  * most OS parport drivers will perform many unnecessary accesses although
+  * this driver just treats the parallel port as a GPIO set.
+  */
+-#if defined(__i386__) || defined(__x86_64__)
+ 
+ #include "flash.h"
+ #include "programmer.h"
+@@ -117,7 +116,3 @@ int rayer_spi_init(void)
+ 
+ 	return 0;
+ }
+-
+-#else
+-#error PCI port I/O access is not supported on this architecture yet.
+-#endif
+diff --git a/sb600spi.c b/sb600spi.c
+index 4e3e079..c468ca3 100644
+--- a/sb600spi.c
++++ b/sb600spi.c
+@@ -21,8 +21,6 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include "flash.h"
+ #include "chipdrivers.h"
+ #include "programmer.h"
+@@ -319,5 +317,3 @@ int sb600_probe_spi(struct pci_dev *dev)
+ 	spi_controller = SPI_CONTROLLER_SB600;
+ 	return 0;
+ }
+-
+-#endif
+diff --git a/wbsio_spi.c b/wbsio_spi.c
+index acf9cb2..1a583a8 100644
+--- a/wbsio_spi.c
++++ b/wbsio_spi.c
+@@ -18,8 +18,6 @@
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+  */
+ 
+-#if defined(__i386__) || defined(__x86_64__)
+-
+ #include "flash.h"
+ #include "chipdrivers.h"
+ #include "programmer.h"
+@@ -185,5 +183,3 @@ int wbsio_spi_read(struct flashchip *flash, uint8_t *buf, int start, int len)
+ {
+ 	return read_memmapped(flash, buf, start, len);
+ }
+-
+-#endif
+-- 
+1.7.2.3
+
diff --git a/flashrom.spec b/flashrom.spec
index e710664..26b52e3 100644
--- a/flashrom.spec
+++ b/flashrom.spec
@@ -1,17 +1,16 @@
-%global svnrev 1180
-
 Summary:	Simple program for reading/writing BIOS chips content
 Name:		flashrom
 Version:	0.9.2
-Release:	5.svn1180%{?dist}
+Release:	6.svn1180%{?dist}
 License:	GPLv2
 Group:		Applications/System
 URL:		http://flashrom.org
 Source0:	http://qa.coreboot.org/releases/%{name}-%{version}.tar.bz2
 Source1:	http://qa.coreboot.org/releases/%{name}-%{version}.tar.bz2.asc
-Patch0:		flashrom-r1002-r%{svnrev}.diff
-Patch1:		flashrom-svn_ver.diff
-Patch2:		flashrom-0001-Define-dmidecode-path-at-a-build-stage.patch
+Patch1:		flashrom-0001-Sync-with-svn-ver.-1180.patch
+Patch2:		flashrom-0002-Initial-commit-of-autotools-related-files.patch
+BuildRequires:	autoconf
+BuildRequires:	automake
 BuildRequires:	pciutils-devel
 BuildRequires:	zlib-devel
 %ifnarch ppc ppc64
@@ -29,24 +28,18 @@ and write new contents on the chips ("flash the chip").
 
 %prep
 %setup -q
-%patch0 -p1
-%patch1 -p0
+%patch1 -p1
 %patch2 -p1
 
 %build
-%ifarch ppc ppc64
-CFLAGS="%{optflags}" make %{?_smp_mflags} CONFIG_RAYER_SPI=no CONFIG_NIC3COM=no CONFIG_NICREALTEK=no
-%else
-CFLAGS="%{optflags}" make %{?_smp_mflags}
-%endif
+autoreconf -ivf
+%configure
+make %{?_smp_mflags}
+
 
 %install
 rm -rf $RPM_BUILD_ROOT
-%ifarch ppc ppc64
-make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} CONFIG_RAYER_SPI=no CONFIG_NIC3COM=no CONFIG_NICREALTEK=no
-%else
-make install DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix}
-%endif
+make install DESTDIR=$RPM_BUILD_ROOT
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -58,6 +51,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man8/%{name}.*
 
 %changelog
+* Fri Sep 24 2010 Peter Lemenkov <lemenkov at gmail.com> 0.9.2-6.svn1180
+- Added autotools support
+
 * Tue Sep 21 2010 Peter Lemenkov <lemenkov at gmail.com> 0.9.2-5.svn1180
 - Patch no.3 merged upstream
 


More information about the scm-commits mailing list