proxmark3/common/Makefile.hal

192 lines
7.1 KiB
Makefile
Raw Normal View History

2019-06-02 04:49:28 +08:00
# Default platform if no platform specified
PLATFORM?=PM3RDV4
2019-06-02 16:17:52 +08:00
# Default standalone if no standalone specified
# (you can set explicitly STANDALONE= to disable standalone modes)
STANDALONE?=LF_SAMYRUN
2019-06-02 04:49:28 +08:00
2019-06-01 06:23:38 +08:00
define KNOWN_DEFINITIONS
Known definitions:
+==========================================================+
| PLATFORM | DESCRIPTION |
+==========================================================+
| PM3RDV4 (def) | Proxmark3 rdv4 with AT91SAM7S512 |
+----------------------------------------------------------+
| PM3EVO | Proxmark3 EVO with AT91SAM7S512 |
+----------------------------------------------------------+
| PM3EASY | Proxmark3 rdv3 Easy with AT91SAM7S256 |
+----------------------------------------------------------+
| PM3RDV2 | Proxmark3 rdv2 with AT91SAM7S512 |
+----------------------------------------------------------+
| PM3OLD256 | Proxmark3 V1 with AT91SAM7S256 |
+----------------------------------------------------------+
| PM3OLD512 | Proxmark3 V1 with AT91SAM7S512 |
+----------------------------------------------------------+
+==========================================================+
| PLATFORM_EXTRAS | DESCRIPTION |
+==========================================================+
| BTADDON | Proxmark3 rdv4 BT add-on |
+----------------------------------------------------------+
2019-06-01 06:23:38 +08:00
+==========================================================+
| STANDALONE | DESCRIPTION |
+==========================================================+
2019-06-02 16:17:52 +08:00
| | No standalone mode |
+----------------------------------------------------------+
| LF_SAMYRUN (def)| HID26 read/clone/sim |
| | - Samy Kamkar |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
2019-06-01 06:39:03 +08:00
| LF_ICERUN | standalone mode skeleton |
| | - iceman |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
2019-06-01 06:39:03 +08:00
| LF_PROXBRUTE | HID ProxII bruteforce |
| | - Brad Antoniewicz |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
2019-06-01 06:39:03 +08:00
| LF_HIDBRUTE | HID corporate 1000 bruteforce |
| | - Federico dotta & Maurizio Agazzini |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
2019-06-01 06:39:03 +08:00
| HF_YOUNG | Mifare sniff/simulation |
| | - Craig Young |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
2019-06-01 06:39:03 +08:00
| HF_MATTYRUN | Mifare sniff/clone |
| | - Matías A. Ré Medina |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
2019-06-01 06:39:03 +08:00
| HF_COLIN | Mifare ultra fast sniff/sim/clone |
| | - Colin Brigato |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
2019-06-01 06:39:03 +08:00
| HF_BOG | 14a sniff with ULC/ULEV1/NTAG auth |
| | storing in flashmem - Bogito |
2019-06-01 06:23:38 +08:00
+----------------------------------------------------------+
Options to define platform, platform extras and/or standalone mode:
(1) Run make with PLATFORM, PLATFORM_EXTRAS and/or STANDALONE as follows:
2019-06-02 16:17:52 +08:00
make PLATFORM=PM3EASY STANDALONE=HF_COLIN
(2) Save a file called Makefile.platform with contents:
PLATFORM=PM3EASY
or if you have a Proxmark 3 RDV4 with the BT add-on:
PLATFORM=PM3RDV4
PLATFORM_EXTRAS=BTADDON
2019-06-02 16:17:52 +08:00
Default standalone mode is LF_SAMYRUN.
To disable standalone modes, set explicitly an empty STANDALONE:
STANDALONE=
endef
PLTNAME = Unknown Platform
ifeq ($(PLATFORM),PM3RDV4)
MCU = AT91SAM7S512
PLATFORM_DEFS = -DWITH_SMARTCARD -DWITH_FLASH
PLTNAME = Proxmark3 rdv4
else ifeq ($(PLATFORM),PM3EVO)
MCU = AT91SAM7S512
PLTNAME = Proxmark3 EVO
else ifeq ($(PLATFORM),PM3EASY)
MCU = AT91SAM7S256
PLTNAME = Proxmark3 rdv3 Easy
else ifeq ($(PLATFORM),PM3RDV2)
MCU = AT91SAM7S512
PLTNAME = Proxmark3 rdv2
else ifeq ($(PLATFORM),PM3OLD256)
MCU = AT91SAM7S256
PLTNAME = Proxmark3 V1 with AT91SAM7S256
else ifeq ($(PLATFORM),PM3OLD512)
MCU = AT91SAM7S512
PLTNAME = Proxmark3 V1 with AT91SAM7S512
else
2019-06-01 06:23:38 +08:00
$(error Invalid or empty PLATFORM: $(PLATFORM). $(KNOWN_DEFINITIONS))
endif
# parsing additional PLATFORM_EXTRAS tokens
PLATFORM_EXTRAS_TMP:=$(PLATFORM_EXTRAS)
ifneq (,$(findstring BTADDON,$(PLATFORM_EXTRAS_TMP)))
PLATFORM_DEFS += -DWITH_FPC_USART_HOST
PLATFORM_EXTRAS_TMP := $(strip $(filter-out BTADDON,$(PLATFORM_EXTRAS_TMP)))
endif
ifneq (,$(findstring FPC_USART_DEV,$(PLATFORM_EXTRAS_TMP)))
PLATFORM_DEFS += -DWITH_FPC_USART_DEV
PLATFORM_EXTRAS_TMP := $(strip $(filter-out FPC_USART_DEV,$(PLATFORM_EXTRAS_TMP)))
endif
ifneq (,$(PLATFORM_EXTRAS_TMP))
$(error Unknown PLATFORM_EXTRAS token(s): $(PLATFORM_EXTRAS_TMP))
endif
2019-04-26 04:15:16 +08:00
# common LF support
PLATFORM_DEFS += \
-DWITH_LF \
-DWITH_HITAG
2019-04-26 04:15:16 +08:00
# common HF support
PLATFORM_DEFS += \
-DWITH_ISO15693 \
-DWITH_LEGICRF \
-DWITH_ISO14443b \
-DWITH_ISO14443a \
-DWITH_ICLASS \
-DWITH_FELICA \
-DWITH_HFSNIFF
2019-04-26 04:15:16 +08:00
# Standalone mode
2019-06-01 06:23:38 +08:00
STANDALONE_MODES := LF_SAMYRUN LF_ICERUN LF_PROXBRUTE LF_HIDBRUTE
STANDALONE_MODES += HF_YOUNG HF_MATTYRUN HF_COLIN HF_BOG
ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES)),)
PLATFORM_DEFS += -DWITH_STANDALONE_$(STANDALONE)
else ifneq ($(STANDALONE),)
$(error Invalid STANDALONE: $(STANDALONE). $(KNOWN_DEFINITIONS))
endif
2019-04-26 04:15:16 +08:00
$(info $(findstring WITH_STANDALONE_*,$(PLATFORM_DEFS)))
# Misc
#PLATFORM_DEFS += -DWITH_LCD
# Add flags dependencies :
# WITH_FPC_USART_* needs WITH_FPC_USART :
ifneq (,$(findstring WITH_FPC_USART_,$(PLATFORM_DEFS)))
PLATFORM_DEFS += -DWITH_FPC_USART
endif
2019-04-26 04:15:16 +08:00
PLATFORM_DEFS_INFO = $(strip $(filter-out STANDALONE%, $(subst -DWITH_,,$(PLATFORM_DEFS))))
PLATFORM_DEFS_INFO_STANDALONE = $(strip $(subst STANDALONE_,, $(filter STANDALONE%, $(subst -DWITH_,,$(PLATFORM_DEFS)))))
# Check that only one Standalone mode has been chosen
ifneq (,$(word 2, $(PLATFORM_DEFS_INFO_STANDALONE)))
$(error You must choose only one Standalone mode!: $(PLATFORM_DEFS_INFO_STANDALONE))
2019-04-26 04:15:16 +08:00
endif
2019-06-02 16:17:52 +08:00
# info when no standalone mode
ifeq (,$(PLATFORM_DEFS_INFO_STANDALONE))
PLATFORM_DEFS_INFO_STANDALONE = No standalone mode selected
endif
export PLATFORM
export PLATFORM_EXTRAS
export PLTNAME
export MCU
export PLATFORM_DEFS
2019-04-26 04:15:16 +08:00
export PLATFORM_DEFS_INFO
export PLATFORM_DEFS_INFO_STANDALONE
PLATFORM_CHANGED=false
ifneq ($(PLATFORM), $(CACHED_PLATFORM))
PLATFORM_CHANGED=true
else ifneq ($(PLATFORM_EXTRAS), $(CACHED_PLATFORM_EXTRAS))
PLATFORM_CHANGED=true
else ifneq ($(PLATFORM_DEFS), $(CACHED_PLATFORM_DEFS))
PLATFORM_CHANGED=true
endif
2019-06-02 04:49:28 +08:00
$(info ===================================================================)
$(info Platform name: $(PLTNAME))
$(info PLATFORM: $(PLATFORM))
$(info PLATFORM_EXTRAS: $(PLATFORM_EXTRAS))
$(info Included options: $(PLATFORM_DEFS_INFO))
$(info Standalone mode: $(PLATFORM_DEFS_INFO_STANDALONE))
$(info ===================================================================)