[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