aboutsummaryrefslogtreecommitdiff
path: root/src/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/makefile')
-rw-r--r--src/makefile120
1 files changed, 48 insertions, 72 deletions
diff --git a/src/makefile b/src/makefile
index 22e956e..6077824 100644
--- a/src/makefile
+++ b/src/makefile
@@ -1,109 +1,85 @@
-CC = arm-none-eabi-gcc
-LD = arm-none-eabi-gcc
-OC = arm-none-eabi-objcopy
-OS = arm-none-eabi-size
RM = rm -f
TARGET = main
+# platform is ds (desktop) or stm (stm32)
+PLATFORM = ds
+
+ifeq ($(PLATFORM),stm)
+STM = true
+include stm32.mk
+endif
+ifeq ($(PLATFORM),ds)
+DESKTOP = true
+include ds.mk
+endif
+
HOST=$(strip $(shell uname -o))
SHARED_FLAGS += -g
-SHARED_FLAGS += -DSTM32F091xC
SHARED_FLAGS += -Wall
SHARED_FLAGS += -Wextra
-# SHARED_FLAGS += -Wno-register
-SHARED_FLAGS += -Wa,--defsym,CALL_ARM_SYSTEM_INIT=1
-SHARED_FLAGS += -I./lib/STM32-base-STM32Cube/HAL/STM32F0xx/inc
-SHARED_FLAGS += -I./lib/STM32-base-STM32Cube/HAL/STM32F0xx/inc/Legacy
-SHARED_FLAGS += -I./lib/STM32-base-STM32Cube/CMSIS/ARM/inc
-SHARED_FLAGS += -I./lib/STM32-base-STM32Cube/CMSIS/STM32F0xx/inc
-SHARED_FLAGS += -I./lib/STM32-base/startup
-SHARED_FLAGS += -I./lib/FreeRTOS-Kernel/include
-SHARED_FLAGS += -I./lib/FreeRTOS-Kernel/portable/GCC/ARM_CM0/
-SHARED_FLAGS += -I.
-ifeq ($(HOST),GNU/Linux)
-SHARED_FLAGS += -I/usr/arm-none-eabi/include/
-endif
# SHARED_FLAGS += -O1
-SHARED_FLAGS += -ffunction-sections
-SHARED_FLAGS += -fdata-sections
-SHARED_FLAGS += -Wl,--gc-sections
-SHARED_FLAGS += -mlittle-endian
-SHARED_FLAGS += -mthumb
-SHARED_FLAGS += -specs=nosys.specs
-SHARED_FLAGS += -fno-exceptions
-SHARED_FLAGS += -fno-unwind-tables
-SHARED_FLAGS += -Wl,-L./lib/STM32-base/linker,-T./lib/STM32-base/linker/STM32F0xx/STM32F091xC.ld
-SHARED_FLAGS += -mcpu=cortex-m0
-SHARED_FLAGS += -march=armv6-m
+LFLAGS += -lm
+# LFLAGS += -lc
+CFLAGS += $(if $(STM), -DHH_TARGET_STM32, )
+CFLAGS += $(if $(DESKTOP), -DHH_TARGET_DESKTOP, )
+
+LOCAL_SRCS += main.c
CFLAGS += $(SHARED_FLAGS)
LFLAGS += $(SHARED_FLAGS)
AFLAGS += $(SHARED_FLAGS)
-OBJS += lib/STM32-base/startup/STM32F0xx/STM32F091xC.o
-OBJS += lib/STM32-base-STM32Cube/CMSIS/STM32F0xx/src/system_stm32f0xx.o
-OBJS += lib/FreeRTOS-Kernel/croutine.o \
- lib/FreeRTOS-Kernel/event_groups.o \
- lib/FreeRTOS-Kernel/list.o \
- lib/FreeRTOS-Kernel/queue.o \
- lib/FreeRTOS-Kernel/stream_buffer.o \
- lib/FreeRTOS-Kernel/tasks.o \
- lib/FreeRTOS-Kernel/timers.o \
- lib/FreeRTOS-Kernel/portable/GCC/ARM_CM0/port.o \
- lib/FreeRTOS-Kernel/portable/MemMang/heap_4.o
-OBJS += lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_rcc.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_rcc_ex.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_i2c.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_i2c_ex.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_gpio.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_dma.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_cortex.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_pwr.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_pwr_ex.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_flash.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_flash_ex.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_tim.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_tim_ex.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_uart.o \
- lib/STM32-base-STM32Cube/HAL/STM32F0xx/src/stm32f0xx_hal_uart_ex.o
-OBJS += idle_task_static_memory.o
-OBJS += main.o
-
-.PHONY: flash clean format
+SRCS += $(LOCAL_SRCS)
+SRCS += $(if $(STM), $(STM_SRCS), )
-$(TARGET).bin: $(TARGET).elf
- $(OC) -O binary $< $@
- $(OS) $<
+ifeq ($(PLATFORM),stm)
+OBJS := $(patsubst %.c,%-stm.o, $(patsubst %.s,%-stm.o, $(SRCS)))
+all: $(TARGET).bin
+endif
+ifeq ($(PLATFORM),ds)
+OBJS := $(patsubst %.c,%-ds.o, $(SRCS))
+all: $(TARGET)
+endif
-%.o: %.s
+%-stm.o: %.s
$(CC) -c $(AFLAGS) $< -o $@
-lib/%.o: lib/%.c
+lib/%-stm.o: lib/%.c
$(CC) -c $(CFLAGS) -w $< -o $@
-%.o: %.c
- $(CC) -c $(CFLAGS) $< -o $@
-
%-stm.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
$(TARGET).elf: $(OBJS)
- $(LD) $(LFLAGS) $^ -o $@
+ $(LD) $^ $(LFLAGS) -o $@
+$(TARGET).bin: $(TARGET).elf
+ $(OC) -O binary $< $@
+ $(OS) $<
+
+PHONY += flash
flash: $(TARGET).bin
st-flash --reset write $(TARGET).bin 0x08000000
-compile_commands.json: clean
+%-ds.o: %.c
+ $(CC) -c $(CFLAGS) $< -o $@
+
+$(TARGET): $(OBJS)
+ $(LD) $(LFLAGS) $^ -o $@
+
+compile_commands.json:
compiledb make -Bn
../scripts/compiledb-full-path-mingw.sh compile_commands.json
+PHONY += format
format:
- clang-format -i $(SRCS)
- clang-tidy --fix-errors $(SRCS)
+ clang-format -i $(LOCAL_SRCS)
+ clang-tidy --fix-errors $(LOCAL_SRCS)
+PHONY += clean
clean:
$(RM) $(TARGET).bin $(TARGET).elf $(OBJS)
+.PHONY: $(PHONY)