mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 23:22:37 +02:00
Add DOS cross-compilation support to the Makefile
Add a README with build instructions. Corresponding to flashrom svn r963. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Rudolf Marek <r.marek@assembler.cz>
This commit is contained in:
parent
4ad4c745af
commit
50415d2e48
43
Makefile
43
Makefile
@ -2,6 +2,7 @@
|
|||||||
# This file is part of the flashrom project.
|
# This file is part of the flashrom project.
|
||||||
#
|
#
|
||||||
# Copyright (C) 2005 coresystems GmbH <stepan@coresystems.de>
|
# Copyright (C) 2005 coresystems GmbH <stepan@coresystems.de>
|
||||||
|
# Copyright (C) 2009,2010 Carl-Daniel Hailfinger
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License as published by
|
||||||
@ -20,15 +21,22 @@
|
|||||||
PROGRAM = flashrom
|
PROGRAM = flashrom
|
||||||
|
|
||||||
CC ?= gcc
|
CC ?= gcc
|
||||||
STRIP = strip
|
STRIP ?= strip
|
||||||
INSTALL = install
|
INSTALL = install
|
||||||
DIFF = diff
|
DIFF = diff
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
MANDIR ?= $(PREFIX)/share/man
|
MANDIR ?= $(PREFIX)/share/man
|
||||||
CFLAGS ?= -Os -Wall -Werror -Wshadow
|
CFLAGS ?= -Os -Wall -Wshadow
|
||||||
EXPORTDIR ?= .
|
EXPORTDIR ?= .
|
||||||
|
|
||||||
OS_ARCH = $(shell uname)
|
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)
|
ifneq ($(OS_ARCH), SunOS)
|
||||||
STRIP_ARGS = -s
|
STRIP_ARGS = -s
|
||||||
endif
|
endif
|
||||||
@ -40,6 +48,12 @@ ifeq ($(OS_ARCH), FreeBSD)
|
|||||||
CPPFLAGS += -I/usr/local/include
|
CPPFLAGS += -I/usr/local/include
|
||||||
LDFLAGS += -L/usr/local/lib
|
LDFLAGS += -L/usr/local/lib
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(OS_ARCH), DOS)
|
||||||
|
CPPFLAGS += -I../libgetopt -I../libpci/include
|
||||||
|
# Bus Pirate and Serprog are not supported under DOS.
|
||||||
|
CONFIG_BUSPIRATESPI = no
|
||||||
|
CONFIG_SERPROG = no
|
||||||
|
endif
|
||||||
|
|
||||||
CHIP_OBJS = jedec.o stm50flw0x0x.o w39v040c.o w39v080fa.o w29ee011.o \
|
CHIP_OBJS = jedec.o stm50flw0x0x.o w39v040c.o w39v080fa.o w29ee011.o \
|
||||||
sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \
|
sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \
|
||||||
@ -188,12 +202,26 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(NEED_PCI), yes)
|
ifeq ($(NEED_PCI), yes)
|
||||||
LIBS += -lpci
|
ifneq ($(OS_ARCH), DOS)
|
||||||
|
# FIXME This workaround is needed until libpci detection can handle
|
||||||
|
# cross-compiling for DOS.
|
||||||
|
CHECK_LIBPCI = yes
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(NEED_PCI), yes)
|
||||||
FEATURE_CFLAGS += -D'NEED_PCI=1'
|
FEATURE_CFLAGS += -D'NEED_PCI=1'
|
||||||
PROGRAMMER_OBJS += pcidev.o physmap.o hwaccess.o
|
PROGRAMMER_OBJS += pcidev.o physmap.o hwaccess.o
|
||||||
ifeq ($(OS_ARCH), NetBSD)
|
ifeq ($(OS_ARCH), NetBSD)
|
||||||
LIBS += -lpciutils # The libpci we want.
|
LIBS += -lpciutils # The libpci we want.
|
||||||
LIBS += -l$(shell uname -p) # For (i386|x86_64)_iopl(2).
|
LIBS += -l$(shell uname -p) # For (i386|x86_64)_iopl(2).
|
||||||
|
else
|
||||||
|
ifeq ($(OS_ARCH), DOS)
|
||||||
|
# FIXME There needs to be a better way to do this
|
||||||
|
LIBS += ../libpci/lib/libpci.a ../libgetopt/libgetopt.a
|
||||||
|
else
|
||||||
|
LIBS += -lpci
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -239,7 +267,7 @@ compiler:
|
|||||||
rm -f .test.c .test; exit 1)
|
rm -f .test.c .test; exit 1)
|
||||||
@rm -f .test.c .test
|
@rm -f .test.c .test
|
||||||
|
|
||||||
ifeq ($(NEED_PCI), yes)
|
ifeq ($(CHECK_LIBPCI), yes)
|
||||||
pciutils: compiler
|
pciutils: compiler
|
||||||
@printf "Checking for libpci headers... "
|
@printf "Checking for libpci headers... "
|
||||||
@$(shell ( echo "#include <pci/pci.h>"; \
|
@$(shell ( echo "#include <pci/pci.h>"; \
|
||||||
@ -315,6 +343,9 @@ tarball: export
|
|||||||
@rm -rf $(EXPORTDIR)/flashrom-$(RELEASENAME)
|
@rm -rf $(EXPORTDIR)/flashrom-$(RELEASENAME)
|
||||||
@echo Created $(EXPORTDIR)/flashrom-$(RELEASENAME).tar.bz2
|
@echo Created $(EXPORTDIR)/flashrom-$(RELEASENAME).tar.bz2
|
||||||
|
|
||||||
.PHONY: all clean distclean dep compiler pciutils features export tarball
|
djgpp-dos: clean
|
||||||
|
make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip WARNERROR=no OS_ARCH=DOS
|
||||||
|
|
||||||
|
.PHONY: all clean distclean dep compiler pciutils features export tarball dos
|
||||||
|
|
||||||
-include .dependencies
|
-include .dependencies
|
||||||
|
21
README
21
README
@ -42,7 +42,7 @@ Linux et al:
|
|||||||
|
|
||||||
* pciutils / libpci
|
* pciutils / libpci
|
||||||
* pciutils-devel / pciutils-dev / libpci-dev
|
* pciutils-devel / pciutils-dev / libpci-dev
|
||||||
* zlib-devel / zlib1g-dev (only needed if libpci is static)
|
* zlib-devel / zlib1g-dev (needed if libpci was compiled with libz support)
|
||||||
|
|
||||||
On FreeBSD, you need the following ports:
|
On FreeBSD, you need the following ports:
|
||||||
|
|
||||||
@ -75,6 +75,25 @@ To compile and run on Darwin/Mac OS X:
|
|||||||
Install DirectIO from coresystems GmbH.
|
Install DirectIO from coresystems GmbH.
|
||||||
DirectIO is available at http://www.coresystems.de/en/directio.
|
DirectIO is available at http://www.coresystems.de/en/directio.
|
||||||
|
|
||||||
|
To cross-compile on Linux for DOS:
|
||||||
|
|
||||||
|
Get RPMs of the cross compiler from the DJGPP site and install them:
|
||||||
|
djcross-binutils-2.19.1-10ap.i386.rpm
|
||||||
|
djcross-gcc-tools-4.4.1-1ap.i686.rpm
|
||||||
|
djcross-gcc-4.3.2-8ap.i686.rpm
|
||||||
|
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.
|
||||||
|
Enter the flashrom directory.
|
||||||
|
../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
|
||||||
|
or (above settings hardcoded)
|
||||||
|
make djgpp-dos
|
||||||
|
You might have to add WARNERROR=no to the make command line.
|
||||||
|
To run flashrom.exe, download http://clio.rice.edu/djgpp/csdpmi7b.zip and
|
||||||
|
make sure CWSDPMI.EXE is in the current directory.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user