Skip to content

Commit f9c1dab

Browse files
committed
Updates to make/build scripts ; Partial fixes to @colinoflynn\'s notes in emsec#313 (success with \'hf mfdes info -- Still debugging auth exchanges)
1 parent 8e77d78 commit f9c1dab

File tree

7 files changed

+126
-213
lines changed

7 files changed

+126
-213
lines changed

Firmware/Chameleon-Mini/Application/DESFire/DESFireISO14443Support.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -420,8 +420,9 @@ uint16_t ISO144433APiccProcess(uint8_t *Buffer, uint16_t BitCount) {
420420
const char *logMsg = PSTR("ISO14443-3/4: EXPECTING RATS");
421421
LogDebuggingMsg(logMsg);
422422
} else if (Cmd == ISO14443A_CMD_SELECT_CL3) {
423-
Buffer[0] = 0x00;
424-
return 1 * BITS_PER_BYTE;
423+
Buffer[0] = ISO14443A_SAK_COMPLETE_NOT_COMPLIANT;
424+
ISO14443AAppendCRCA(Buffer, 1);
425+
return ISO14443A_SAK_FRAME_SIZE;
425426
}
426427
/* Forward to ISO/IEC 14443-4 processing code */
427428
uint16_t ByteCount = (BitCount + BITS_PER_BYTE - 1) / BITS_PER_BYTE;

Firmware/Chameleon-Mini/Application/DESFire/DESFirePICCHeaderLayout.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,13 @@ This notice must be retained at the top of all source files where indicated.
4949

5050
/* Anticollision parameters */
5151
#define ATQA_VALUE 0x0344
52+
#ifndef FORCE_SAK_NOT_COMPLIANT
5253
#define SAK_CL1_VALUE (ISO14443A_SAK_INCOMPLETE)
5354
#define SAK_CL2_VALUE (ISO14443A_SAK_COMPLETE_COMPLIANT)
54-
#define SAK_UID_NOT_FINISHED 0x04
55+
#else
56+
#define SAK_CL1_VALUE (ISO14443A_SAK_INCOMPLETE_NOT_COMPLIANT)
57+
#define SAK_CL2_VALUE (ISO14443A_SAK_COMPLETE_NOT_COMPLIANT)
58+
#endif
5559

5660
#define STATUS_FRAME_SIZE (1 * 8) /* Bits */
5761

Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
/*
2-
* ISO14443A.c
2+
* ISO14443A.c
33
*
44
* Created on: 19.03.2013
5-
* Author: skuser
5+
* Author: skuser
66
*/
77

88
#include "ISO14443-3A.h"
99

10-
#define CRC_INIT 0x6363
11-
#define CRC_INIT_R 0xC6C6 /* Bit reversed */
12-
1310
#ifdef CONFIG_MF_DESFIRE_SUPPORT
14-
1511
#include "DESFire/DESFireISO14443Support.h"
1612

1713
bool ISO14443ASelectDesfire(void *Buffer, uint16_t *BitCount, uint8_t *UidCL, uint8_t SAKValue) {
14+
1815
uint8_t *DataPtr = (uint8_t *) Buffer;
1916
uint8_t NVB = DataPtr[1];
2017

2118
switch (NVB) {
22-
case 0x00:
23-
case ISO14443A_CMD_HLTA:
19+
2420
case ISO14443A_NVB_AC_START:
2521
/* Start of anticollision procedure.
2622
* Send whole UID CLn + BCC */
@@ -31,7 +27,6 @@ bool ISO14443ASelectDesfire(void *Buffer, uint16_t *BitCount, uint8_t *UidCL, ui
3127
DataPtr[ISO14443A_CL_BCC_OFFSET] = ISO14443A_CALC_BCC(DataPtr);
3228
*BitCount = ISO14443A_CL_FRAME_SIZE;
3329
return false;
34-
3530
case ISO14443A_NVB_AC_END:
3631
/* End of anticollision procedure.
3732
* Send SAK CLn if we are selected. */
@@ -40,47 +35,21 @@ bool ISO14443ASelectDesfire(void *Buffer, uint16_t *BitCount, uint8_t *UidCL, ui
4035
(DataPtr[4] == UidCL[2]) &&
4136
(DataPtr[5] == UidCL[3])) {
4237
DataPtr[0] = SAKValue;
43-
ISO14443AUpdateCRCA(Buffer, 1, ISO14443A_CRCA_INIT);
44-
*BitCount = 3 * BITS_PER_BYTE;
38+
ISO14443AAppendCRCA(Buffer, 1);
39+
*BitCount = ISO14443A_SAK_FRAME_SIZE;
4540
return true;
4641
} else {
4742
/* We have not been selected. Don't send anything. */
4843
*BitCount = 0;
4944
return false;
5045
}
51-
default: {
52-
uint8_t CollisionByteCount = ((NVB >> 4) & 0x0f) - 2;
53-
uint8_t CollisionBitCount = (NVB >> 0) & 0x0f;
54-
uint8_t mask = 0xFF >> (8 - CollisionBitCount);
55-
// Since the UidCL does not contain the BCC, we have to distinguish here
56-
if (
57-
((CollisionByteCount == 5 || (CollisionByteCount == 4 && CollisionBitCount > 0)) &&
58-
memcmp(UidCL, &DataPtr[2], 4) == 0 && (ISO14443A_CALC_BCC(UidCL) & mask) == (DataPtr[6] & mask))
59-
||
60-
(CollisionByteCount == 4 && CollisionBitCount == 0 && memcmp(UidCL, &DataPtr[2], 4) == 0)
61-
||
62-
(CollisionByteCount < 4 && memcmp(UidCL, &DataPtr[2], CollisionByteCount) == 0 &&
63-
(UidCL[CollisionByteCount] & mask) == (DataPtr[CollisionByteCount + 2] & mask))
64-
) {
65-
DataPtr[0] = UidCL[0];
66-
DataPtr[1] = UidCL[1];
67-
DataPtr[2] = UidCL[2];
68-
DataPtr[3] = UidCL[3];
69-
DataPtr[4] = ISO14443A_CALC_BCC(DataPtr);
70-
71-
*BitCount = ISO14443A_CL_FRAME_SIZE;
72-
} else {
73-
*BitCount = 0;
74-
}
75-
return false;
76-
}
46+
default:
7747
/* No anticollision supported */
78-
*BitCount = 0;
79-
return false;
48+
*BitCount = 0;
49+
return false;
8050
}
8151
}
82-
83-
#endif
52+
#endif /* CONFIG_MF_DESFIRE_SUPPORT */
8453

8554
#define USE_HW_CRC
8655
#ifdef USE_HW_CRC
@@ -157,65 +126,3 @@ bool ISO14443ACheckCRCA(const void *Buffer, uint16_t ByteCount) {
157126
return (DataPtr[0] == ((Checksum >> 0) & 0xFF)) && (DataPtr[1] == ((Checksum >> 8) & 0xFF));
158127
}
159128
#endif
160-
161-
#if 0
162-
bool ISO14443ASelect(void *Buffer, uint16_t *BitCount, uint8_t *UidCL, uint8_t SAKValue) {
163-
uint8_t *DataPtr = (uint8_t *) Buffer;
164-
uint8_t NVB = DataPtr[1];
165-
166-
switch (NVB) {
167-
case ISO14443A_NVB_AC_START:
168-
/* Start of anticollision procedure.
169-
* Send whole UID CLn + BCC */
170-
DataPtr[0] = UidCL[0];
171-
DataPtr[1] = UidCL[1];
172-
DataPtr[2] = UidCL[2];
173-
DataPtr[3] = UidCL[3];
174-
DataPtr[4] = ISO14443A_CALC_BCC(DataPtr);
175-
176-
*BitCount = ISO14443A_CL_FRAME_SIZE;
177-
178-
return false;
179-
180-
case ISO14443A_NVB_AC_END:
181-
/* End of anticollision procedure.
182-
* Send SAK CLn if we are selected. */
183-
if ((DataPtr[2] == UidCL[0]) &&
184-
(DataPtr[3] == UidCL[1]) &&
185-
(DataPtr[4] == UidCL[2]) &&
186-
(DataPtr[5] == UidCL[3])) {
187-
188-
DataPtr[0] = SAKValue;
189-
ISO14443AAppendCRCA(Buffer, 1);
190-
191-
*BitCount = ISO14443A_SAK_FRAME_SIZE;
192-
return true;
193-
} else {
194-
/* We have not been selected. Don't send anything. */
195-
*BitCount = 0;
196-
return false;
197-
}
198-
default:
199-
/* TODO: No anticollision supported */
200-
*BitCount = 0;
201-
return false;
202-
}
203-
}
204-
205-
bool ISO14443AWakeUp(void *Buffer, uint16_t *BitCount, uint16_t ATQAValue, bool FromHalt) {
206-
uint8_t *DataPtr = (uint8_t *) Buffer;
207-
208-
if (((! FromHalt) && (DataPtr[0] == ISO14443A_CMD_REQA)) ||
209-
(DataPtr[0] == ISO14443A_CMD_WUPA)) {
210-
DataPtr[0] = (ATQAValue >> 0) & 0x00FF;
211-
DataPtr[1] = (ATQAValue >> 8) & 0x00FF;
212-
213-
*BitCount = ISO14443A_ATQA_FRAME_SIZE;
214-
215-
return true;
216-
} else {
217-
return false;
218-
}
219-
}
220-
221-
#endif

Firmware/Chameleon-Mini/Application/ISO14443-3A.h

+8-4
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
#define ISO14443A_CL_BCC_OFFSET 4
3131
#define ISO14443A_CL_BCC_SIZE 1 /* Byte */
3232
#define ISO14443A_CL_FRAME_SIZE ((ISO14443A_CL_UID_SIZE + ISO14443A_CL_BCC_SIZE) * 8) /* UID[N...N+3] || BCCN */
33-
#define ISO14443A_SAK_INCOMPLETE 0x24 // 0x04
33+
#define ISO14443A_SAK_INCOMPLETE 0x24
34+
#define ISO14443A_SAK_INCOMPLETE_NOT_COMPLIANT 0x04
3435
#define ISO14443A_SAK_COMPLETE_COMPLIANT 0x20
3536
#define ISO14443A_SAK_COMPLETE_NOT_COMPLIANT 0x00
3637

@@ -39,17 +40,20 @@
3940
#define ISO14443A_SAK_FRAME_SIZE (3 * BITS_PER_BYTE) /* in Bits */
4041
#define ISO14443A_HLTA_FRAME_SIZE (2 * BITS_PER_BYTE) /* in Bits */
4142

42-
#define ISO14443A_UID0_RANDOM 0x08
43-
#define ISO14443A_UID0_CT 0x88
44-
4543
#define ISO14443A_CRCA_SIZE 2
4644

45+
#define CRC_INIT 0x6363
46+
#define CRC_INIT_R 0xC6C6 /* Bit reversed */
47+
4748
#define ISO14443A_CALC_BCC(ByteBuffer) \
4849
( ByteBuffer[0] ^ ByteBuffer[1] ^ ByteBuffer[2] ^ ByteBuffer[3] )
4950

5051
void ISO14443AAppendCRCA(void *Buffer, uint16_t ByteCount);
5152
bool ISO14443ACheckCRCA(const void *Buffer, uint16_t ByteCount);
5253

54+
#define ISO14443A_UID0_RANDOM 0x08
55+
#define ISO14443A_UID0_CT 0x88
56+
5357
INLINE bool ISO14443ASelect(void *Buffer, uint16_t *BitCount, uint8_t *UidCL, uint8_t SAKValue);
5458
INLINE bool ISO14443AWakeUp(void *Buffer, uint16_t *BitCount, uint16_t ATQAValue, bool FromHalt);
5559

Firmware/Chameleon-Mini/Application/MifareDESFire.c

+19-2
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,21 @@ uint16_t MifareDesfireProcess(uint8_t *Buffer, uint16_t BitCount) {
179179
if (BitCount == 0) {
180180
LogEntry(LOG_INFO_DESFIRE_INCOMING_DATA, Buffer, ByteCount);
181181
return ISO14443A_APP_NO_RESPONSE;
182+
} else if (ByteCount >= 2 && Buffer[1] == STATUS_ADDITIONAL_FRAME &&
183+
DesfireCLA(Buffer[0])) {
184+
ByteCount -= 1;
185+
memmove(&Buffer[0], &Buffer[1], ByteCount);
186+
uint16_t ProcessedByteCount = MifareDesfireProcessCommand(Buffer, ByteCount);
187+
if (ProcessedByteCount != 0) {
188+
/* Re-wrap into padded APDU form */
189+
Buffer[ProcessedByteCount] = Buffer[0];
190+
memmove(&Buffer[0], &Buffer[1], ProcessedByteCount - 1);
191+
Buffer[ProcessedByteCount - 1] = 0x91;
192+
++ProcessedByteCount;
193+
}
194+
return ProcessedByteCount * BITS_PER_BYTE;
182195
} else if (((ByteCount >= 8 && Buffer[4] == ByteCount - 8) ||
183-
(ByteCount >= 5 && Buffer[4] == ByteCount - 5) ||
184-
(ByteCount >= 5 && Buffer[1] == STATUS_ADDITIONAL_FRAME)) &&
196+
(ByteCount >= 5 && Buffer[4] == ByteCount - 5)) &&
185197
DesfireCLA(Buffer[0]) && Buffer[2] == 0x00 &&
186198
Buffer[3] == 0x00 || Iso7816CLA(DesfireCmdCLA)) {
187199
/* Wrapped native command structure or ISO7816: */
@@ -234,12 +246,17 @@ uint16_t MifareDesfireAppProcess(uint8_t *Buffer, uint16_t BitCount) {
234246
return ISO14443AStoreLastDataFrameAndReturn(Buffer, ProcessedByteCount * BITS_PER_BYTE);
235247
} else if (ByteCount >= 8 && DesfireCLA(Buffer[1]) && Buffer[3] == 0x00 &&
236248
Buffer[4] == 0x00 && Buffer[5] == ByteCount - 8) {
249+
uint8_t hf14AScanPrologue = Buffer[0];
237250
DesfireCmdCLA = Buffer[1];
238251
uint16_t IncomingByteCount = MAX(0, (BitCount + BITS_PER_BYTE - 1) / BITS_PER_BYTE - 1);
239252
memmove(&Buffer[0], &Buffer[1], IncomingByteCount);
240253
uint16_t UnwrappedBitCount = DesfirePreprocessAPDU(ActiveCommMode, Buffer, IncomingByteCount) * BITS_PER_BYTE;
241254
uint16_t ProcessedBitCount = MifareDesfireProcess(Buffer, UnwrappedBitCount);
242255
uint16_t ProcessedByteCount = (ProcessedBitCount + BITS_PER_BYTE - 1) / BITS_PER_BYTE;
256+
if (ProcessedByteCount++ > 0) {
257+
memmove(&Buffer[1], &Buffer[0], ProcessedByteCount);
258+
}
259+
Buffer[0] = hf14AScanPrologue;
243260
ProcessedByteCount = DesfirePostprocessAPDU(ActiveCommMode, Buffer, ProcessedByteCount);
244261
LogEntry(LOG_INFO_DESFIRE_OUTGOING_DATA, Buffer, ProcessedByteCount);
245262
return ISO14443AStoreLastDataFrameAndReturn(Buffer, ProcessedByteCount * BITS_PER_BYTE);
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
SHELL := $(if $(SHELL), $(SHELL), /bin/sh)
2-
BASH := $(if $(shell which bash), $(shell which bash), /bin/bash)
1+
.PHONY: mifare mifare-classic desfire desfire-dev iso-modes ntag215 vicinity sl2s2002 tagatit em4233
2+
.SECONDARY: custom-build
33

44
TARGET_CUSTOM_BUILD_NAME =
5-
TARGET_CUSTOM_BUILD = $(TARGET)-$(strip $(if $(TARGET_CUSTOM_BUILD_NAME), "CustomBuild_$(TARGET_CUSTOM_BUILD_NAME)", "DefaultBuild"))
65
DEFAULT_TAG_SUPPORT_BASE = -DCONFIG_ISO14443A_SNIFF_SUPPORT \
76
-DCONFIG_ISO14443A_READER_SUPPORT
8-
SUPPORTED_TAGS ?=
9-
SUPPORTED_TAGS_BUILD := $(SUPPORTED_TAGS)
10-
CUSTOM_CONFIG_SETTINGS_BASE := $(DEFAULT_TAG_SUPPORT) $(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE
7+
SUPPORTED_TAGS_BUILD =
8+
EXTRA_CONFIG_SETTINGS =
119

12-
## : Include several standardized custom build target variants:
13-
custom-build: CONFIG_SETTINGS:=$(CUSTOM_CONFIG_SETTINGS_BASE)
10+
custom-build: TARGET_CUSTOM_BUILD:=$(TARGET)-$(strip $(if $(TARGET_CUSTOM_BUILD_NAME), "CustomBuild_$(TARGET_CUSTOM_BUILD_NAME)", "DefaultBuild"))
1411
custom-build: local-clean $(TARGET).elf $(TARGET).hex $(TARGET).eep $(TARGET).bin check_size
1512
@cp $(TARGET).hex $(TARGET_CUSTOM_BUILD).hex
1613
@cp $(TARGET).eep $(TARGET_CUSTOM_BUILD).eep
@@ -26,12 +23,9 @@ custom-build: local-clean $(TARGET).elf $(TARGET).hex $(TARGET).eep $(TARGET).bi
2623
@echo $(FMT_ANSIC_BOLD)$(FMT_ANSIC_EXCLAIM)"[!!!]"$(FMT_ANSIC_END) \
2724
$(FMT_ANSIC_BOLD)$(FMT_ANSIC_UNDERLINE)"SUCCESS BUILDING CUSTOM FIRMWARE:"$(FMT_ANSIC_END)
2825
@echo $(FMT_ANSIC_BOLD)$(FMT_ANSIC_EXCLAIM)"[!!!]"$(FMT_ANSIC_END) \
29-
$(FMT_ANSIC_BOLD)"$(TARGET_CUSTOM_BUILD).{hex/eep/elf/bin}"$(FMT_ANSIC_END)
26+
$(FMT_ANSIC_BOLD)"$(TARGET_CUSTOM_BUILD).(HEX|EEP|ELF|BIN)"$(FMT_ANSIC_END)
3027
@echo "\n"
3128

32-
default_config_support: DEFAULT_TAG_SUPPORT:=$(DEFAULT_TAG_SUPPORT_BASE)
33-
nodefault_config_support: DEFAULT_TAG_SUPPORT:=
34-
3529
mifare: SUPPORTED_TAGS_BUILD:=\
3630
-DCONFIG_MF_CLASSIC_MINI_4B_SUPPORT \
3731
-DCONFIG_MF_CLASSIC_1K_SUPPORT \
@@ -40,63 +34,72 @@ mifare: SUPPORTED_TAGS_BUILD:=\
4034
-DCONFIG_MF_CLASSIC_4K_7B_SUPPORT \
4135
-DCONFIG_MF_ULTRALIGHT_SUPPORT
4236
mifare: TARGET_CUSTOM_BUILD_NAME:=MifareDefaultSupport
37+
mifare: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
4338
mifare: custom-build
4439

45-
mifare-classic: nodefault_config_support
4640
mifare-classic: SUPPORTED_TAGS_BUILD:=\
4741
-DCONFIG_MF_CLASSIC_MINI_4B_SUPPORT \
4842
-DCONFIG_MF_CLASSIC_1K_SUPPORT \
4943
-DCONFIG_MF_CLASSIC_1K_7B_SUPPORT \
5044
-DCONFIG_MF_CLASSIC_4K_SUPPORT \
5145
-DCONFIG_MF_CLASSIC_4K_7B_SUPPORT
5246
mifare-classic: TARGET_CUSTOM_BUILD_NAME:=MifareClassicSupport
47+
mifare-classic: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
5348
mifare-classic: custom-build
5449

55-
desfire: CONFIG_SETTINGS:=$(DESFIRE_CONFIG_SETTINGS_BASE) \
56-
-fno-inline-small-functions
50+
desfire: FLASH_DATA_SIZE:=0x0E000
51+
desfire: SUPPORTED_TAGS_BUILD:=-DCONFIG_MF_DESFIRE_SUPPORT
52+
desfire: EXTRA_CONFIG_SETTINGS:=-DMEMORY_LIMITED_TESTING \
53+
-DDESFIRE_CRYPTO1_SAVE_SPACE \
54+
-f-inline-small-functions
5755
desfire: TARGET_CUSTOM_BUILD_NAME:=DESFire
56+
desfire: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
5857
desfire: custom-build
5958

60-
desfire-dev: CONFIG_SETTINGS:=$(DESFIRE_CONFIG_SETTINGS_BASE) \
61-
-fno-inline-small-functions \
62-
-DDESFIRE_MIN_OUTGOING_LOGSIZE=0 \
63-
-DDESFIRE_MIN_INCOMING_LOGSIZE=0 \
64-
-DDESFIRE_DEFAULT_LOGGING_MODE=DEBUGGING \
65-
-DDESFIRE_DEFAULT_TESTING_MODE=1
59+
desfire-dev: FLASH_DATA_SIZE:=0x0E000
60+
desfire-dev: SUPPORTED_TAGS_BUILD:=-DCONFIG_MF_DESFIRE_SUPPORT
61+
desfire-dev: EXTRA_CONFIG_SETTINGS:=-DMEMORY_LIMITED_TESTING \
62+
-DDESFIRE_CRYPTO1_SAVE_SPACE \
63+
-finline-small-functions \
64+
-DDESFIRE_MIN_OUTGOING_LOGSIZE=0 \
65+
-DDESFIRE_MIN_INCOMING_LOGSIZE=0 \
66+
-DDESFIRE_DEFAULT_LOGGING_MODE=DEBUGGING \
67+
-DDESFIRE_DEFAULT_TESTING_MODE=1
6668
desfire-dev: TARGET_CUSTOM_BUILD_NAME:=DESFire_DEV
69+
desfire-dev: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
6770
desfire-dev: custom-build
6871

69-
iso-modes: nodefault_config_support
7072
iso-modes: SUPPORTED_TAGS_BUILD:=\
7173
-DCONFIG_ISO14443A_SNIFF_SUPPORT \
7274
-DCONFIG_ISO14443A_READER_SUPPORT \
7375
-DCONFIG_ISO15693_SNIFF_SUPPORT
7476
iso-modes: TARGET_CUSTOM_BUILD_NAME:=ISOSniffReaderModeSupport
77+
iso-modes: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
7578
iso-modes: custom-build
7679

77-
ntag215: default_config_support
78-
ntag215: SUPPORTED_TAGS_BUILD:=-DCONFIG_NTAG215_SUPPORT
80+
ntag215: SUPPORTED_TAGS_BUILD:=$(DEFAULT_TAG_SUPPORT_BASE) -DCONFIG_NTAG215_SUPPORT
7981
ntag215: TARGET_CUSTOM_BUILD_NAME:=NTAG215Support
82+
ntag215: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
8083
ntag215: custom-build
8184

82-
vicinity: default_config_support
83-
vicinity: SUPPORTED_TAGS_BUILD:=-DCONFIG_VICINITY_SUPPORT
85+
vicinity: SUPPORTED_TAGS_BUILD:=$(DEFAULT_TAG_SUPPORT_BASE) -DCONFIG_VICINITY_SUPPORT
8486
vicinity: TARGET_CUSTOM_BUILD_NAME:=VicinitySupport
87+
vicinity: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
8588
vicinity: custom-build
8689

87-
sl2s2002: default_config_support
88-
sl2s2002: SUPPORTED_TAGS_BUILD:=-DCONFIG_SL2S2002_SUPPORT
90+
sl2s2002: SUPPORTED_TAGS_BUILD:=$(DEFAULT_TAG_SUPPORT_BASE) -DCONFIG_SL2S2002_SUPPORT
8991
sl2s2002: TARGET_CUSTOM_BUILD_NAME:=SL2S2002Support
92+
sl2s2002: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
9093
sl2s2002: custom-build
9194

92-
tagatit: default_config_support
93-
tagatit: SUPPORTED_TAGS_BUILD:=\
95+
tagatit: SUPPORTED_TAGS_BUILD:=$(DEFAULT_TAG_SUPPORT_BASE) \
9496
-DCONFIG_TITAGITSTANDARD_SUPPORT \
9597
-DCONFIG_TITAGITPLUS_SUPPORT
9698
tagatit: TARGET_CUSTOM_BUILD_NAME:=TagatitSupport
99+
tagatit: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
97100
tagatit: custom-build
98101

99-
em4233: default_config_support
100-
em4233: SUPPORTED_TAGS_BUILD:=-DCONFIG_EM4233_SUPPORT
102+
em4233: SUPPORTED_TAGS_BUILD:=$(DEFAULT_TAG_SUPPORT_BASE) -DCONFIG_EM4233_SUPPORT
101103
em4233: TARGET_CUSTOM_BUILD_NAME:=EM4233Support
104+
em4233: CONFIG_SETTINGS:=$(SUPPORTED_TAGS_BUILD) -DDEFAULT_CONFIGURATION=CONFIG_NONE $(EXTRA_CONFIG_SETTINGS)
102105
em4233: custom-build

0 commit comments

Comments
 (0)