adapt makefile to use sudo, echo, usermod, adduser, getent as variables

This commit is contained in:
iceman1001 2022-10-16 09:19:13 +02:00
commit 250fdedeac
2 changed files with 19 additions and 11 deletions

View file

@ -248,28 +248,28 @@ ifeq ($(PLATFORM_CHANGED),true)
$(Q)$(MAKE) --no-print-directory -C recovery clean $(Q)$(MAKE) --no-print-directory -C recovery clean
$(Q)$(MAKE) --no-print-directory -C client clean $(Q)$(MAKE) --no-print-directory -C client clean
$(Q)$(MAKE) --no-print-directory -C tools/fpga_compress clean $(Q)$(MAKE) --no-print-directory -C tools/fpga_compress clean
$(Q)echo CACHED_PLATFORM=$(PLATFORM) > .Makefile.options.cache $(Q)$(ECHO) CACHED_PLATFORM=$(PLATFORM) > .Makefile.options.cache
$(Q)echo CACHED_PLATFORM_EXTRAS=$(PLATFORM_EXTRAS) >> .Makefile.options.cache $(Q)$(ECHO) CACHED_PLATFORM_EXTRAS=$(PLATFORM_EXTRAS) >> .Makefile.options.cache
$(Q)echo CACHED_PLATFORM_DEFS=$(PLATFORM_DEFS) >> .Makefile.options.cache $(Q)$(ECHO) CACHED_PLATFORM_DEFS=$(PLATFORM_DEFS) >> .Makefile.options.cache
endif endif
# configure system to ignore PM3 device as a modem (ModemManager blacklist, effective *only* if ModemManager is not using _strict_ policy) # configure system to ignore PM3 device as a modem (ModemManager blacklist, effective *only* if ModemManager is not using _strict_ policy)
# Read doc/md/ModemManager-Must-Be-Discarded.md for more info # Read doc/md/ModemManager-Must-Be-Discarded.md for more info
udev: udev:
sudo cp -rf driver/77-pm3-usb-device-blacklist.rules $(DESTDIR)$(UDEV_PREFIX)/77-pm3-usb-device-blacklist.rules $(SUDO) cp -rf driver/77-pm3-usb-device-blacklist.rules $(DESTDIR)$(UDEV_PREFIX)/77-pm3-usb-device-blacklist.rules
sudo udevadm control --reload-rules $(SUDO) udevadm control --reload-rules
# configure system to add user to the dialout group # configure system to add user to the dialout group and if bluetooth group exists, add user to it
# you need to logout, relogin to get this access right correct. # you need to logout, relogin to get this access right correct.
# Finally, you might need to run the proxmark3 client under SUDO on some systems # Finally, you might need to run the proxmark3 client under SUDO on some systems
accessrights: accessrights:
ifneq ($(wildcard /etc/arch-release),) ifneq ($(wildcard /etc/arch-release),)
#If user is running ArchLinux, use specific command and group #If user is running ArchLinux, use specific command and group
$(Q)sudo usermod -aG uucp $(USER) $(Q)$(SUDO) $(USERMOD) uucp $(USER)
$(Q)getent group bluetooth >/dev/null && sudo usermod -aG bluetooth $(USER) || true $(Q)$(GETENT_BL) >/dev/null && $(SUDO) $(USERMOD) bluetooth $(USER) || true
else else
$(Q)sudo adduser $(USER) dialout $(Q)$(SUDO) $(ADDUSER) $(USER) dialout
$(Q)getent group bluetooth >/dev/null && sudo adduser $(USER) bluetooth || true $(Q)$(GETENT_BL) >/dev/null && $(SUDO) $(ADDUSER) $(USER) bluetooth || true
endif endif
# easy printing of MAKE VARIABLES # easy printing of MAKE VARIABLES

View file

@ -37,7 +37,7 @@ FALSE = false
TAR = tar TAR = tar
TARFLAGS ?= -v --ignore-failed-read -r TARFLAGS ?= -v --ignore-failed-read -r
TARFLAGS += -C .. -f TARFLAGS += -C .. -f
CROSS ?= arm-none-eabi- CROSS ?= arm-none-eabi-
CC ?= gcc CC ?= gcc
CXX ?= g++ CXX ?= g++
SH = sh SH = sh
@ -47,6 +47,14 @@ SWIG = swig
CC_VERSION = $(shell $(CC) -dumpversion 2>/dev/null|sed 's/\..*//') CC_VERSION = $(shell $(CC) -dumpversion 2>/dev/null|sed 's/\..*//')
CC_VERSION := $(or $(strip $(CC_VERSION)),0) CC_VERSION := $(or $(strip $(CC_VERSION)),0)
ECHO = echo
SUDO = sudo
USERMOD = usermod -aG
ADDUSER = adduser
GETENT_BL = getent group bluetooth
PATHSEP=/ PATHSEP=/
PREFIX ?= /usr/local PREFIX ?= /usr/local
UDEV_PREFIX ?= /etc/udev/rules.d UDEV_PREFIX ?= /etc/udev/rules.d