mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-02-16 04:09:10 +08:00
Move compile options to Makefile.hal
This commit is contained in:
parent
a59f7a50ce
commit
f3b3508d3e
6 changed files with 104 additions and 107 deletions
7
Makefile
7
Makefile
|
@ -35,9 +35,10 @@ endif
|
||||||
include common/Makefile.hal
|
include common/Makefile.hal
|
||||||
|
|
||||||
$(info ===================================================================)
|
$(info ===================================================================)
|
||||||
$(info PLATFORM: $(PLATFORM))
|
$(info PLATFORM: $(PLATFORM))
|
||||||
$(info $(PLTNAME))
|
$(info Platform name: $(PLTNAME))
|
||||||
$(info Included supports: $(PLATFORM_DEFS))
|
$(info Included options: $(PLATFORM_DEFS_INFO))
|
||||||
|
$(info Standalone mode: $(PLATFORM_DEFS_INFO_STANDALONE))
|
||||||
$(info ===================================================================)
|
$(info ===================================================================)
|
||||||
|
|
||||||
all clean: %: client/% bootrom/% armsrc/% recovery/% mfkey/% nonce2key/%
|
all clean: %: client/% bootrom/% armsrc/% recovery/% mfkey/% nonce2key/%
|
||||||
|
|
|
@ -18,9 +18,10 @@ ifeq ($(PLTNAME),)
|
||||||
endif
|
endif
|
||||||
include ../common/Makefile.hal
|
include ../common/Makefile.hal
|
||||||
$(info ===================================================================)
|
$(info ===================================================================)
|
||||||
$(info PLATFORM: $(PLATFORM))
|
$(info PLATFORM: $(PLATFORM))
|
||||||
$(info $(PLTNAME))
|
$(info Platform name: $(PLTNAME))
|
||||||
$(info Included supports: $(PLATFORM_DEFS))
|
$(info Included options: $(PLATFORM_DEFS_INFO))
|
||||||
|
$(info Standalone mode: $(PLATFORM_DEFS_INFO_STANDALONE))
|
||||||
$(info ===================================================================)
|
$(info ===================================================================)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -29,34 +30,8 @@ endif
|
||||||
# NO space,TABs after the "\" sign.
|
# NO space,TABs after the "\" sign.
|
||||||
APP_CFLAGS = $(PLATFORM_DEFS) \
|
APP_CFLAGS = $(PLATFORM_DEFS) \
|
||||||
-DON_DEVICE \
|
-DON_DEVICE \
|
||||||
-DWITH_LF \
|
|
||||||
-DWITH_HITAG \
|
|
||||||
-DWITH_ISO15693 \
|
|
||||||
-DWITH_LEGICRF \
|
|
||||||
-DWITH_ISO14443b \
|
|
||||||
-DWITH_ISO14443a \
|
|
||||||
-DWITH_ICLASS \
|
|
||||||
-DWITH_FELICA \
|
|
||||||
-DWITH_HFSNIFF \
|
|
||||||
-DWITH_LF_SAMYRUN \
|
|
||||||
-fno-strict-aliasing -ffunction-sections -fdata-sections
|
-fno-strict-aliasing -ffunction-sections -fdata-sections
|
||||||
|
|
||||||
### IMPORTANT - move the commented variable below this line
|
|
||||||
# -DWITH_FPC \
|
|
||||||
# -DWITH_LCD \
|
|
||||||
# -DWITH_EMV \
|
|
||||||
#
|
|
||||||
# Standalone Mods
|
|
||||||
#-------------------------------------------------------
|
|
||||||
# -DWITH_LF_ICERUN
|
|
||||||
# -DWITH_LF_SAMYRUN
|
|
||||||
# -DWITH_LF_PROXBRUTE
|
|
||||||
# -DWITH_LF_HIDBRUTE
|
|
||||||
# -DWITH_HF_YOUNG
|
|
||||||
# -DWITH_HF_MATTYRUN
|
|
||||||
# -DWITH_HF_COLIN
|
|
||||||
# -DWITH_HF_BOG
|
|
||||||
|
|
||||||
SRC_LF = lfops.c lfsampling.c pcf7931.c lfdemod.c
|
SRC_LF = lfops.c lfsampling.c pcf7931.c lfdemod.c
|
||||||
SRC_ISO15693 = iso15693.c iso15693tools.c
|
SRC_ISO15693 = iso15693.c iso15693tools.c
|
||||||
SRC_ISO14443a = iso14443a.c mifareutil.c mifarecmd.c epa.c mifaresim.c
|
SRC_ISO14443a = iso14443a.c mifareutil.c mifarecmd.c epa.c mifaresim.c
|
||||||
|
@ -101,36 +76,36 @@ endif
|
||||||
|
|
||||||
# Generic standalone Mode injection of source code
|
# Generic standalone Mode injection of source code
|
||||||
SRC_STANDALONE =
|
SRC_STANDALONE =
|
||||||
# WITH_LF_ICERUN
|
# WITH_STANDALONE_LF_ICERUN
|
||||||
ifneq (,$(findstring WITH_LF_ICERUN,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_LF_ICERUN,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE =
|
SRC_STANDALONE =
|
||||||
endif
|
endif
|
||||||
# WITH_LF_SAMYRUN
|
# WITH_STANDALONE_LF_SAMYRUN
|
||||||
ifneq (,$(findstring WITH_LF_SAMYRUN,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_LF_SAMYRUN,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = lf_samyrun.c
|
SRC_STANDALONE = lf_samyrun.c
|
||||||
endif
|
endif
|
||||||
# WITH_LF_PROXBRUTE
|
# WITH_STANDALONE_LF_PROXBRUTE
|
||||||
ifneq (,$(findstring WITH_LF_PROXBRUTE,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_LF_PROXBRUTE,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = lf_proxbrute.c
|
SRC_STANDALONE = lf_proxbrute.c
|
||||||
endif
|
endif
|
||||||
# WITH_LF_HIDBRUTE
|
# WITH_STANDALONE_LF_HIDBRUTE
|
||||||
ifneq (,$(findstring WITH_LF_HIDBRUTE,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_LF_HIDBRUTE,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = lf_hidbrute.c
|
SRC_STANDALONE = lf_hidbrute.c
|
||||||
endif
|
endif
|
||||||
# WITH_HF_YOUNG
|
# WITH_STANDALONE_HF_YOUNG
|
||||||
ifneq (,$(findstring WITH_HF_YOUNG,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_HF_YOUNG,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = hf_young.c
|
SRC_STANDALONE = hf_young.c
|
||||||
endif
|
endif
|
||||||
# WITH_HF_MATTYRUN
|
# WITH_STANDALONE_HF_MATTYRUN
|
||||||
ifneq (,$(findstring WITH_HF_MATTYRUN,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_HF_MATTYRUN,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = hf_mattyrun.c
|
SRC_STANDALONE = hf_mattyrun.c
|
||||||
endif
|
endif
|
||||||
# WITH_HF_COLIN
|
# WITH_STANDALONE_HF_COLIN
|
||||||
ifneq (,$(findstring WITH_HF_COLIN,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_HF_COLIN,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = vtsend.c hf_colin.c
|
SRC_STANDALONE = vtsend.c hf_colin.c
|
||||||
endif
|
endif
|
||||||
# WITH_HF_BOG
|
# WITH_STANDALONE_HF_BOG
|
||||||
ifneq (,$(findstring WITH_HF_BOG,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_HF_BOG,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = hf_bog.c
|
SRC_STANDALONE = hf_bog.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -32,21 +32,23 @@ As it is now, you can only have one standalone mode installed at the time.
|
||||||
Use HF/LF to denote which frequence your mod is targeting.
|
Use HF/LF to denote which frequence your mod is targeting.
|
||||||
Use you own github name/similar for perpetual honour to denote your mod
|
Use you own github name/similar for perpetual honour to denote your mod
|
||||||
|
|
||||||
Samples of directive flag used in the `armsrc\makefile`:
|
Samples of directive flag used in the `common/Makefile.hal`:
|
||||||
```
|
```
|
||||||
### -DWITH_LF_ICERUN
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_SAMYRUN
|
||||||
### -DWITH_LF_SAMYRUN
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_ICERUN
|
||||||
### -DWITH_LF_PROXBRUTE
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_SAMYRUN
|
||||||
### -DWITH_LF_HIDBRUTE
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_PROXBRUTE
|
||||||
### -DWITH_HF_COLIN
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_HIDBRUTE
|
||||||
### -DWITH_HF_YOUNG
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_YOUNG
|
||||||
### -DWITH_HF_MATTYRUN
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_MATTYRUN
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_COLIN
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_BOG
|
||||||
```
|
```
|
||||||
Add your source code file like the following sample in the `armsrc\makefile`
|
Add your source code file like the following sample in the `armsrc\makefile`
|
||||||
|
|
||||||
```
|
```
|
||||||
# WITH_HF_COLIN
|
# WITH_STANDALONE_HF_COLIN
|
||||||
ifneq (,$(findstring WITH_HF_COLIN,$(APP_CFLAGS)))
|
ifneq (,$(findstring WITH_STANDALONE_HF_COLIN,$(APP_CFLAGS)))
|
||||||
SRC_STANDALONE = hf_colin.c vtsend.c
|
SRC_STANDALONE = hf_colin.c vtsend.c
|
||||||
else
|
else
|
||||||
SRC_STANDALONE =
|
SRC_STANDALONE =
|
||||||
|
@ -57,45 +59,13 @@ endif
|
||||||
Do please add a identification string in the function `printStandAloneModes` inside `armsrc\appmain.c`
|
Do please add a identification string in the function `printStandAloneModes` inside `armsrc\appmain.c`
|
||||||
This will enable an easy way to detect on client side which standalone mods has been installed on the device.
|
This will enable an easy way to detect on client side which standalone mods has been installed on the device.
|
||||||
```
|
```
|
||||||
#if defined(WITH_HF_COLIN)
|
#if defined(WITH_STANDALONE_HF_COLIN)
|
||||||
DbpString(" HF Mifare ultra fast sniff/sim/clone - aka VIGIKPWN (Colin Brigato)");
|
DbpString(" HF Mifare ultra fast sniff/sim/clone - aka VIGIKPWN (Colin Brigato)");
|
||||||
#endif
|
#endif
|
||||||
````
|
````
|
||||||
|
|
||||||
Once all this is done, you and others can now easily compile different standalone modes by just swapping the -D directive in `armsrc\makefile`
|
Once all this is done, you and others can now easily compile different standalone modes by just selecting one of the standalone modes in `common/Makefile.hal`, e.g.:
|
||||||
|
|
||||||
````
|
````
|
||||||
#remove one of the following defines and comment out the relevant line
|
PLATFORM_DEFS += -DWITH_STANDALONE_HF_COLIN
|
||||||
#in the next section to remove that particular feature from compilation.
|
|
||||||
# NO space,TABs after the "\" sign.
|
|
||||||
APP_CFLAGS = -DON_DEVICE \
|
|
||||||
-DWITH_LF \
|
|
||||||
-DWITH_HITAG \
|
|
||||||
-DWITH_ISO15693 \
|
|
||||||
-DWITH_LEGICRF \
|
|
||||||
-DWITH_ISO14443b \
|
|
||||||
-DWITH_ISO14443a \
|
|
||||||
-DWITH_ICLASS \
|
|
||||||
-DWITH_FELICA \
|
|
||||||
-DWITH_FLASH \
|
|
||||||
-DWITH_SMARTCARD \
|
|
||||||
-DWITH_HFSNOOP \
|
|
||||||
-DWITH_HF_COLIN \
|
|
||||||
-DWITH_FPC \
|
|
||||||
-fno-strict-aliasing -ffunction-sections -fdata-sections
|
|
||||||
|
|
||||||
### IMPORTANT - move the commented variable below this line
|
|
||||||
# -DWITH_LCD \
|
|
||||||
# -DWITH_EMV \
|
|
||||||
# -DWITH_FPC \
|
|
||||||
#
|
|
||||||
# Standalone Mods
|
|
||||||
#-------------------------------------------------------
|
|
||||||
# -DWITH_LF_ICERUN
|
|
||||||
# -DWITH_LF_SAMYRUN
|
|
||||||
# -DWITH_LF_PROXBRUTE
|
|
||||||
# -DWITH_LF_HIDBRUTE
|
|
||||||
# -DWITH_HF_YOUNG
|
|
||||||
# -DWITH_HF_MATTYRUN
|
|
||||||
# -DWITH_HF_COLIN
|
|
||||||
````
|
````
|
||||||
|
|
|
@ -433,28 +433,28 @@ void printStandAloneModes(void) {
|
||||||
|
|
||||||
DbpString("Installed StandAlone Mode");
|
DbpString("Installed StandAlone Mode");
|
||||||
|
|
||||||
#if defined(WITH_LF_ICERUN)
|
#if defined(WITH_STANDALONE_LF_ICERUN)
|
||||||
DbpString(" LF sniff/clone/simulation - aka IceRun (iceman)");
|
DbpString(" LF sniff/clone/simulation - aka IceRun (iceman)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(WITH_HF_YOUNG)
|
#if defined(WITH_STANDALONE_HF_YOUNG)
|
||||||
DbpString(" HF Mifare sniff/simulation - (Craig Young)");
|
DbpString(" HF Mifare sniff/simulation - (Craig Young)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(WITH_LF_SAMYRUN)
|
#if defined(WITH_STANDALONE_LF_SAMYRUN)
|
||||||
DbpString(" LF HID26 standalone - aka SamyRun (Samy Kamkar)");
|
DbpString(" LF HID26 standalone - aka SamyRun (Samy Kamkar)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(WITH_LF_PROXBRUTE)
|
#if defined(WITH_STANDALONE_LF_PROXBRUTE)
|
||||||
DbpString(" LF HID ProxII bruteforce - aka Proxbrute (Brad Antoniewicz)");
|
DbpString(" LF HID ProxII bruteforce - aka Proxbrute (Brad Antoniewicz)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(WITH_LF_HIDBRUTE)
|
#if defined(WITH_STANDALONE_LF_HIDBRUTE)
|
||||||
DbpString(" LF HID corporate 1000 bruteforce - aka Corporatebrute (Federico dotta & Maurizio Agazzini)");
|
DbpString(" LF HID corporate 1000 bruteforce - aka Corporatebrute (Federico dotta & Maurizio Agazzini)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(WITH_HF_MATTYRUN)
|
#if defined(WITH_STANDALONE_HF_MATTYRUN)
|
||||||
DbpString(" HF Mifare sniff/clone - aka MattyRun (Matías A. Ré Medina)");
|
DbpString(" HF Mifare sniff/clone - aka MattyRun (Matías A. Ré Medina)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(WITH_HF_COLIN)
|
#if defined(WITH_STANDALONE_HF_COLIN)
|
||||||
DbpString(" HF Mifare ultra fast sniff/sim/clone - aka VIGIKPWN (Colin Brigato)");
|
DbpString(" HF Mifare ultra fast sniff/sim/clone - aka VIGIKPWN (Colin Brigato)");
|
||||||
#endif
|
#endif
|
||||||
#if defined(WITH_HF_BOG)
|
#if defined(WITH_STANDALONE_HF_BOG)
|
||||||
DbpString(" HF 14a sniff standalone with ULC/ULEV1/NTAG auth storing in flashmem - aka BogitoRun (Bogito)");
|
DbpString(" HF 14a sniff standalone with ULC/ULEV1/NTAG auth storing in flashmem - aka BogitoRun (Bogito)");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1585,11 +1585,11 @@ void __attribute__((noreturn)) AppMain(void) {
|
||||||
* All standalone mod "main loop" should be the RunMod() function.
|
* All standalone mod "main loop" should be the RunMod() function.
|
||||||
* Since the standalone is either LF or HF, the somewhat bisarr defines below exists.
|
* Since the standalone is either LF or HF, the somewhat bisarr defines below exists.
|
||||||
*/
|
*/
|
||||||
#if defined (WITH_LF) && ( defined (WITH_LF_SAMYRUN) || defined (WITH_LF_HIDBRUTE) || defined (WITH_LF_PROXBRUTE) )
|
#if defined (WITH_LF) && ( defined (WITH_STANDALONE_LF_SAMYRUN) || defined (WITH_STANDALONE_LF_HIDBRUTE) || defined (WITH_STANDALONE_LF_PROXBRUTE) )
|
||||||
RunMod();
|
RunMod();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (WITH_ISO14443a) && ( defined (WITH_HF_YOUNG) || defined(WITH_HF_COLIN) || defined(WITH_HF_MATTYRUN) || defined(WITH_HF_BOG) )
|
#if defined (WITH_ISO14443a) && ( defined (WITH_STANDALONE_HF_YOUNG) || defined(WITH_STANDALONE_HF_COLIN) || defined(WITH_STANDALONE_HF_MATTYRUN) || defined(WITH_STANDALONE_HF_BOG) )
|
||||||
RunMod();
|
RunMod();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,10 @@ ifeq ($(PLTNAME),)
|
||||||
endif
|
endif
|
||||||
include ../common/Makefile.hal
|
include ../common/Makefile.hal
|
||||||
$(info ===================================================================)
|
$(info ===================================================================)
|
||||||
$(info PLATFORM: $(PLATFORM))
|
$(info PLATFORM: $(PLATFORM))
|
||||||
$(info $(PLTNAME))
|
$(info Platform name: $(PLTNAME))
|
||||||
$(info Included supports: $(PLATFORM_DEFS))
|
$(info Included options: $(PLATFORM_DEFS_INFO))
|
||||||
|
$(info Standalone mode: $(PLATFORM_DEFS_INFO_STANDALONE))
|
||||||
$(info ===================================================================)
|
$(info ===================================================================)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -56,12 +56,62 @@ else
|
||||||
$(error Invalid or empty PLATFORM: $(PLATFORM). Known platforms: $(KNOWN_PLATFORMS))
|
$(error Invalid or empty PLATFORM: $(PLATFORM). Known platforms: $(KNOWN_PLATFORMS))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Add flags dependencies
|
# common LF support
|
||||||
|
PLATFORM_DEFS += \
|
||||||
|
-DWITH_LF \
|
||||||
|
-DWITH_HITAG
|
||||||
|
|
||||||
|
# common HF support
|
||||||
|
PLATFORM_DEFS += \
|
||||||
|
-DWITH_ISO15693 \
|
||||||
|
-DWITH_LEGICRF \
|
||||||
|
-DWITH_ISO14443b \
|
||||||
|
-DWITH_ISO14443a \
|
||||||
|
-DWITH_ICLASS \
|
||||||
|
-DWITH_FELICA \
|
||||||
|
-DWITH_HFSNIFF
|
||||||
|
|
||||||
|
# Standalone mode
|
||||||
|
# !! Choose only one !!
|
||||||
|
PLATFORM_DEFS += -DWITH_STANDALONE_LF_SAMYRUN
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_ICERUN
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_SAMYRUN
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_PROXBRUTE
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_LF_HIDBRUTE
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_YOUNG
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_MATTYRUN
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_COLIN
|
||||||
|
#PLATFORM_DEFS += -DWITH_STANDALONE_HF_BOG
|
||||||
|
|
||||||
|
$(info $(findstring WITH_STANDALONE_*,$(PLATFORM_DEFS)))
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
#PLATFORM_DEFS += -DWITH_LCD
|
||||||
|
|
||||||
|
|
||||||
|
# Add flags dependencies :
|
||||||
|
|
||||||
|
# WITH_FPC_* needs WITH_FPC :
|
||||||
ifneq (,$(findstring WITH_FPC_,$(PLATFORM_DEFS)))
|
ifneq (,$(findstring WITH_FPC_,$(PLATFORM_DEFS)))
|
||||||
PLATFORM_DEFS += -DWITH_FPC
|
PLATFORM_DEFS += -DWITH_FPC
|
||||||
endif
|
endif
|
||||||
|
# WITH_EMV possible if WITH_ISO14443a :
|
||||||
|
ifneq (,$(findstring WITH_ISO14443a,$(PLATFORM_DEFS)))
|
||||||
|
PLATFORM_DEFS += -DWITH_EMV
|
||||||
|
endif
|
||||||
|
|
||||||
|
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))
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
export PLATFORM
|
export PLATFORM
|
||||||
export PLTNAME
|
export PLTNAME
|
||||||
export MCU
|
export MCU
|
||||||
export PLATFORM_DEFS
|
export PLATFORM_DEFS
|
||||||
|
export PLATFORM_DEFS_INFO
|
||||||
|
export PLATFORM_DEFS_INFO_STANDALONE
|
||||||
|
|
Loading…
Reference in a new issue