From 456dc8f245c164f17054528c8bc0f6ff8cf939fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lteri=C5=9F=20Ero=C4=9Flu?= Date: Sun, 22 Aug 2021 20:40:29 +0300 Subject: [PATCH 1/6] Improve Macports support --- Makefile.defs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/Makefile.defs b/Makefile.defs index 493c50ccd..3fcc94044 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -21,9 +21,9 @@ TAR = tar TARFLAGS ?= -v --ignore-failed-read -r TARFLAGS += -C .. -f CROSS ?= arm-none-eabi- -CC = gcc -CXX = g++ -LD = g++ +CC ?= gcc +CXX ?= g++ +LD ?= g++ SH = sh BASH = bash PERL = perl @@ -50,7 +50,8 @@ else endif ifeq ($(platform),Darwin) - USE_BREW = 1 + USE_BREW ?= 1 + USE_MACPORTS ?= 0 AR= /usr/bin/ar rcs RANLIB= /usr/bin/ranlib else @@ -60,11 +61,15 @@ endif ifeq ($(USE_BREW),1) BREW_PREFIX = $(shell brew --prefix 2>/dev/null) - ifeq ($(strip $(BREW_PREFIX)),) - MACPORTS_PREFIX ?= /opt/local + ifneq ($(strip $(BREW_PREFIX)),) + USE_BREW = 0 endif endif +ifeq ($(USE_MACPORTS),1) + MACPORTS_PREFIX ?= /opt/local +endif + ifeq ($(DEBUG),1) DEFCXXFLAGS = -g -O0 -pipe DEFCFLAGS = -g -O0 -fstrict-aliasing -pipe From fece7df0d701cec280f86b34f9b15fbc123cf937 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lteri=C5=9F=20Ero=C4=9Flu?= Date: Sun, 22 Aug 2021 20:46:54 +0300 Subject: [PATCH 2/6] Realign import order for compiling This is needed for macports installations --- client/Makefile | 62 +++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/client/Makefile b/client/Makefile index 57c1ea129..a2e41dcd9 100644 --- a/client/Makefile +++ b/client/Makefile @@ -25,20 +25,21 @@ vpath %.dic dictionaries OBJDIR = obj ifeq ($(USE_BREW),1) - ifdef MACPORTS_PREFIX - INCLUDES += -I$(MACPORTS_PREFIX)/include - LDLIBS += -L$(MACPORTS_PREFIX)/lib - PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(MACPORTS_PREFIX)/lib/pkgconfig - PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(MACPORTS_PREFIX)/libexec/qt/lib/pkgconfig - PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(MACPORTS_PREFIX)/libexec/qt5/lib/pkgconfig - else - INCLUDES += -I$(BREW_PREFIX)/include - LDLIBS += -L$(BREW_PREFIX)/lib - PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(BREW_PREFIX)/opt/qt/lib/pkgconfig - PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(BREW_PREFIX)/opt/qt5/lib/pkgconfig - endif + INCLUDES += -I$(BREW_PREFIX)/include + LDLIBS += -L$(BREW_PREFIX)/lib + PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(BREW_PREFIX)/opt/qt/lib/pkgconfig + PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(BREW_PREFIX)/opt/qt5/lib/pkgconfig endif +ifdef ($(USE_MACPORTS),1) + INCLUDES += -I$(MACPORTS_PREFIX)/include + LDLIBS += -L$(MACPORTS_PREFIX)/lib + PKG_CONFIG_ENV := PKG_CONFIG_PATH=$(MACPORTS_PREFIX)/lib/pkgconfig +endif + + +PM3INCLUDES = + ################### # local libraries # ################### @@ -120,19 +121,19 @@ MBEDTLSLIBCLIENTRELPATH = ../../client # not distributed as system library STATICLIBS += $(AMIIBOLIB) LDLIBS += $(AMIIBOLIBLD) -INCLUDES += $(AMIIBOLIBINC) +PM3INCLUDES += $(AMIIBOLIBINC) ## Cliparser / Argtable3 # not distributed as system library STATICLIBS += $(CLIPARSERLIB) LDLIBS += $(CLIPARSERLIBLD) -INCLUDES += $(CLIPARSERLIBINC) +PM3INCLUDES += $(CLIPARSERLIBINC) ## Hardnested # not distributed as system library STATICLIBS += $(HARDNESTEDLIB) LDLIBS +=$(HARDNESTEDLIBLD) -INCLUDES += $(HARDNESTEDLIBINC) +PM3INCLUDES += $(HARDNESTEDLIBINC) ## Lua ifneq ($(SKIPLUASYSTEM),1) @@ -152,7 +153,7 @@ ifneq ($(SKIPLUASYSTEM),1) endif STATICLIBS += $(LUALIB) LDLIBS += $(LUALIBLD) -INCLUDES += $(LUALIBINC) +PM3INCLUDES += $(LUALIBINC) ## Jansson # Jansson section needs to be after Lua to avoid interferences on macOS if a locally incompatible Lua was available, see PR 1155 @@ -168,25 +169,25 @@ ifneq ($(SKIPJANSSONSYSTEM),1) endif STATICLIBS += $(JANSSONLIB) LDLIBS += $(JANSSONLIBLD) -INCLUDES += $(JANSSONLIBINC) +PM3INCLUDES += $(JANSSONLIBINC) ## mbed TLS # system library cannot be used because it is compiled by default without CMAC support STATICLIBS += $(MBEDTLSLIB) LDLIBS += $(MBEDTLSLIBLD) -INCLUDES += $(MBEDTLSLIBINC) +PM3INCLUDES += $(MBEDTLSLIBINC) ## Reveng # not distributed as system library STATICLIBS += $(REVENGLIB) LDLIBS += $(REVENGLIBLD) -INCLUDES += $(REVENGLIBINC) +PM3INCLUDES += $(REVENGLIBINC) ## Tinycbor # not distributed as system library STATICLIBS += $(TINYCBORLIB) LDLIBS += $(TINYCBORLIBLD) -INCLUDES += $(TINYCBORLIBINC) +PM3INCLUDES += $(TINYCBORLIBINC) ## Whereami ifneq ($(SKIPWHEREAMISYSTEM),1) @@ -199,7 +200,7 @@ ifneq ($(SKIPWHEREAMISYSTEM),1) endif STATICLIBS += $(WHEREAMILIB) LDLIBS += $(WHEREAMILIBLD) -INCLUDES += $(WHEREAMILIBINC) +PM3INCLUDES += $(WHEREAMILIBINC) #################### # system libraries # @@ -227,7 +228,7 @@ ifneq ($(SKIPBT),1) endif endif LDLIBS += $(BTLIBLD) -INCLUDES += $(BTLIBINC) +PM3INCLUDES += $(BTLIBINC) ## Math LDLIBS += -lm @@ -258,7 +259,7 @@ ifneq ($(SKIPPYTHON),1) endif endif LDLIBS += $(PYTHONLIBLD) -INCLUDES += $(PYTHONLIBINC) +PM3INCLUDES += $(PYTHONLIBINC) ## QT5 (or QT4 fallback) (optional) ifneq ($(SKIPQT),1) @@ -303,13 +304,14 @@ CXXINCLUDES += $(QTINCLUDES) ## Readline ifneq ($(SKIPREADLINE),1) ifeq ($(USE_BREW),1) - ifdef MACPORTS_PREFIX - INCLUDES += -I$(MACPORTS_PREFIX)/include/readline - else - LDLIBS += -L$(BREW_PREFIX)/opt/readline/lib - INCLUDES += -I$(BREW_PREFIX)/opt/readline/include - endif + LDLIBS += -L$(BREW_PREFIX)/opt/readline/lib + PM3INCLUDES += -I$(BREW_PREFIX)/opt/readline/include endif + + ifeq ($(USE_MACPORTS),1) + PM3INCLUDES += -I$(MACPORTS_PREFIX)/include/readline + endif + LDLIBS += -lreadline READLINE_FOUND = 1 endif @@ -331,7 +333,7 @@ endif CFLAGS ?= $(DEFCFLAGS) # We cannot just use CFLAGS+=... because it has impact on sub-makes if CFLAGS is defined in env: PM3CFLAGS = $(CFLAGS) -PM3CFLAGS += -I./src -I./include -I../include -I../common -I../common_fpga $(INCLUDES) +PM3CFLAGS += -I./src -I./include -I../include -I../common -I../common_fpga $(PM3INCLUDES) $(INCLUDES) # WIP Testing #PM3CFLAGS += -std=c11 -pedantic From d362896efcc055af567de3395a2b9202f0ef67ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lteri=C5=9F=20Ero=C4=9Flu?= Date: Sun, 22 Aug 2021 21:03:39 +0300 Subject: [PATCH 3/6] Make LD run on CXX instead --- Makefile.defs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.defs b/Makefile.defs index 3fcc94044..54510176d 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -23,7 +23,7 @@ TARFLAGS += -C .. -f CROSS ?= arm-none-eabi- CC ?= gcc CXX ?= g++ -LD ?= g++ +LD = $(CXX) SH = sh BASH = bash PERL = perl From 3a67279832e882ff7a89514d99ece7670b2467c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lteri=C5=9F=20Ero=C4=9Flu?= Date: Sun, 22 Aug 2021 21:30:06 +0300 Subject: [PATCH 4/6] Update Makefile.defs --- Makefile.defs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile.defs b/Makefile.defs index 54510176d..6b22f07ab 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -21,9 +21,9 @@ TAR = tar TARFLAGS ?= -v --ignore-failed-read -r TARFLAGS += -C .. -f CROSS ?= arm-none-eabi- -CC ?= gcc -CXX ?= g++ -LD = $(CXX) +CC = gcc +CXX = g++ +LD = g++ SH = sh BASH = bash PERL = perl From 3168a62b2ef66aa42e5941f3d97fa28528c708bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lteri=C5=9F=20Ero=C4=9Flu?= Date: Sun, 22 Aug 2021 21:49:49 +0300 Subject: [PATCH 5/6] Update Makefile.defs --- Makefile.defs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.defs b/Makefile.defs index 6b22f07ab..ffde9cec1 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -61,7 +61,7 @@ endif ifeq ($(USE_BREW),1) BREW_PREFIX = $(shell brew --prefix 2>/dev/null) - ifneq ($(strip $(BREW_PREFIX)),) + ifeq ($(strip $(BREW_PREFIX)),) USE_BREW = 0 endif endif From 8d4f1f0461edf1429446734a5c85dd279c89d501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lteri=C5=9F=20Ero=C4=9Flu?= Date: Sat, 28 Aug 2021 19:55:16 +0300 Subject: [PATCH 6/6] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02277ab23..e4920ee66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac - Fix - move des functions to libcrypto (@merlokk) - Added `CLIGetOptionList` to cliparser that makes it easier to implement text options in the cli (@merlokk) - Added experimental support for macOS users utilizing MacPorts instead of Homebrew (@linuxgemini) + - Added additional support for macOS users utilizing MacPorts (@linuxgemini) - Added `pm3_online_check.py` - a script to verify and initialize a Proxmark3 RDV4 device (@iceman1001) ## [midsummer.4.13441][2021-06-25]