diff src/makefile.inc @ 0:83c23a36980d

Init
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 26 May 2017 23:11:05 +0900
parents
children 2617849843ec
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/makefile.inc	Fri May 26 23:11:05 2017 +0900
@@ -0,0 +1,46 @@
+# Cross-compiling (e.g., on Mac OS X, install arm-none-eabi-gcc with MacPorts)
+CROSSCOMPILE := arm-none-eabi-
+
+CC = $(CROSSCOMPILE)gcc
+AS = $(CROSSCOMPILE)as
+LD = $(CROSSCOMPILE)ld
+OBJCOPY = $(CROSSCOMPILE)objcopy
+OBJDUMP = $(CROSSCOMPILE)objdump
+
+CFLAGS = -march=armv6 -fno-pic -static -fno-builtin -fno-strict-aliasing -Wall -Werror -I. -g -O0
+LDFLAGS = -L.
+ASFLAGS = -march=armv6 
+
+LIBGCC = $(shell $(CC) -print-libgcc-file-name)
+
+# host compiler
+HOSTCC_preferred = gcc
+define get_hostcc
+    $(if $(shell which $(HOSTCC_preferred)),$(HOSTCC_preferred),"cc")
+endef
+HOSTCC := $(call get_hostcc)
+
+# general rules
+quiet-command = $(if $(V),$1,$(if $(2),@echo $2 && $1, @$1))
+
+LINK_BIN = $(call quiet-command,$(LD) $(LDFLAGS) \
+	-T $(1) -o $(2) $(3) $(LIBS) -b binary $(4), "  LINK     $(TARGET_DIR)$@")
+
+LINK_INIT = $(call quiet-command,$(LD) $(LDFLAGS) \
+	$(1) -o $@.out $<, "  LINK     $(TARGET_DIR)$@")
+OBJCOPY_INIT = $(call quiet-command,$(OBJCOPY) \
+	-S -O binary --prefix-symbols="_binary_$@" $@.out $@, "  OBJCOPY  $(TARGET_DIR)$@")
+
+build-directory = $(shell mkdir -p build build/device build/lib)
+
+build/%.o: %.c
+	$(call build-directory)
+	$(call quiet-command,$(CC) $(CFLAGS) \
+		-c -o $@ $<,"  CC       $(TARGET_DIR)$@")
+
+AS_WITH = $(call quiet-command,$(CC) $(ASFLAGS) \
+		$(1) -c -o $@ $<,"  AS       $(TARGET_DIR)$@")
+
+build/%.o: %.S
+	$(call build-directory)
+	$(call AS_WITH, )