# (The including Makefile still needs to define what 'all' is)
all:
+CROSS ?= arm-eabi-
+CC = $(CROSS)gcc
+AS = $(CROSS)as
+LD = $(CROSS)ld
+OBJCOPY = $(CROSS)objcopy
+
+OBJDIR = obj
+
+INCLUDE = -I../include -I../common
+
# Windows' echo echos its input verbatim, on Posix there is some
# amount of shell command line parsing going on. echo "" on
# Windows yields literal "", on Linux yields an empty line
# This is probably a proper system, so we can use uname
UNAME := $(shell uname)
-ifeq ($(UNAME), Linux)
-# Linux. (Todo: Add MacOS X if appropriate)
DELETE=rm -rf
MOVE=mv
COPY=cp
PATHSEP=/
-FLASH_TOOL=linux/flasher
-DETECTED_OS=Linux
+FLASH_TOOL=client/flasher
+DETECTED_OS=UNAME
# You may/should set this in your environment
-ARMLIB ?= /usr/local/lib/gcc/arm-elf/4.3.3/interwork
-endif
+LIBGCC ?= $(shell $(CC) -print-libgcc-file-name)
else
MOVE=ren
COPY=copy
PATHSEP=\\#
-ARMLIB ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork
+LIBGCC ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork/libgcc.a
FLASH_TOOL=winsrc\\prox.exe
DETECTED_OS=Windows
endif
-CROSS = arm-elf-
-CC = $(CROSS)gcc
-AS = $(CROSS)as
-LD = $(CROSS)ld
-OBJCOPY = $(CROSS)objcopy
-
-OBJDIR = obj
-
-INCLUDE = -I../include
# Also search prerequisites in the common directory (for usb.c), and the fpga directory (for fpga.bit)
VPATH = . ../common/ ../fpga/
-INCLUDES = ../include/proxmark3.h ../include/at91sam7s128.h ../include/config_gpio.h ../include/usb_cmd.h $(APP_INCLUDES)
+INCLUDES = ../include/proxmark3.h ../include/at91sam7s512.h ../include/config_gpio.h ../include/usb_cmd.h $(APP_INCLUDES)
-CFLAGS = -c $(INCLUDE) -Werror -pedantic -std=gnu99 $(APP_CFLAGS)
+CFLAGS = -c $(INCLUDE) -Wall -Werror -pedantic -std=gnu99 $(APP_CFLAGS)
THUMBOBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(THUMBSRC))
-ARMOBJ = $(patsubst %.c,$(OBJDIR)/%.o,$(ARMSRC))
+ARMOBJ = $(ARMSRC:%.c=$(OBJDIR)/%.o)
ASMOBJ = $(patsubst %.s,$(OBJDIR)/%.o,$(ASMSRC))
VERSIONOBJ = $(OBJDIR)/version.o