mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +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
|
*.d
|
||||||
!Makefile.d/
|
|
||||||
*.o
|
*.o
|
||||||
/.doctrees
|
/.doctrees
|
||||||
/.features
|
/.features
|
||||||
|
@ -79,13 +79,9 @@ Maintainers List (try to look for most precise areas first)
|
|||||||
BUILD SYSTEM
|
BUILD SYSTEM
|
||||||
M: Peter Marheine <pmarheine@chromium.org>
|
M: Peter Marheine <pmarheine@chromium.org>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: Makefile*
|
|
||||||
F: meson*
|
F: meson*
|
||||||
F: Makefile*/
|
|
||||||
F: */meson*
|
F: */meson*
|
||||||
F: */Makefile*
|
|
||||||
F: util/ich_descriptors_tool/meson*
|
F: util/ich_descriptors_tool/meson*
|
||||||
F: util/ich_descriptors_tool/Makefile*
|
|
||||||
|
|
||||||
ERASE/WRITE ALGORITHM
|
ERASE/WRITE ALGORITHM
|
||||||
M: Aarya Chaumal <aarya.chaumal@gmail.com>
|
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
|
Building / installing / packaging
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
flashrom supports building with **make** and **meson**.
|
flashrom is built with **meson**. TLDR:
|
||||||
|
|
||||||
TLDR, building with meson
|
|
||||||
"""""""""""""""""""""""""
|
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@ -38,17 +35,6 @@ TLDR, building with meson
|
|||||||
For full detailed instructions, follow the information in
|
For full detailed instructions, follow the information in
|
||||||
:doc:`dev_guide/building_from_source`
|
: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
|
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
|
:maxdepth: 1
|
||||||
|
|
||||||
building_from_source
|
building_from_source
|
||||||
building_with_make
|
|
||||||
development_guide
|
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::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
|
devel
|
||||||
v_1_4
|
v_1_4
|
||||||
v_1_3
|
v_1_3
|
||||||
|
@ -5,13 +5,6 @@ set -e
|
|||||||
|
|
||||||
is_scan_build_env=0
|
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 \
|
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 \
|
atahpt atapromise atavia buspirate_spi ch341a_spi ch347_spi dediprog \
|
||||||
developerbox_spi digilent_spi dirtyjtag_spi drkaiser dummy ft2232_spi \
|
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_meson () {
|
||||||
build_dir=out
|
build_dir=out
|
||||||
meson_opts="-Dtests=enabled -Dman-pages=enabled -Ddocumentation=enabled"
|
meson_opts="-Dtests=enabled -Dman-pages=enabled -Ddocumentation=enabled"
|
||||||
@ -74,5 +49,4 @@ build_meson () {
|
|||||||
|
|
||||||
run_linter
|
run_linter
|
||||||
|
|
||||||
build_make
|
|
||||||
build_meson
|
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