# Hide full compilation line: ifneq ($(V),1) Q?=@ endif # To see full command lines, use make V=1 # been here DEFSBEENHERE = true CP = cp -a GZIP = gzip MKDIR = mkdir -p RM = rm -f RMDIR = rm -rf # rmdir only if dir is empty, tolerate failure RMDIR_SOFT = -rmdir MV = mv TOUCH = touch FALSE = false TAR = tar TARFLAGS ?= -v --ignore-failed-read -r TARFLAGS += -C .. -f CROSS ?= arm-none-eabi- CC = gcc CXX = g++ LD = g++ PATHSEP=/ PREFIX ?= /usr/local UDEV_PREFIX ?= /etc/udev/rules.d INSTALLBINRELPATH ?= bin INSTALLSHARERELPATH ?= share/proxmark3 INSTALLFWRELPATH ?= share/proxmark3/firmware INSTALLTOOLSRELPATH ?= share/proxmark3/tools INSTALLDOCSRELPATH ?= share/doc/proxmark3 platform = $(shell uname) DETECTED_OS=$(platform) ifeq ($(platform),Darwin) AR= /usr/bin/ar rcs RANLIB= /usr/bin/ranlib else AR= ar rcs RANLIB= ranlib endif DEFCFLAGS = -Wall -Werror -O3 # Some more warnings we want as errors: DEFCFLAGS += -Wcast-align -Wbad-function-cast -Wredundant-decls -Wmissing-prototypes -Wchar-subscripts -Wshadow -Wundef -Wwrite-strings -Wunused -Wuninitialized -Wpointer-arith -Winline -Wformat -Wformat-security -Winit-self -Wmissing-include-dirs -Wnested-externs -Wmissing-declarations -Wempty-body -Wignored-qualifiers -Woverride-init # Some more warnings we need first to eliminate, so temporarely tolerated: DEFCFLAGS += -Wno-error=cast-align # TODO?: #DEFCFLAGS += -Wunused-parameter -Wold-style-declaration -Wsign-compare -Wimplicit-fallthrough=3 -Wtype-limits -Wmissing-field-initializers -Wunused-but-set-parameter -Wswitch-enum -Wold-style-definition #DEFCFLAGS += -Wno-error=unused-parameter -Wno-error=old-style-declaration -Wno-error=sign-compare -Wno-error=implicit-fallthrough -Wno-error=type-limits -Wno-error=missing-field-initializers -Wno-error=unused-but-set-parameter -Wno-error=switch-enum -Wno-error=old-style-definition # unknown to clang: # -Wclobbered -Wmissing-parameter-type -Wcast-function-type # requires GCC 6: # -Wshift-negative-value ifeq ($(platform),Darwin) # their readline has strict-prototype issues DEFCFLAGS += -Wstrict-prototypes -Wno-error=strict-prototypes else DEFCFLAGS += -Wstrict-prototypes endif