-#in the next section to remove that particular feature from compilation
-APP_CFLAGS = -DWITH_LF -DWITH_ISO15693 -DWITH_ISO14443a -DWITH_ISO14443b -DWITH_ICLASS -DWITH_LEGICRF -DWITH_HITAG -DWITH_CRC -fno-strict-aliasing
-#-DWITH_LCD
-
-#SRC_LCD = fonts.c LCD.c
-SRC_LF = lfops.c hitag2.c
-SRC_ISO15693 = iso15693.c iso15693tools.c
-SRC_ISO14443a = epa.c iso14443a.c mifareutil.c mifarecmd.c mifaresniff.c
-SRC_ISO14443b = iso14443.c
-SRC_CRAPTO1 = crapto1.c crypto1.c des.c aes.c
-SRC_CRC = iso14443crc.c crc.c crc16.c crc32.c
+#in the next section to remove that particular feature from compilation.
+# NO space,TABs after the "\" sign.
+APP_CFLAGS = -DWITH_CRC \
+ -DON_DEVICE \
+ -DWITH_LF \
+ -DWITH_HITAG \
+ -DWITH_ISO15693 \
+ -DWITH_LEGICRF \
+ -DWITH_ISO14443b \
+ -DWITH_ISO14443a \
+ -DWITH_ICLASS \
+ -DWITH_HFSNOOP \
+ -DWITH_ISO14443a_StandAlone \
+ -fno-strict-aliasing -ffunction-sections -fdata-sections
+### IMPORTANT - move the commented variable below this line
+# -DWITH_LCD \
+
+SRC_LCD = fonts.c LCD.c
+SRC_LF = lfops.c hitag2.c hitagS.c lfsampling.c pcf7931.c lfdemod.c
+SRC_ISO15693 = iso15693.c iso15693tools.c
+SRC_ISO14443a = iso14443a.c mifareutil.c mifarecmd.c mifaresniff.c epa.c
+SRC_ISO14443b = iso14443b.c
+SRC_CRAPTO1 = crapto1.c crypto1.c des.c aes.c desfire_key.c desfire_crypto.c mifaredesfire.c
+SRC_CRC = iso14443crc.c crc.c crc16.c crc32.c
+SRC_EMV = tlv.c emvdataels.c emvutil.c emvcmd.c
+SRC_ICLASS = iclass.c optimized_cipher.c
+SRC_LEGIC = legicrf.c legic_prng.c
+
+#the FPGA bitstream files. Note: order matters!
+FPGA_BITSTREAMS = fpga_lf.bit fpga_hf.bit
+
+#the zlib source files required for decompressing the fpga config at run time
+SRC_ZLIB = inflate.c inffast.c inftrees.c adler32.c zutil.c
+#additional defines required to compile zlib
+ZLIB_CFLAGS = -DZ_SOLO -DZ_PREFIX -DNO_GZIP -DZLIB_PM3_TUNED
+APP_CFLAGS += $(ZLIB_CFLAGS)
+# zlib includes:
+APP_CFLAGS += -I../zlib