mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 14:42:36 +02:00
Remove the Makefile
As was described in the version 1.4 release notes, this deletes the Makefile and supporting elements leaving Meson as the only supported buildsystem. Signed-off-by: Peter Marheine <pmarheine@chromium.org> Change-Id: Ib3cf22cf636ef9b70527b734ffa34aead2a74edd Reviewed-on: https://review.coreboot.org/c/flashrom/+/83673 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
This commit is contained in:
parent
03090fec0a
commit
133b112d09
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,5 +1,4 @@
|
||||
*.d
|
||||
!Makefile.d/
|
||||
*.o
|
||||
/.doctrees
|
||||
/.features
|
||||
|
@ -79,13 +79,9 @@ Maintainers List (try to look for most precise areas first)
|
||||
BUILD SYSTEM
|
||||
M: Peter Marheine <pmarheine@chromium.org>
|
||||
S: Maintained
|
||||
F: Makefile*
|
||||
F: meson*
|
||||
F: Makefile*/
|
||||
F: */meson*
|
||||
F: */Makefile*
|
||||
F: util/ich_descriptors_tool/meson*
|
||||
F: util/ich_descriptors_tool/Makefile*
|
||||
|
||||
ERASE/WRITE ALGORITHM
|
||||
M: Aarya Chaumal <aarya.chaumal@gmail.com>
|
||||
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* This file is part of the flashrom project.
|
||||
*
|
||||
* Copyright (C) 2011 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file determinate the target architecture. It should only be used
|
||||
* by the Makefile
|
||||
*/
|
||||
|
||||
#if defined (__i386__) || defined (__x86_64__) || defined(__amd64__)
|
||||
#define __FLASHROM_ARCH__ "x86"
|
||||
#elif defined (__mips) || defined (__mips__) || defined (__MIPS__) || defined (mips)
|
||||
#define __FLASHROM_ARCH__ "mips"
|
||||
#elif defined(__powerpc) || defined(__powerpc__) || defined(__powerpc64__) || defined(__POWERPC__) || \
|
||||
defined(__ppc__) || defined(__ppc64__) || defined(_M_PPC) || defined(_ARCH_PPC) || \
|
||||
defined(_ARCH_PPC64) || defined(__ppc)
|
||||
#define __FLASHROM_ARCH__ "ppc"
|
||||
#elif defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_ARM) || defined(_M_ARM) || defined(__arm) || \
|
||||
defined(__aarch64__)
|
||||
#define __FLASHROM_ARCH__ "arm"
|
||||
#elif defined (__sparc__) || defined (__sparc)
|
||||
#define __FLASHROM_ARCH__ "sparc"
|
||||
#elif defined (__alpha__)
|
||||
#define __FLASHROM_ARCH__ "alpha"
|
||||
#elif defined (__hppa__) || defined (__hppa)
|
||||
#define __FLASHROM_ARCH__ "hppa"
|
||||
#elif defined (__m68k__)
|
||||
#define __FLASHROM_ARCH__ "m68k"
|
||||
#elif defined (__riscv)
|
||||
#define __FLASHROM_ARCH__ "riscv"
|
||||
#elif defined (__sh__)
|
||||
#define __FLASHROM_ARCH__ "sh"
|
||||
#elif defined(__s390__) || defined(__s390x__) || defined(__zarch__)
|
||||
#define __FLASHROM_ARCH__ "s390"
|
||||
#elif defined(__arc__)
|
||||
#define __FLASHROM_ARCH__ "arc"
|
||||
#elif defined(__ARC64__)
|
||||
#define __FLASHROM_ARCH__ "arc64"
|
||||
#elif defined(__e2k__)
|
||||
#define __FLASHROM_ARCH__ "e2k"
|
||||
#else
|
||||
#define __FLASHROM_ARCH__ "unknown"
|
||||
#endif
|
||||
__FLASHROM_ARCH__
|
@ -1,6 +0,0 @@
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
return 0;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
#include <time.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
struct timespec res;
|
||||
clock_gettime(CLOCK_REALTIME, &res);
|
||||
return 0;
|
||||
}
|
@ -1,89 +0,0 @@
|
||||
/*
|
||||
* This file is part of the flashrom project.
|
||||
*
|
||||
* Copyright (C) 2011 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file determinate the target endian. It should only be used my the Makefile
|
||||
*/
|
||||
|
||||
#if defined (__i386__) || defined (__x86_64__) || defined(__amd64__)
|
||||
/* All x86 is little-endian. */
|
||||
#define __FLASHROM_LITTLE_ENDIAN__ 1
|
||||
#elif defined (__mips) || defined (__mips__) || defined (__MIPS__) || defined (mips)
|
||||
/* MIPS can be either endian. */
|
||||
#if defined (__MIPSEL) || defined (__MIPSEL__) || defined (_MIPSEL) || defined (MIPSEL)
|
||||
#define __FLASHROM_LITTLE_ENDIAN__ 1
|
||||
#elif defined (__MIPSEB) || defined (__MIPSEB__) || defined (_MIPSEB) || defined (MIPSEB)
|
||||
#define __FLASHROM_BIG_ENDIAN__ 1
|
||||
#endif
|
||||
#elif defined(__powerpc) || defined(__powerpc__) || defined(__powerpc64__) || defined(__POWERPC__) || \
|
||||
defined(__ppc__) || defined(__ppc64__) || defined(_M_PPC) || defined(_ARCH_PPC) || \
|
||||
defined(_ARCH_PPC64) || defined(__ppc)
|
||||
/* PowerPC can be either endian. */
|
||||
#if defined (_BIG_ENDIAN) || defined (__BIG_ENDIAN__)
|
||||
#define __FLASHROM_BIG_ENDIAN__ 1
|
||||
#elif defined (_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__)
|
||||
#define __FLASHROM_LITTLE_ENDIAN__ 1
|
||||
#endif
|
||||
#elif defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_ARM) || defined(_M_ARM) || defined(__arm) || \
|
||||
defined(__aarch64__)
|
||||
/* ARM can be either endian. */
|
||||
#if defined (__ARMEB__) || defined (__BIG_ENDIAN__)
|
||||
#define __FLASHROM_BIG_ENDIAN__ 1
|
||||
#elif defined (__ARMEL__) || defined (__LITTLE_ENDIAN__)
|
||||
#define __FLASHROM_LITTLE_ENDIAN__ 1
|
||||
#endif
|
||||
#elif defined (__sparc__) || defined (__sparc)
|
||||
/* SPARC is big endian in general (but allows to access data in little endian too). */
|
||||
#define __FLASHROM_BIG_ENDIAN__ 1
|
||||
#elif defined(__arc__)
|
||||
#if defined(__BIG_ENDIAN__)
|
||||
#define __FLASHROM_BIG_ENDIAN__ 1
|
||||
#else
|
||||
#define __FLASHROM_LITTLE_ENDIAN__ 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined (__FLASHROM_BIG_ENDIAN__) && !defined (__FLASHROM_LITTLE_ENDIAN__)
|
||||
/* If architecture-specific approaches fail try generic variants. First: BSD (works about everywhere). */
|
||||
#if !(defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(__WINDOWS__))
|
||||
#include <sys/param.h>
|
||||
#if defined (__BYTE_ORDER)
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
#define __FLASHROM_LITTLE_ENDIAN__
|
||||
#elif __BYTE_ORDER == __BIG_ENDIAN
|
||||
#define __FLASHROM_BIG_ENDIAN__
|
||||
#else
|
||||
#error Unknown byte order!
|
||||
#endif
|
||||
#endif /* defined __BYTE_ORDER */
|
||||
#endif /* !IS_WINDOWS */
|
||||
#if !defined (__FLASHROM_BIG_ENDIAN__) && !defined (__FLASHROM_LITTLE_ENDIAN__)
|
||||
/* Nonstandard libc-specific macros for determining endianness. */
|
||||
/* musl provides an endian.h as well... but it can not be detected from within C. */
|
||||
#if defined(__GLIBC__)
|
||||
#include <endian.h>
|
||||
#if BYTE_ORDER == LITTLE_ENDIAN
|
||||
#define __FLASHROM_LITTLE_ENDIAN__ 1
|
||||
#elif BYTE_ORDER == BIG_ENDIAN
|
||||
#define __FLASHROM_BIG_ENDIAN__ 1
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if defined(__FLASHROM_LITTLE_ENDIAN__)
|
||||
"little"
|
||||
#else
|
||||
"big"
|
||||
#endif
|
@ -1,3 +0,0 @@
|
||||
#include <ftdi.h>
|
||||
|
||||
enum ftdi_chip_type type = TYPE_232H;
|
@ -1,8 +0,0 @@
|
||||
#include <getopt.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
return 0;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
#include <linux/i2c-dev.h>
|
||||
#include <linux/i2c.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
return 0;
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
#include <mtd/mtd-user.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
return 0;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/spi/spidev.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
return 0;
|
||||
}
|
@ -1,67 +0,0 @@
|
||||
/*
|
||||
* This file is part of the flashrom project.
|
||||
*
|
||||
* Copyright (C) 2011 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file determinate the target os. It should only be used my the Makefile
|
||||
*/
|
||||
|
||||
// Solaris
|
||||
#if defined (__sun) && (defined(__i386) || defined(__amd64))
|
||||
#define __FLASHROM_OS__ "SunOS"
|
||||
// OS X
|
||||
#elif defined(__MACH__) && defined(__APPLE__)
|
||||
#define __FLASHROM_OS__ "Darwin"
|
||||
// FreeBSD
|
||||
#elif defined(__FreeBSD__)
|
||||
#define __FLASHROM_OS__ "FreeBSD"
|
||||
// FreeBSD with glibc-based userspace (e.g. Debian/kFreeBSD)
|
||||
#elif defined(__FreeBSD_kernel__) && defined(__GLIBC__)
|
||||
#define __FLASHROM_OS__ "FreeBSD-glibc"
|
||||
// DragonFlyBSD
|
||||
#elif defined(__DragonFly__)
|
||||
#define __FLASHROM_OS__ "DragonFlyBSD"
|
||||
// NetBSD
|
||||
#elif defined(__NetBSD__)
|
||||
#define __FLASHROM_OS__ "NetBSD"
|
||||
// OpenBSD
|
||||
#elif defined(__OpenBSD__)
|
||||
#define __FLASHROM_OS__ "OpenBSD"
|
||||
// DJGPP
|
||||
#elif defined(__DJGPP__)
|
||||
#define __FLASHROM_OS__ "DOS"
|
||||
// MinGW (always has _WIN32 available)
|
||||
#elif defined(__MINGW32__)
|
||||
#define __FLASHROM_OS__ "MinGW"
|
||||
// Cygwin (usually without _WIN32)
|
||||
#elif defined( __CYGWIN__)
|
||||
#define __FLASHROM_OS__ "Cygwin"
|
||||
// libpayload
|
||||
#elif defined(__LIBPAYLOAD__)
|
||||
#define __FLASHROM_OS__ "libpayload"
|
||||
// GNU Hurd
|
||||
#elif defined(__gnu_hurd__)
|
||||
#define __FLASHROM_OS__ "Hurd"
|
||||
// Linux
|
||||
#elif defined(__linux__)
|
||||
// There are various flags in use on Android apparently. __ANDROID__ seems to be the most trustworthy.
|
||||
#if defined(__ANDROID__)
|
||||
#define __FLASHROM_OS__ "Android"
|
||||
#else
|
||||
#define __FLASHROM_OS__ "Linux"
|
||||
#endif
|
||||
#else
|
||||
#define __FLASHROM_OS__ "unknown"
|
||||
#endif
|
||||
__FLASHROM_OS__
|
@ -1,8 +0,0 @@
|
||||
#include <pciutils/pci.h>
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
return 0;
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
#include <sys/utsname.h>
|
||||
struct utsname osinfo;
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
uname(&osinfo);
|
||||
return 0;
|
||||
}
|
@ -1,65 +0,0 @@
|
||||
#
|
||||
# This file is part of the flashrom project.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Here are functions and macros defined for the Makefile
|
||||
|
||||
define mark_unsupported
|
||||
$(foreach p,$1, \
|
||||
$(if $(filter $($(p)),yes), \
|
||||
$(eval UNSUPPORTED_FEATURES += $(p)=yes), \
|
||||
$(eval override $(p) := no)))
|
||||
endef
|
||||
|
||||
define filter_deps
|
||||
$(strip $(foreach p,$1, \
|
||||
$(if $(filter $($(p)),yes), \
|
||||
$(p))))
|
||||
endef
|
||||
|
||||
define disable_all
|
||||
$(foreach p,$1, \
|
||||
$(eval override $(p) := no))
|
||||
endef
|
||||
|
||||
# Run the C Preprocessor with file $1 and return the last line, removing quotes.
|
||||
define c_macro_test
|
||||
$(strip $(call debug_shell, $(CC) -E $1 | tail -1 | tr -d '"'))
|
||||
endef
|
||||
|
||||
define c_compile_test # $1: files to compile, $2: cflags
|
||||
$(call debug_shell, $(CC) -c -Wall -Werror $2 $1 -o /dev/null && echo yes || echo no)
|
||||
endef
|
||||
|
||||
define c_link_test # $1: file to compile and link, $2: cflags, $3: ldflags
|
||||
$(call debug_shell, $(CC) -Wall -Werror $2 $1 $3 -o /dev/null && echo yes || echo no)
|
||||
endef
|
||||
|
||||
define find_dependency
|
||||
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --exists $1 && echo yes || echo no)
|
||||
endef
|
||||
|
||||
define dependency_version
|
||||
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --modversion $1 2>/dev/null)
|
||||
endef
|
||||
|
||||
define has_dependency # $1: dependency, $2: action/target
|
||||
$(if $(findstring $(strip $1),yes), $(strip $2))
|
||||
endef
|
||||
|
||||
define dependency_cflags
|
||||
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --cflags $1 2>/dev/null)
|
||||
endef
|
||||
|
||||
define dependency_ldflags
|
||||
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --libs --static $1 2>/dev/null)
|
||||
endef
|
16
README.rst
16
README.rst
@ -23,10 +23,7 @@ Please see the flashrom(8) manpage :doc:`classic_cli_manpage`.
|
||||
Building / installing / packaging
|
||||
---------------------------------
|
||||
|
||||
flashrom supports building with **make** and **meson**.
|
||||
|
||||
TLDR, building with meson
|
||||
"""""""""""""""""""""""""
|
||||
flashrom is built with **meson**. TLDR:
|
||||
|
||||
::
|
||||
|
||||
@ -38,17 +35,6 @@ TLDR, building with meson
|
||||
For full detailed instructions, follow the information in
|
||||
:doc:`dev_guide/building_from_source`
|
||||
|
||||
TLDR, building with make
|
||||
""""""""""""""""""""""""
|
||||
|
||||
::
|
||||
|
||||
make
|
||||
make install
|
||||
|
||||
For full detailed instructions, follow the information in
|
||||
:doc:`dev_guide/building_with_make`
|
||||
|
||||
Contact
|
||||
-------
|
||||
|
||||
|
@ -1,195 +0,0 @@
|
||||
Building with make
|
||||
==================
|
||||
|
||||
TLDR
|
||||
----
|
||||
|
||||
::
|
||||
|
||||
make
|
||||
make install
|
||||
|
||||
Build instructions
|
||||
------------------
|
||||
|
||||
**To build flashrom you need to install the following software:**
|
||||
|
||||
* C compiler (GCC / clang)
|
||||
* pkg-config
|
||||
|
||||
* pciutils+libpci (if you want support for mainboard or PCI device flashing)
|
||||
* libusb (if you want FT2232, Dediprog or USB-Blaster support)
|
||||
* libftdi (if you want FT2232 or USB-Blaster support)
|
||||
* libjaylink (if you want support for SEGGER J-Link and compatible devices)
|
||||
* NI-845x driver & library package (if you want support for NI-845x devices; uses a proprietary driver)
|
||||
|
||||
**Linux et al:**
|
||||
|
||||
* pciutils / libpci
|
||||
* pciutils-devel / pciutils-dev / libpci-dev
|
||||
* zlib-devel / zlib1g-dev (needed if libpci was compiled with libz support)
|
||||
|
||||
**On FreeBSD, you need the following ports:**
|
||||
|
||||
* devel/gmake
|
||||
* devel/libpci
|
||||
|
||||
**On OpenBSD, you need the following ports:**
|
||||
|
||||
* devel/gmake
|
||||
* sysutils/pciutils
|
||||
|
||||
**To compile on Linux, use**::
|
||||
|
||||
make
|
||||
|
||||
**To compile on FreeBSD, OpenBSD or DragonFly BSD, use**::
|
||||
|
||||
gmake
|
||||
|
||||
**To compile on Nexenta, use**::
|
||||
|
||||
make
|
||||
|
||||
**To compile on Solaris, use**::
|
||||
|
||||
gmake LDFLAGS="-L$pathtolibpci" CC="gcc -I$pathtopciheaders" CFLAGS=-O2
|
||||
|
||||
**To compile on NetBSD (with pciutils, libftdi, libusb installed in /usr/pkg/), use**::
|
||||
|
||||
gmake
|
||||
|
||||
**To compile and run on Darwin/Mac OS X:**
|
||||
|
||||
Install DirectHW from coresystems GmbH.
|
||||
DirectHW is available at https://www.coreboot.org/DirectHW .
|
||||
|
||||
**To compile on Windows:**
|
||||
|
||||
Install MSYS tools (and the NI-845x drivers if desired) as described in
|
||||
:ref:`installing-dependencies`.
|
||||
|
||||
To build with support for NI-845x::
|
||||
|
||||
make HAS_LIB_NI845X=yes CONFIG_NI845X_SPI=yes
|
||||
|
||||
**To cross-compile on Linux for DOS:**
|
||||
|
||||
Get packages of the DJGPP cross compiler and install them:
|
||||
|
||||
* djgpp-filesystem djgpp-gcc djgpp-cpp djgpp-runtime djgpp-binutils
|
||||
|
||||
As an alternative, the DJGPP web site offers packages for download as well:
|
||||
|
||||
* djcross-binutils-2.29.1-1ap.x86_64.rpm
|
||||
* djcross-gcc-7.2.0-1ap.x86_64.rpm
|
||||
* djcrx-2.05-5.x86_64.rpm
|
||||
|
||||
The cross toolchain packages for your distribution may have slightly different
|
||||
names (look for packages named *djgpp*).
|
||||
|
||||
Alternatively, you could use a script to build it from scratch:
|
||||
https://github.com/andrewwutw/build-djgpp
|
||||
|
||||
You will need the libpci and libgetopt library source trees and
|
||||
their compiled static libraries and header files installed in some
|
||||
directory say libpci-libgetopt/, which will be later specified with
|
||||
LIBS_BASE parameter during flashrom compilation. Easiest way to
|
||||
handle it is to put pciutils, libgetopt and flashrom directories
|
||||
in one subdirectory. There will be an extra subdirectory libpci-libgetopt
|
||||
created, which will contain compiled libpci and libgetopt.
|
||||
|
||||
Download pciutils 3.5.6 and apply https://flashrom.org/File:Pciutils-3.5.6.patch.gz
|
||||
Compile pciutils, using following command line::
|
||||
|
||||
make ZLIB=no DNS=no HOST=i386-djgpp-djgpp CROSS_COMPILE=i586-pc-msdosdjgpp- \
|
||||
PREFIX=/ DESTDIR=$PWD/../libpci-libgetopt \
|
||||
STRIP="--strip-program=i586-pc-msdosdjgpp-strip -s" install install-lib
|
||||
|
||||
Download and compile with 'make' https://flashrom.org/File:Libgetopt.tar.gz
|
||||
|
||||
Copy the libgetopt.a to ../libpci-libgetopt/lib and
|
||||
getopt.h to ../libpci-libgetopt/include
|
||||
|
||||
Enter the flashrom directory::
|
||||
|
||||
make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip LIBS_BASE=../libpci-libgetopt/ strip
|
||||
|
||||
If you like, you can compress the resulting executable with UPX::
|
||||
|
||||
upx -9 flashrom.exe
|
||||
|
||||
To run flashrom.exe, download https://flashrom.org/File:Csdpmi7b.zip and
|
||||
unpack CWSDPMI.EXE into the current directory or one in PATH.
|
||||
|
||||
**To cross-compile on Linux for Windows:**
|
||||
|
||||
Get packages of the MinGW cross compiler and install them::
|
||||
|
||||
mingw32-filesystem mingw32-cross-cpp mingw32-cross-binutils mingw32-cross-gcc
|
||||
mingw32-runtime mingw32-headers
|
||||
|
||||
The cross toolchain packages for your distribution may have slightly different
|
||||
names (look for packages named *mingw*).
|
||||
PCI-based programmers (internal etc.) are not supported on Windows.
|
||||
Run (change CC= and STRIP= settings where appropriate)::
|
||||
|
||||
make CC=i686-w64-mingw32-gcc STRIP=i686-w64-mingw32-strip
|
||||
|
||||
**Processor architecture dependent features:**
|
||||
|
||||
On non-x86 architectures a few programmers don't work (yet) because they
|
||||
use port-based I/O which is not directly available on non-x86. Those
|
||||
programmers will be disabled automatically if you run "make".
|
||||
|
||||
**Compiler quirks:**
|
||||
|
||||
If you are using clang and if you want to enable only one driver, you may hit an
|
||||
overzealous compiler warning from clang. Compile with "make WARNERROR=no" to
|
||||
force it to continue and enjoy.
|
||||
|
||||
**Bindings:**
|
||||
|
||||
Foreign function interface bindings for the rust language are included in the
|
||||
bindings folder. These are not compiled as part of the normal build process.
|
||||
See the readme under bindings/rust for more information.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
In order to install flashrom and the manpage into /usr/local, type::
|
||||
|
||||
make install
|
||||
|
||||
For installation in a different directory use DESTDIR, e.g. like this::
|
||||
|
||||
make DESTDIR=/usr install
|
||||
|
||||
If you have insufficient permissions for the destination directory, use sudo
|
||||
by adding sudo in front of the commands above.
|
||||
|
||||
|
||||
Packaging
|
||||
---------
|
||||
|
||||
To package flashrom and remove dependencies on Git, either use::
|
||||
|
||||
make export
|
||||
|
||||
or::
|
||||
|
||||
make tarball
|
||||
|
||||
``make export`` will export all flashrom files from the Git repository at
|
||||
revision HEAD into a directory named ``$EXPORTDIR/flashrom-$RELEASENAME``
|
||||
and will additionally add a ``versioninfo.inc`` file in that directory to
|
||||
contain the Git revision of the exported tree and a date for the manual
|
||||
page.
|
||||
|
||||
``make tarball`` will simply tar up the result of make export and compress
|
||||
it with bzip2.
|
||||
|
||||
The snapshot tarballs are the result of ``make tarball`` and require no
|
||||
further processing. Some git files (for example the rust bindings) are omitted
|
||||
from the tarball, as controlled by the .gitattributes files.
|
@ -5,5 +5,4 @@ Developers documentation
|
||||
:maxdepth: 1
|
||||
|
||||
building_from_source
|
||||
building_with_make
|
||||
development_guide
|
||||
|
25
doc/release_notes/devel.rst
Normal file
25
doc/release_notes/devel.rst
Normal file
@ -0,0 +1,25 @@
|
||||
===============================
|
||||
Recent development (unreleased)
|
||||
===============================
|
||||
|
||||
This document describes the major changes that are expected to be included in
|
||||
the next release of flashrom and which are currently only available by source
|
||||
code checkout (see :doc:`../dev_guide/building_from_source`). These changes
|
||||
may be further revised before the next release.
|
||||
|
||||
Known issues
|
||||
============
|
||||
|
||||
AMD-based PCs with FCH are unable to read flash contents for internal (BIOS
|
||||
flash) chips larger than 16 MB, and attempting to do so may crash the system.
|
||||
Systems with AMD "Promontory" IO extenders (mostly "Zen" desktop platforms) are
|
||||
not currently supported.
|
||||
|
||||
https://ticket.coreboot.org/issues/370
|
||||
|
||||
Build only supported with Meson
|
||||
===============================
|
||||
|
||||
As documented in the :doc:`v1.4 release notes <v_1_4>`, support for building
|
||||
flashrom with make has been removed; all Makefiles have been deleted. Meson is
|
||||
now the only supported tool for building flashrom from source.
|
@ -4,5 +4,6 @@ Release notes
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
devel
|
||||
v_1_4
|
||||
v_1_3
|
||||
|
@ -5,13 +5,6 @@ set -e
|
||||
|
||||
is_scan_build_env=0
|
||||
|
||||
make_programmer_opts="INTERNAL INTERNAL_X86 SERPROG RAYER_SPI RAIDEN_DEBUG_SPI PONY_SPI NIC3COM \
|
||||
GFXNVIDIA SATASII ATAHPT ATAVIA ATAPROMISE FT2232_SPI USBBLASTER_SPI MSTARDDC_SPI \
|
||||
PICKIT2_SPI STLINKV3_SPI PARADE_LSPCON MEDIATEK_I2C_SPI REALTEK_MST_I2C_SPI DUMMY \
|
||||
DRKAISER NICREALTEK NICNATSEMI NICINTEL NICINTEL_SPI NICINTEL_EEPROM OGP_SPI \
|
||||
BUSPIRATE_SPI DEDIPROG DEVELOPERBOX_SPI SATAMV LINUX_MTD LINUX_SPI IT8212 \
|
||||
CH341A_SPI CH347_SPI DIGILENT_SPI DIRTYJTAG_SPI JLINK_SPI ASM106X"
|
||||
|
||||
meson_programmer_opts="all auto group_ftdi group_i2c group_jlink group_pci group_serial group_usb \
|
||||
atahpt atapromise atavia buspirate_spi ch341a_spi ch347_spi dediprog \
|
||||
developerbox_spi digilent_spi dirtyjtag_spi drkaiser dummy ft2232_spi \
|
||||
@ -31,24 +24,6 @@ run_linter() {
|
||||
}
|
||||
|
||||
|
||||
build_make () {
|
||||
make clean
|
||||
make -j $(nproc) CONFIG_EVERYTHING=yes
|
||||
|
||||
# In case of clang analyzer we don't want to run it on
|
||||
# each programmer individually. Thus, just return here.
|
||||
if [ ${is_scan_build_env} -eq 1 ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
for option in ${make_programmer_opts}; do
|
||||
echo "Building ${option}"
|
||||
make clean
|
||||
make -j $(nproc) CONFIG_NOTHING=yes CONFIG_${option}=yes
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
build_meson () {
|
||||
build_dir=out
|
||||
meson_opts="-Dtests=enabled -Dman-pages=enabled -Ddocumentation=enabled"
|
||||
@ -74,5 +49,4 @@ build_meson () {
|
||||
|
||||
run_linter
|
||||
|
||||
build_make
|
||||
build_meson
|
||||
|
@ -1,83 +0,0 @@
|
||||
#
|
||||
# This file is part of the flashrom project.
|
||||
#
|
||||
# This Makefile works standalone, but it is usually called from the main
|
||||
# Makefile in the flashrom directory.
|
||||
|
||||
include ../../Makefile.include
|
||||
|
||||
PROGRAM=ich_descriptors_tool
|
||||
EXTRAINCDIRS = ../../ .
|
||||
DEPPATH = .dep
|
||||
OBJATH = .obj
|
||||
SHAREDSRC = ich_descriptors.c
|
||||
SHAREDSRCDIR = ../..
|
||||
# If your compiler spits out excessive warnings, run make WARNERROR=no
|
||||
# You shouldn't have to change this flag.
|
||||
WARNERROR ?= yes
|
||||
|
||||
SRC = $(wildcard *.c)
|
||||
|
||||
# If the user has specified custom CFLAGS, all CFLAGS settings below will be
|
||||
# completely ignored by gnumake.
|
||||
CFLAGS ?= -Os -Wall -Wshadow
|
||||
override CFLAGS += -I$(SHAREDSRCDIR)/include
|
||||
|
||||
# Auto determine HOST_OS and TARGET_OS if they are not set as argument
|
||||
HOST_OS ?= $(shell uname)
|
||||
TARGET_OS := $(call c_macro_test, ../../Makefile.d/os_test.h)
|
||||
|
||||
ifeq ($(findstring MINGW, $(HOST_OS)), MINGW)
|
||||
# Explicitly set CC = gcc on MinGW, otherwise: "cc: command not found".
|
||||
CC = gcc
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_OS), DOS)
|
||||
EXEC_SUFFIX := .exe
|
||||
# DJGPP has odd uint*_t definitions which cause lots of format string warnings.
|
||||
CFLAGS += -Wno-format
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_OS), MinGW)
|
||||
EXEC_SUFFIX := .exe
|
||||
# Some functions provided by Microsoft do not work as described in C99 specifications. This macro fixes that
|
||||
# for MinGW. See http://sourceforge.net/p/mingw-w64/wiki2/printf%20and%20scanf%20family/
|
||||
CFLAGS += -D__USE_MINGW_ANSI_STDIO=1
|
||||
endif
|
||||
|
||||
ifeq ($(WARNERROR), yes)
|
||||
CFLAGS += -Werror
|
||||
endif
|
||||
|
||||
|
||||
FLASHROM_CFLAGS += -MMD -MP -MF $(DEPPATH)/$(@F).d
|
||||
# enables functions that populate the descriptor structs from plain binary dumps
|
||||
FLASHROM_CFLAGS += -D ICH_DESCRIPTORS_FROM_DUMP_ONLY
|
||||
FLASHROM_CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||
|
||||
OBJ = $(OBJATH)/$(SRC:%.c=%.o)
|
||||
|
||||
SHAREDOBJ = $(OBJATH)/$(notdir $(SHAREDSRC:%.c=%.o))
|
||||
|
||||
all:$(PROGRAM)$(EXEC_SUFFIX)
|
||||
|
||||
$(OBJ): $(OBJATH)/%.o : %.c
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) -o $@ -c $<
|
||||
|
||||
# this enables us to share source files without simultaneously sharing .o files
|
||||
# with flashrom, which would lead to unexpected results (w/o running make clean)
|
||||
$(SHAREDOBJ): $(OBJATH)/%.o : $(SHAREDSRCDIR)/%.c
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) -o $@ -c $<
|
||||
|
||||
$(PROGRAM)$(EXEC_SUFFIX): $(OBJ) $(SHAREDOBJ)
|
||||
$(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJ) $(SHAREDOBJ)
|
||||
|
||||
# We don't use EXEC_SUFFIX here because we want to clean everything.
|
||||
clean:
|
||||
rm -f $(PROGRAM) $(PROGRAM).exe
|
||||
rm -rf $(DEPPATH) $(OBJATH)
|
||||
|
||||
# Include the dependency files.
|
||||
-include $(shell mkdir -p $(DEPPATH) $(OBJATH) 2>/dev/null) $(wildcard $(DEPPATH)/*)
|
||||
|
||||
.PHONY: all clean
|
Loading…
x
Reference in New Issue
Block a user