# Default standalone if no standalone specified
DEFAULT_STANDALONE=HF_MSDSAL
HELP_EXAMPLE_STANDALONE=LF_SAMYRUN
# (you can set explicitly STANDALONE= to disable standalone modes)
STANDALONE?=$(DEFAULT_STANDALONE)
STANDALONE_REQ_DEFS=

define KNOWN_STANDALONE_DEFINITIONS
+==========================================================+
| STANDALONE      | DESCRIPTION                            |
+==========================================================+
| (empty)         | No standalone mode                     |
+----------------------------------------------------------+
| LF_SKELETON     | standalone mode skeleton               |
|                 | - iceman                               |
+----------------------------------------------------------+
| LF_EM4100EMUL   | Simulate predefined em4100 tags only   |
|                 |                                        |
+----------------------------------------------------------+
| LF_EM4100RSWB   | Read/simulate/brute em4100 tags &      |
|                 | clone it to T555x tags                 |
+----------------------------------------------------------+
| LF_EM4100RWC    | Read/simulate em4100 tags & clone it   |
|                 | to T555x tags                          |
+----------------------------------------------------------+
| LF_HIDBRUTE     | HID corporate 1000 bruteforce          |
|                 | - Federico dotta & Maurizio Agazzini   |
+----------------------------------------------------------+
| LF_ICEHID       | LF HID collector to flashmem           |
| (RDV4 only)     |                                        |
+----------------------------------------------------------+
| LF_PROXBRUTE    | HID ProxII bruteforce                  |
|                 | - Brad Antoniewicz                     |
+----------------------------------------------------------+
| LF_SAMYRUN      | HID26 read/clone/sim                   |
|                 | - Samy Kamkar                          |
+----------------------------------------------------------+
| HF_14ASNIFF     | 14a sniff to flashmem                  |
| (RDV4 only)     |                                        |
+----------------------------------------------------------+
| HF_AVEFUL       | Mifare ultralight read/simulation      |
|                 | - Ave Ozkal                            |
+----------------------------------------------------------+
| HF_BOG          | 14a sniff with ULC/ULEV1/NTAG auth     |
| (RDV4 only)     | storing in flashmem - Bogito           |
+----------------------------------------------------------+
| HF_COLIN        | Mifare ultra fast sniff/sim/clone      |
| (RDV4 only)     | - Colin Brigato                        |
+----------------------------------------------------------+
| HF_ICECLASS     | Simulate HID iCLASS legacy ags         |
| (RDV4 only)     | storing in flashmem                    |
+----------------------------------------------------------+
| HF_LEGIC        | Read/simulate Legic Prime tags         |
|                 | storing in flashmem                    |
+----------------------------------------------------------+
| HF_MATTYRUN     | Mifare sniff/clone                     |
|                 | - Matías A. Ré Medina                  |
+----------------------------------------------------------+
| HF_MSDSAL       | Read and emulate MSD Visa cards        |
| (default)       | - Salvador Mendoza                     |
+----------------------------------------------------------+
| HF_TCPRST       | IKEA Rothult read/sim/dump/emul        |
|                 | - Nick Draffen                         |
+----------------------------------------------------------+
| HF_YOUNG        | Mifare sniff/simulation                |
|                 | - Craig Young                          |
+----------------------------------------------------------+
endef

STANDALONE_MODES := LF_SKELETON LF_EM4100EMUL LF_EM4100RSWB LF_EM4100RWC LF_HIDBRUTE LF_ICEHID LF_PROXBRUTE LF_SAMYRUN
STANDALONE_MODES += HF_14ASNIFF HF_AVEFUL HF_BOG HF_COLIN HF_ICECLASS HF_LEGIC HF_MATTYRUN HF_MSDSAL HF_TCPRST HF_YOUNG
STANDALONE_MODES_REQ_SMARTCARD :=
STANDALONE_MODES_REQ_FLASH := LF_ICEHID HF_14ASNIFF HF_BOG HF_COLIN HF_ICECLASS
ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES)),)
    STANDALONE_PLATFORM_DEFS += -DWITH_STANDALONE_$(STANDALONE)
    ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES_REQ_SMARTCARD)),)
        STANDALONE_REQ_DEFS += -DWITH_SMARTCARD
    endif
    ifneq ($(filter $(STANDALONE),$(STANDALONE_MODES_REQ_FLASH)),)
        STANDALONE_REQ_DEFS += -DWITH_FLASH
    endif
else ifneq ($(STANDALONE),)
    $(error Invalid STANDALONE: $(STANDALONE). $(KNOWN_DEFINITIONS))
endif
