aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile69
1 files changed, 54 insertions, 15 deletions
diff --git a/src/Makefile b/src/Makefile
index d9f3e9e..3d879ef 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,23 +1,26 @@
PROBE_HOST ?= native
PLATFORM_DIR = platforms/$(PROBE_HOST)
-VPATH += $(PLATFORM_DIR)
+VPATH += platforms/common $(PLATFORM_DIR)
-BUILDDATE := `date +"%Y%m%d"`
+ifneq ($(V), 1)
+MAKEFLAGS += --no-print-dir
+Q := @
+endif
-CFLAGS += -Wall -Wextra -Wno-pointer-sign -Wno-char-subscripts\
- -Wno-sign-compare \
- -O2 -std=gnu99 -g3 -DBUILDDATE=\"$(BUILDDATE)\"\
- -I. -Iinclude -I$(PLATFORM_DIR) \
- -DVERSION_SUFFIX=\"`../scripts/setlocalversion`\" -MD
+OPT_FLAGS ?= -O2
+
+CFLAGS += -Wall -Wextra -Werror -Wno-char-subscripts\
+ $(OPT_FLAGS) -std=gnu99 -g3 -MD \
+ -I. -Iinclude -Iplatforms/common -I$(PLATFORM_DIR) \
SRC = \
adiv5.c \
adiv5_jtagdp.c \
adiv5_swdp.c \
- arm7tdmi.c \
command.c \
cortexm.c \
crc32.c \
+ exception.c \
gdb_if.c \
gdb_main.c \
gdb_packet.c \
@@ -25,14 +28,18 @@ SRC = \
jtag_scan.c \
jtagtap.c \
lmi.c \
+ lpc11xx.c \
lpc43xx.c \
+ kinetis.c \
main.c \
- nxp_tgt.c \
+ morse.c \
+ nrf51.c \
platform.c \
sam3x.c \
+ samd.c \
stm32f1.c \
stm32f4.c \
- stm32l1.c \
+ stm32l0.c \
swdptap.c \
target.c \
@@ -40,14 +47,46 @@ include $(PLATFORM_DIR)/Makefile.inc
OBJ = $(SRC:.c=.o)
-blackmagic: $(OBJ)
- $(CC) -o $@ $^ $(LDFLAGS)
+blackmagic: include/version.h $(OBJ)
+ @echo " LD $@"
+ $(Q)$(CC) -o $@ $(OBJ) $(LDFLAGS)
+
+%.o: %.c
+ @echo " CC $<"
+ $(Q)$(CC) $(CFLAGS) -c $< -o $@
+
+%.bin: %
+ @echo " OBJCOPY $@"
+ $(Q)$(OBJCOPY) -O binary $^ $@
-.PHONY: clean host_clean
+%.hex: %
+ @echo " OBJCOPY $@"
+ $(Q)$(OBJCOPY) -O ihex $^ $@
+
+.PHONY: clean host_clean all_platforms FORCE
clean: host_clean
- $(RM) *.o *.d *~ blackmagic $(HOSTFILES)
- $(RM) platforms/*/*.o platforms/*/*.d mapfile
+ $(Q)echo " CLEAN"
+ -$(Q)$(RM) -f *.o *.d *~ blackmagic $(HOSTFILES)
+ -$(Q)$(RM) -f platforms/*/*.o platforms/*/*.d mapfile
+
+all_platforms:
+ $(Q)set -e ;\
+ for i in platforms/*/Makefile.inc ; do \
+ export DIRNAME=`dirname $$i` ;\
+ export PROBE_HOST=`basename $$DIRNAME` ;\
+ export CFLAGS=-Werror ;\
+ echo "Building for hardware platform: $$PROBE_HOST" ;\
+ $(MAKE) $(MAKEFLAGS) clean ;\
+ $(MAKE) $(MAKEFLAGS);\
+ if [ -f blackmagic.bin ]; then \
+ mv blackmagic.bin blackmagic-$$PROBE_HOST.bin ;\
+ fi ;\
+ done
+
+include/version.h: FORCE
+ $(Q)echo " GIT include/version.h"
+ $(Q)echo "#define FIRMWARE_VERSION \"`git describe --dirty`\"" > $@
-include *.d