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] diff --git a/Makefile.defs b/Makefile.defs index 493c50ccd..ffde9cec1 100644 --- a/Makefile.defs +++ b/Makefile.defs @@ -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 @@ -61,10 +62,14 @@ endif ifeq ($(USE_BREW),1) BREW_PREFIX = $(shell brew --prefix 2>/dev/null) ifeq ($(strip $(BREW_PREFIX)),) - MACPORTS_PREFIX ?= /opt/local + 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 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