From dd2933a200887578f5c0c599f6c79b1150b32540 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Sun, 15 Jun 2014 21:12:44 +0200 Subject: [PATCH] Add top Makefile --- src/Makefile | 188 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 146 insertions(+), 42 deletions(-) diff --git a/src/Makefile b/src/Makefile index 8e01d4565..6762751c3 100755 --- a/src/Makefile +++ b/src/Makefile @@ -1,70 +1,174 @@ -CC = arm-none-eabi-gcc -AS = arm-none-eabi-as -LD = arm-none-eabi-ld -AR = arm-none-eabi-ar -RM = rm +CC = arm-none-eabi-gcc +AS = arm-none-eabi-as +LD = arm-none-eabi-ld +AR = arm-none-eabi-ar +RM = rm SIZE = arm-none-eabi-size STRIP = arm-none-eabi-strip -s OBJCOPY = arm-none-eabi-objcopy OBJDUMP = arm-none-eabi-objdump +MKDIR = mkdir -# General BIN=openmv -BUILD_DIR=build + +# Directories +TOP_DIR=$(shell pwd) +BUILD=$(TOP_DIR)/build +CMSIS_DIR=cmsis +STHAL_DIR=sthal +STUSB_DIR=stusb +FATFS_DIR=fatfs +MICROPY_DIR=micropython +CC3K_DIR=cc3k +OMV_DIR=omv + +# Target +TARGET ?= OPENMV1 # Debugging/Optimization ifeq ($(DEBUG), 1) -CFLAGS = -O0 -ggdb3 +CFLAGS += -O0 -ggdb3 else -CFLAGS = -O2 -g +CFLAGS += -O2 -ggdb3 -DNDEBUG endif # Compiler Flags -CFLAGS += -Wall -mlittle-endian -mthumb -nostartfiles -mcpu=cortex-m4 -mabi=aapcs-linux -CFLAGS += -fsingle-precision-constant -Wdouble-promotion -mfpu=fpv4-sp-d16 -mfloat-abi=hard -CFLAGS += -I. -I../include/CMSIS -I../include/StdPeriph -I../include/USB_OTG -I../include/FatFS -I../include/CC3K -I../include/MicroPython\ - -I../include/MicroPython/py -I./py -I./img -DSTM32F40_41xxx -DUSE_USB_OTG_FS -DARM_MATH_CM4 -D__FPU_PRESENT -std=gnu99 -DOSC=12 +CFLAGS += -std=gnu99 -Wall -mlittle-endian -mthumb -nostartfiles -mabi=aapcs-linux +CFLAGS += -fsingle-precision-constant -Wdouble-promotion -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard +CFLAGS += -DARM_MATH_CM4 -D__FPU_PRESENT=1 -D__FPU_USED=1 -DUSE_USB_FS -DUSE_DEVICE_MODE -DUSE_USB_OTG_ID=0 -DSTM32F407xx -DHSE_VALUE=12000000 + +CFLAGS += -I. -Iinclude +CFLAGS += -I$(TOP_DIR)/$(CMSIS_DIR)/include/ +CFLAGS += -I$(TOP_DIR)/$(CMSIS_DIR)/include/st +CFLAGS += -I$(TOP_DIR)/$(STHAL_DIR)/include/ +CFLAGS += -I$(TOP_DIR)/$(FATFS_DIR)/include/ +CFLAGS += -I$(TOP_DIR)/$(CC3K_DIR)/include/ + +CFLAGS += -I$(BUILD)/$(MICROPY_DIR)/ +CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/py/ +CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/stmhal/ +CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/stmhal/usbdev/ +CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/stmhal/usbdev/core/inc/ +CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/stmhal/usbdev/class/cdc_msc_hid/inc/ +CFLAGS += -I$(TOP_DIR)/$(MICROPY_DIR)/stmhal/boards/$(TARGET)/ + +CFLAGS += -I$(TOP_DIR)/$(OMV_DIR)/ +CFLAGS += -I$(TOP_DIR)/$(OMV_DIR)/py/ # Linker Flags -LDFLAGS = -mcpu=cortex-m4 -mabi=aapcs-linux -mthumb -mlittle-endian -mfloat-abi=hard -mfpu=fpv4-sp-d16 -#LDFLAGS += -Wl,-Map=$(BUILD_DIR)/$(BIN).map -Tstm32f4xx.ld -L. -L../lib -#LDFLAGS += -nostdlib -Tstm32f4xx.ld -L. -L../lib -LDFLAGS += -nostdlib -Tstm32f4xx.ld -L. -L../lib +LDFLAGS = -mcpu=cortex-m4 -mabi=aapcs-linux -mthumb -mlittle-endian -mfloat-abi=hard -mfpu=fpv4-sp-d16 -nostdlib -Wl,-Tstm32f407.ld # Sources -SRCS = $(wildcard *.c) $(wildcard py/*.c) $(wildcard img/*.c) -OBJS = $(addprefix $(BUILD_DIR)/, $(SRCS:.c=.o)) +#SRC_C = $(addprefix $(CMSIS_DIR)/src/st/,\ +# system_stm32f4xx.c \ +# ) -# Libraries -#LIB = -lmp -lc -lm -ldsp -lstdperiph -lusbcore -lusbdevcore -LIB = -lmp -ldsp -lcc3k -lstdperiph -all:: $(BUILD_DIR) $(BUILD_DIR) $(BUILD_DIR)/$(BIN).bin - $(SIZE) $(BUILD_DIR)/$(BIN).elf +OBJ += $(wildcard $(BUILD)/$(CMSIS_DIR)/src/st/*.o) +OBJ += $(wildcard $(BUILD)/$(STHAL_DIR)/src/*.o) +OBJ += $(wildcard $(BUILD)/$(FATFS_DIR)/src/*.o) +OBJ += $(wildcard $(BUILD)/$(FATFS_DIR)/src/option/*.o) -$(BUILD_DIR): - mkdir $@ - mkdir $@/py - mkdir $@/img +OBJ += $(wildcard $(BUILD)/$(MICROPY_DIR)/py/*.o) +OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/,\ + stm32f4xx_it.o \ + system_stm32f4xx.o \ + string0.o \ + usbd_conf.o \ + usbd_desc_cdc_msc.o \ + usbd_cdc_interface.o \ + usbd_msc_storage.o \ + systick.o \ + pendsv.o \ + bufhelper.o \ + usb.o \ + printf.o \ + gchelper.o \ + gccollect.o \ + pybstdio.o \ + readline.o \ + pyexec.o \ + help.o \ + input.o \ + uart.o \ + import.o \ + lexerfatfs.o \ + flash.o \ + diskio.o \ + storage.o \ + file.o \ + math.o \ + mathsincos.o \ + rtc.o \ + rng.o \ + pin.o \ + pin_named_pins.o \ + timer.o \ + i2c.o \ + spi.o \ + servo.o\ + extint.o \ + adc.o \ + modos.o \ + modstm.o \ + modtime.o \ + pins_$(TARGET).o \ + ) -$(BUILD_DIR)/$(BIN).bin: $(BUILD_DIR)/$(BIN).elf - $(OBJCOPY) -Obinary $^ $@ +OBJ += $(addprefix $(BUILD)/$(MICROPY_DIR)/usbdev/,\ + core/src/usbd_core.o \ + core/src/usbd_ctlreq.o \ + core/src/usbd_ioreq.o \ + class/cdc_msc_hid/src/usbd_cdc_msc_hid.o \ + class/cdc_msc_hid/src/usbd_msc_bot.o \ + class/cdc_msc_hid/src/usbd_msc_scsi.o \ + class/cdc_msc_hid/src/usbd_msc_data.o \ + ) -$(BUILD_DIR)/$(BIN).elf: $(OBJS) - $(CC) $(LDFLAGS) $(OBJS) $(LIB) -o $@ +OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/,\ + main.o \ + led.o \ + ) -stats: $(BIN).elf - $(SIZE) $(BUILD_DIR)/$(BIN).elf +OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/py/,\ + py_led.o \ + ) + +################################################### +#Export Variables +export CC +export AS +export LD +export AR +export SIZE +export OBJCOPY +export OBJDUMP +export MKDIR +export CFLAGS +export LDFLAGS +export TOP_DIR +export BUILD +################################################### + +all: | $(BUILD) + $(MAKE) -C $(CMSIS_DIR) BUILD=$(BUILD)/$(CMSIS_DIR) + $(MAKE) -C $(STHAL_DIR) BUILD=$(BUILD)/$(STHAL_DIR) + $(MAKE) -C $(FATFS_DIR) BUILD=$(BUILD)/$(FATFS_DIR) +# $(MAKE) -C $(CC3K_DIR) BUILD=$(BUILD)/$(CC3K_DIR) + $(MAKE) -C $(MICROPY_DIR)/stmhal BUILD=$(BUILD)/$(MICROPY_DIR) BOARD=$(TARGET) V=1 + $(MAKE) -C $(OMV_DIR) BUILD=$(BUILD)/$(OMV_DIR) + $(CC) $(LDFLAGS) $(OBJ) $(LIB) -o $(BUILD)/$(BIN).elf + $(OBJCOPY) -Obinary $(BUILD)/$(BIN).elf $(BUILD)/$(BIN).bin + $(SIZE) $(BUILD)/$(BIN).elf + +size: + $(SIZE) $(BUILD)/$(BIN).elf +$(BUILD): + $(MKDIR) -p $@ clean: - $(RM) -fr $(BUILD_DIR) - -$(BUILD_DIR)/%.o : %.c - $(CC) $(CFLAGS) -c -o $@ $< - -$(BUILD_DIR)/%.o : %.s - $(AS) $(AFLAGS) $< -o $@ + $(RM) -fr $(BUILD) flash:: - dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D $(BUILD_DIR)/$(BIN).bin + dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D $(BUILD)/$(BIN).bin