X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/b1d0de0a0847eba673cfaa965fadc56556d6364a..c9f99c010efd912f78ad9fb7107b44ab0bdfad2d:/armsrc/Makefile.linux?ds=sidebyside diff --git a/armsrc/Makefile.linux b/armsrc/Makefile.linux index 0f2d0d4e..baf4adb1 100644 --- a/armsrc/Makefile.linux +++ b/armsrc/Makefile.linux @@ -1,67 +1,80 @@ # This makefile needs to be edited to reflect the location -# of your own arm-elf-gcc installation (LIB variable) +# of your own arm-elf-gcc toolchain (ARMLIB variable) CC = arm-elf-gcc AS = arm-elf-as LD = arm-elf-ld OBJCOPY = arm-elf-objcopy -INCLUDE = -I../include +# Indicate where your gnuarm toolchain libgcc.a interworking library is located +# or set $ARMLIB in your environment: +#ARMLIB = /usr/local/lib/gcc/arm-elf/4.3.3/interwork -INCLUDES = ../include/proxmark3.h ../include/at91sam7s128.h ../include/config_gpio.h ../include/usb_cmd.h apps.h -LIB = /usr/local/new/gnuarm-4.3.0/lib/gcc/arm-elf/4.3.0/interwork +# Add -DWITH_LCD to EXTRA_CFLAGS if you want support for LCD +# in your firmware (add OBJLCD to OBJ too!) +#EXTRA_CFLAGS = -DWITH_LCD +EXTRA_CFLAGS = + +### You should not need to edit below this line + +INCLUDE = -I../include +INCLUDES = ../include/proxmark3.h ../include/at91sam7s128.h ../include/config_gpio.h ../include/usb_cmd.h apps.h CFLAGS_COMMON = -O6 -c $(INCLUDE) -Wall -mthumb-interwork -CFLAGS = $(CFLAGS_COMMON) -mthumb +CFLAGS = $(CFLAGS_COMMON) $(EXTRA_CFLAGS) -mthumb OBJDIR = obj -OBJ = start.o \ - appmain.o \ - fpga.o \ - iso15693.o \ - iso14443.o \ - util.o\ - LCD.o\ - fonts.o -OBJFAST = iso14443a.o +OBJLCD = $(OBJDIR)/LCD.o\ + $(OBJDIR)/fonts.o -OBJFPGA = fpgaimg.o +OBJ = $(OBJDIR)/start.o \ + $(OBJDIR)/appmain.o \ + $(OBJDIR)/fpga.o \ + $(OBJDIR)/iso15693.o \ + $(OBJDIR)/util.o -OBJCOMMON = usb.o +# To be compiled in ARM mode, not thumb mode: larger but faster +# Alleviates the 'blew circular buffer' issues somehow... +OBJFAST = $(OBJDIR)/iso14443.o \ + $(OBJDIR)/iso14443a.o +OBJFPGA = $(OBJDIR)/fpgaimg.o + +OBJCOMMON = $(OBJDIR)/usb.o all: osimage.s19 fpgaimage.s19 fullimage.s19 fpgaimage.s19: $(OBJFPGA) @echo fpgaimage.s19 - $(LD) -g -Tldscript-fpga -o fpgaimage.elf $(patsubst %.o, obj/%.o, $^) - $(OBJCOPY) -Osrec --srec-forceS3 fpgaimage.elf fpgaimage.s19 + $(LD) -g -Tldscript-fpga -o $(OBJDIR)/fpgaimage.elf $^ + $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fpgaimage.elf fpgaimage.s19 osimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON) @echo osimage.s19 - $(LD) -g -Tldscript -o osimage.elf $(patsubst %.o, obj/%.o, $^) $(LIB)/libgcc.a - $(OBJCOPY) -Osrec --srec-forceS3 osimage.elf osimage.s19 + $(LD) -g -Tldscript -o $(OBJDIR)/osimage.elf $^ $(ARMLIB)/libgcc.a + $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/osimage.elf osimage.s19 fullimage.s19: $(OBJ) $(OBJFAST) $(OBJCOMMON) $(OBJFAST) $(OBJFPGA) @echo fullimage.s19 - $(LD) -g -Tldscript-full -o fullimage.elf $(patsubst %.o, obj/%.o, $^) $(LIB)/libgcc.a - $(OBJCOPY) -Osrec --srec-forceS3 fullimage.elf fullimage.s19 - -$(OBJ): %.o : %.c - $(CC) $(CFLAGS) $< -o $(OBJDIR)/$@ + $(LD) -g -Tldscript-full -o $(OBJDIR)/fullimage.elf $^ $(ARMLIB)/libgcc.a + $(OBJCOPY) -Osrec --srec-forceS3 $(OBJDIR)/fullimage.elf fullimage.s19 -$(OBJFPGA): %.o : %.c - $(CC) $(CFLAGS) $< -o $(OBJDIR)/$@ +# Directives to put the *.o in the OBJDIR directory: +$(OBJ): $(OBJDIR)/%.o : %.c + $(CC) $(CFLAGS) $< -o $@ +$(OBJFPGA): $(OBJDIR)/%.o : %.c + $(CC) $(CFLAGS) $< -o $@ -$(OBJFAST): %.o : %.c - $(CC) $(CFLAGS_COMMON) $< -o $(OBJDIR)/$@ +$(OBJFAST): $(OBJDIR)/%.o : %.c + $(CC) $(CFLAGS_COMMON) $< -o $@ -$(OBJCOMMON): ../common/usb.c - $(CC) $(CFLAGS) ../common/usb.c -o $(OBJDIR)/usb.o +$(OBJCOMMON): $(OBJDIR)/%.o : ../common/%.c + $(CC) $(CFLAGS) $< -o $@ +# Those do not work on the current firmware ! flash-fpga: fpgaimage.s19 ../linux/flasher fpga fpgaimage.s19 @@ -78,6 +91,6 @@ jtag-flash: osimage.s19 ../../OpenOCD/openocd -c "halt; flash write_image osimage.s19 0x00100000; halt; reset; resume; poll; exit" clean: - rm -f $(OBJDIR)/*.o *.elf *.s19 + rm -f $(OBJDIR)/*.o $(OBJDIR)/*.elf *.s19 .PHONY: all clean