mirror of
https://github.com/Proxmark/proxmark3.git
synced 2024-11-15 13:14:27 +08:00
1b902aa01a
* FPGA Hi-Simulate: Formatted code * FPGA Hi-Simulate: Fixed documantation * FPGA Hi-Simulate: Freed up 4 LUTs * FPGA Hi-Simulate: Added 212kHz SSP-Clock option * Legic: Moved card simulator into separate file & cleaned interface. Reader and card simulation have almost no common code. Moreover the sim uses an SSP Clock at 212kHz for all timings to prevent any drifting from the PRNG. This clock speed is not available in reader simulation mode (SSP runs at up to 3.4MHz, and changes speed between TX and RX). For these reasons having the code in separate files makes it significantly cleaner. * Legic: Implemented RX and TX for card simulation * Legic: Implemented setup phase for card simulation * Legic: Implemented read command for card simulation * Legic: Implemented write command for card simulation
143 lines
4.5 KiB
Makefile
143 lines
4.5 KiB
Makefile
#-----------------------------------------------------------------------------
|
|
# This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
|
# at your option, any later version. See the LICENSE.txt file for the text of
|
|
# the license.
|
|
#-----------------------------------------------------------------------------
|
|
# Makefile for armsrc, see ../common/Makefile.common for common settings
|
|
#-----------------------------------------------------------------------------
|
|
|
|
APP_INCLUDES = apps.h
|
|
|
|
#remove one of the following defines and comment out the relevant line
|
|
#in the next section to remove that particular feature from compilation
|
|
APP_CFLAGS = -DON_DEVICE \
|
|
-fno-strict-aliasing -ffunction-sections -fdata-sections
|
|
|
|
include ../common/Makefile_Enabled_Options.common
|
|
|
|
ifneq (,$(findstring WITH_LCD,$(APP_CFLAGS)))
|
|
SRC_LCD = fonts.c LCD.c
|
|
else
|
|
SRC_LCD =
|
|
endif
|
|
SRC_LF = lfops.c hitag2.c hitagS.c lfsampling.c pcf7931.c lfdemod.c protocols.c
|
|
SRC_ISO15693 = iso15693.c iso15693tools.c
|
|
SRC_ISO14443a = epa.c iso14443a.c mifareutil.c mifarecmd.c mifaresniff.c mifaresim.c
|
|
SRC_ISO14443b = iso14443b.c
|
|
SRC_CRAPTO1 = crypto1.c des.c
|
|
SRC_CRC = iso14443crc.c crc.c crc16.c crc32.c parity.c
|
|
ifneq (,$(findstring WITH_SMARTCARD,$(APP_CFLAGS)))
|
|
SRC_SMARTCARD = i2c.c
|
|
else
|
|
SRC_SMARTCARD =
|
|
endif
|
|
#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
|
|
|
|
# Compile these in thumb mode (small size)
|
|
THUMBSRC = start.c \
|
|
$(SRC_LCD) \
|
|
$(SRC_ISO15693) \
|
|
$(SRC_LF) \
|
|
$(SRC_ZLIB) \
|
|
$(SRC_SMARTCARD) \
|
|
appmain.c \
|
|
printf.c \
|
|
util.c \
|
|
string.c \
|
|
usb_cdc.c \
|
|
cmd.c
|
|
|
|
# These are to be compiled in ARM mode
|
|
ARMSRC = fpgaloader.c \
|
|
legicrf.c \
|
|
legicrfsim.c \
|
|
legic_prng.c \
|
|
$(SRC_ISO14443a) \
|
|
$(SRC_ISO14443b) \
|
|
$(SRC_CRAPTO1) \
|
|
$(SRC_CRC) \
|
|
iclass.c \
|
|
BigBuf.c \
|
|
optimized_cipher.c \
|
|
hfsnoop.c
|
|
|
|
VERSIONSRC = version.c \
|
|
fpga_version_info.c
|
|
|
|
# Do not move this inclusion before the definition of {THUMB,ASM,ARM}SRC
|
|
include ../common/Makefile.common
|
|
|
|
OBJS = $(OBJDIR)/fullimage.s19
|
|
FPGA_COMPRESSOR = ../client/fpga_compress
|
|
|
|
all: $(OBJS)
|
|
|
|
.DELETE_ON_ERROR:
|
|
|
|
# version.c should be remade on every compilation
|
|
.PHONY: version.c
|
|
version.c: default_version.c
|
|
perl ../tools/mkversion.pl .. > $@ || $(COPY) $^ $@
|
|
|
|
fpga_version_info.c: $(FPGA_BITSTREAMS) $(FPGA_COMPRESSOR)
|
|
$(FPGA_COMPRESSOR) -v $(filter %.bit,$^) $@
|
|
|
|
$(OBJDIR)/fpga_all.o: $(OBJDIR)/fpga_all.bit.z
|
|
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --prefix-sections=fpga_all_bit $^ $@
|
|
|
|
$(OBJDIR)/fpga_all.bit.z: $(FPGA_BITSTREAMS) $(FPGA_COMPRESSOR)
|
|
$(FPGA_COMPRESSOR) $(filter %.bit,$^) $@
|
|
|
|
$(FPGA_COMPRESSOR):
|
|
make -C ../client $(notdir $(FPGA_COMPRESSOR))
|
|
|
|
$(OBJDIR)/fullimage.stage1.elf: $(VERSIONOBJ) $(OBJDIR)/fpga_all.o $(THUMBOBJ) $(ARMOBJ)
|
|
$(CC) $(LDFLAGS) -Wl,-T,ldscript,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
|
|
|
|
$(OBJDIR)/fullimage.nodata.bin: $(OBJDIR)/fullimage.stage1.elf
|
|
$(OBJCOPY) -O binary -I elf32-littlearm --remove-section .data $^ $@
|
|
|
|
$(OBJDIR)/fullimage.nodata.o: $(OBJDIR)/fullimage.nodata.bin
|
|
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --rename-section .data=stage1_image $^ $@
|
|
|
|
$(OBJDIR)/fullimage.data.bin: $(OBJDIR)/fullimage.stage1.elf
|
|
$(OBJCOPY) -O binary -I elf32-littlearm --only-section .data $^ $@
|
|
|
|
$(OBJDIR)/fullimage.data.bin.z: $(OBJDIR)/fullimage.data.bin $(FPGA_COMPRESSOR)
|
|
$(FPGA_COMPRESSOR) $(filter %.bin,$^) $@
|
|
|
|
$(OBJDIR)/fullimage.data.o: $(OBJDIR)/fullimage.data.bin.z
|
|
$(OBJCOPY) -O elf32-littlearm -I binary -B arm --rename-section .data=compressed_data $^ $@
|
|
|
|
$(OBJDIR)/fullimage.elf: $(OBJDIR)/fullimage.nodata.o $(OBJDIR)/fullimage.data.o
|
|
$(CC) $(LDFLAGS) -Wl,-T,ldscript,-e,_osimage_entry,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^
|
|
|
|
tarbin: $(OBJS)
|
|
$(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=armsrc/%) $(OBJS:%.s19=armsrc/%.elf)
|
|
|
|
clean:
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.o
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.elf
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.s19
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.map
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.d
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.z
|
|
$(DELETE) $(OBJDIR)$(PATHSEP)*.bin
|
|
$(DELETE) version.c
|
|
|
|
.PHONY: all clean help
|
|
help:
|
|
@echo Multi-OS Makefile, you are running on $(DETECTED_OS)
|
|
@echo Possible targets:
|
|
@echo + all - Build the full image $(OBJDIR)/fullimage.s19
|
|
@echo + clean - Clean $(OBJDIR)
|
|
|