From 7335d16cdb98301dd0e4807afe43ab7eea5d4fb2 Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Mon, 15 Jun 2020 13:48:10 +0200 Subject: [PATCH 1/3] Makefile-vs-CMake.md --- doc/md/Development/Makefile-vs-CMake.md | 87 +++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 doc/md/Development/Makefile-vs-CMake.md diff --git a/doc/md/Development/Makefile-vs-CMake.md b/doc/md/Development/Makefile-vs-CMake.md new file mode 100644 index 000000000..ecf5288ec --- /dev/null +++ b/doc/md/Development/Makefile-vs-CMake.md @@ -0,0 +1,87 @@ +# Makefile vs CMake + +## Client + +The client can be compiled both with the historical Makefile and with a newer CMakeLists.txt. +At the moment both are maintained because they don't perfectly overlap yet. + +* *in_common*: src in /common +* *in_deps*: src in /client/deps +* *opt*: optional dependency +* *pc*: use pkg-config +* *sys*: system library + +| Feature | Makefile | CMake | Remarks | +|-----|---|---|---| +| verbose | V=1 | VERBOSE=1 | | +| warnings management | yes (1) | **no** | (1) cf Makefile.defs | +| compilation | in place | in build dir (1) | | +| user `CFLAGS`/`LDFLAGS` | honored (1) | **no/auto?** | (1) also `LDLIBS` and `INCLUDES_CLIENT` as envvars for more tuning | +| `PKG_CONFIG_ENV` | yes | **no/auto?** | | +| Mingw gnu printf | `_ISOC99_SOURCE` | `_ISOC99_SOURCE` | | +| C++ | c++11 | gnu++14 | | +| dep amiibo | in_deps | in_deps | | +| dep atomic | sys, for RPiZ | sys, for RPiZ | `-Wl,--as-needed -latomic -Wl,--no-as-needed` unless OSX | +| atomic detection | **none** | **none** | | +| dep bluez | opt, sys | opt, sys | | +| bluez detection | pc | pkg_search_module | | +| `SKIPBT` | yes | yes | | +| dep bzip2 | sys | sys | | +| bzip2 detection | **none** | **none**, Android:gitclone | | +| dep cliparser | in_deps | in_deps | | +| dep hardnested | in_deps | in_deps | | +| arch autodetection | (1) | (2) | (1) uname -m == 86|amd64; gcc -E -mavx512f? +-AVX512 (2) CMAKE_SYSTEM_PROCESSOR == x86|x86_64|i686|AMD64 (always incl. AVX512) | +| `cpu_arch` | yes | **no/auto?** | e.g. cpu_arch=generic for cross-compilation +| dep jansson | sys / in_deps | **in_deps only** | | +| jansson detection | pc | **none** | | +| `SKIPJANSSONSYSTEM` | yes | **no** | | +| dep lua | sys / in_deps(1) | **in_deps only**(2) | (1) manual def of `LUAPLATFORM` for mingw/macosx/linux (2) manual, different?, for Android too | +| lua detection | pc | **none** | | +| `SKIPLUASYSTEM` | yes | **no** | | +| lualibs/pm3_cmd.lua | yes | **add_custom_command used?** | +| lualibs/mfc_default_keys.lua | yes | **add_custom_command used?** | +| dep lz4 | | | (common) not yet used, future | +| dep libm | sys | sys | | +| libm detection | none | **none/auto?** | | +| dep mbedtls | in_common | in_common | no sys lib: missing support for CMAC in def conf (btw no .pc available) | +| dep python3 | opt, sys, <3.8 & 3.8 | opt, sys, <3.8 & 3.8 | | +| python3 detection | pc | pkg_search_module | | +| `SKIPPYTHON` | yes | yes | | +| dep pthread | sys | sys | | +| pthread detection | **none** | **none** | | +| `SKIPPTHREAD` | yes | yes | e.g. for termux | +| dep Qt | opt, sys, Qt5 & Qt4 | opt, sys, Qt5 | | +| Qt detection | pc(qt5)/pc(qt4)/`QTDIR`(1) (2) | find_package(qt5) (3) | (1) if `QTDIR`: hardcode path (2) OSX: pkg-config hook for Brew (3) OSX: add search path| +| `SKIPQT` | yes | yes | | +| dep readline | sys | sys | | +| readline detection | **none** (1) | find*(2), Android:getzip | (1) OSX: hardcoded path (2) additional paths for OSX | +| `SKIPREADLINE` | yes | yes | CLI not fully functional without Readline | +| dep reveng | in_deps | in_deps | | +| `SKIPREVENGTEST` | yes(1) | **no**(2) | (1) e.g. if cross-compilation (2) tests aren't compiled/ran with cmake | +| dep tinycbor | in_deps | in_deps | | +| dep whereami | sys / in_deps | **in_deps only** | | +| whereami detection | **search /usr/include/whereami.h** | **none** | no .pc available | +| `SKIPWHEREAMISYSTEM` | yes | **no** | | +| version | mkversion | mkversion | | +| install | yes (1) | **no** | (1) supports `DESTDIR`, `PREFIX`, `UDEV_PREFIX`. Installs resources as well, `INSTALL*RELPATH` | +| deb | no | partial? | | +| tarbin | yes, unused? | no | | +| Android cross- | **no** | yes | | +| SWIG Lua+Python embedded | **no** | *ongoing* | cf libpm3_experiments branch | +| libpm3 with SWIG Lua+Python| **no** | *ongoing* | cf libpm3_experiments branch | + +## Tools + +`makefile` only at the moment + +`SKIPGPU` + +## ARM + +`makefile` only at the moment + +`PLATFORM`, `PLATFORM_EXTRAS`, `DESTDIR`, `PREFIX`, `FWTAG` + +## Global + +`makefile` only at the moment From d75073590fbcc69d5afad71da3aedcae790356cc Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Mon, 15 Jun 2020 14:26:43 +0200 Subject: [PATCH 2/3] doc: minor --- doc/md/Development/Makefile-vs-CMake.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/md/Development/Makefile-vs-CMake.md b/doc/md/Development/Makefile-vs-CMake.md index ecf5288ec..6c2432c70 100644 --- a/doc/md/Development/Makefile-vs-CMake.md +++ b/doc/md/Development/Makefile-vs-CMake.md @@ -15,10 +15,10 @@ At the moment both are maintained because they don't perfectly overlap yet. |-----|---|---|---| | verbose | V=1 | VERBOSE=1 | | | warnings management | yes (1) | **no** | (1) cf Makefile.defs | -| compilation | in place | in build dir (1) | | +| compilation | in place | in build dir | | | user `CFLAGS`/`LDFLAGS` | honored (1) | **no/auto?** | (1) also `LDLIBS` and `INCLUDES_CLIENT` as envvars for more tuning | | `PKG_CONFIG_ENV` | yes | **no/auto?** | | -| Mingw gnu printf | `_ISOC99_SOURCE` | `_ISOC99_SOURCE` | | +| Mingw gnu printf | `_ISOC99_SOURCE` | `_ISOC99_SOURCE` | and in cbor.h: `__attribute__((format (__MINGW_PRINTF_FORMAT, 2, 3)))`| | C++ | c++11 | gnu++14 | | | dep amiibo | in_deps | in_deps | | | dep atomic | sys, for RPiZ | sys, for RPiZ | `-Wl,--as-needed -latomic -Wl,--no-as-needed` unless OSX | @@ -30,8 +30,8 @@ At the moment both are maintained because they don't perfectly overlap yet. | bzip2 detection | **none** | **none**, Android:gitclone | | | dep cliparser | in_deps | in_deps | | | dep hardnested | in_deps | in_deps | | -| arch autodetection | (1) | (2) | (1) uname -m == 86|amd64; gcc -E -mavx512f? +-AVX512 (2) CMAKE_SYSTEM_PROCESSOR == x86|x86_64|i686|AMD64 (always incl. AVX512) | -| `cpu_arch` | yes | **no/auto?** | e.g. cpu_arch=generic for cross-compilation +| hardn arch autodetect | (1) | (2) | (1) uname -m == 86 or amd64; gcc -E -mavx512f? +-AVX512 (2) CMAKE_SYSTEM_PROCESSOR == x86 or x86_64 or i686 or AMD64 (always incl. AVX512) | +| `cpu_arch` | yes | **no/auto?** | e.g. `cpu_arch=generic` for cross-compilation | dep jansson | sys / in_deps | **in_deps only** | | | jansson detection | pc | **none** | | | `SKIPJANSSONSYSTEM` | yes | **no** | | @@ -40,7 +40,7 @@ At the moment both are maintained because they don't perfectly overlap yet. | `SKIPLUASYSTEM` | yes | **no** | | | lualibs/pm3_cmd.lua | yes | **add_custom_command used?** | | lualibs/mfc_default_keys.lua | yes | **add_custom_command used?** | -| dep lz4 | | | (common) not yet used, future | +| dep lz4 | | | (in_common) not yet used, future | | dep libm | sys | sys | | | libm detection | none | **none/auto?** | | | dep mbedtls | in_common | in_common | no sys lib: missing support for CMAC in def conf (btw no .pc available) | From db9e0249133574ca68ccda6b5b355fe005e54fd6 Mon Sep 17 00:00:00 2001 From: tharexde Date: Mon, 15 Jun 2020 14:41:42 +0200 Subject: [PATCH 3/3] new entry regarding em4x40 demodulation --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce186a2b0..899d79a53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file. This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log... ## [unreleased][unreleased] + - Fix em4x50 demodulation error (@tharexde) - Fix `hf mfdes` authentification issues, DES working (@bkerler) - Add Android cross-compilation to client cmake (@dxl, @doegox) - Fix `emv scan` - now saves in current folder and uses unique names (@iceman1001)