Sergey Pastor / grbl
Committer:
Sergunb
Date:
Mon Sep 04 12:03:42 2017 +0000
Revision:
0:f1834a63f7c1
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sergunb 0:f1834a63f7c1 1 # detect what shell is used
Sergunb 0:f1834a63f7c1 2 ifeq ($(findstring cmd.exe,$(SHELL)),cmd.exe)
Sergunb 0:f1834a63f7c1 3 $(info "Info : Running on Windows shell cmd.exe")
Sergunb 0:f1834a63f7c1 4 DEVNUL := NUL
Sergunb 0:f1834a63f7c1 5 WHICH := where
Sergunb 0:f1834a63f7c1 6 else
Sergunb 0:f1834a63f7c1 7 $(info "Info : Running on Unix shell")
Sergunb 0:f1834a63f7c1 8 DEVNUL := /dev/null
Sergunb 0:f1834a63f7c1 9 WHICH := which
Sergunb 0:f1834a63f7c1 10 endif
Sergunb 0:f1834a63f7c1 11
Sergunb 0:f1834a63f7c1 12
Sergunb 0:f1834a63f7c1 13 # Find first cross compilation tools
Sergunb 0:f1834a63f7c1 14 XTOOLS_DIR = $(abspath $(shell dirname `${WHICH} arm-none-eabi-gcc`)/..)
Sergunb 0:f1834a63f7c1 15
Sergunb 0:f1834a63f7c1 16 # Set tool & Lib paths
Sergunb 0:f1834a63f7c1 17 X_LIBC_DIR = $(XTOOLS_DIR)/arm-none-eabi/lib/armv7e-m/fpu
Sergunb 0:f1834a63f7c1 18 X_CC = $(XTOOLS_DIR)/bin/arm-none-eabi-gcc
Sergunb 0:f1834a63f7c1 19 X_OBJCOPY = $(XTOOLS_DIR)/bin/arm-none-eabi-objcopy
Sergunb 0:f1834a63f7c1 20 X_AR = $(XTOOLS_DIR)/bin/arm-none-eabi-ar
Sergunb 0:f1834a63f7c1 21 X_LD = $(XTOOLS_DIR)/bin/arm-none-eabi-ld
Sergunb 0:f1834a63f7c1 22 X_GDB = $(XTOOLS_DIR)/bin/arm-none-eabi-gdb
Sergunb 0:f1834a63f7c1 23
Sergunb 0:f1834a63f7c1 24 OUT_DIR = debug
Sergunb 0:f1834a63f7c1 25
Sergunb 0:f1834a63f7c1 26 OUTPUT = grbl-stm32
Sergunb 0:f1834a63f7c1 27
Sergunb 0:f1834a63f7c1 28 SRC= ./cmsis_boot/startup/startup_stm32f10x_md.c \
Sergunb 0:f1834a63f7c1 29 ./cmsis_boot/system_stm32f10x.c \
Sergunb 0:f1834a63f7c1 30 ./grbl/coolant_control.c \
Sergunb 0:f1834a63f7c1 31 ./grbl/eeprom.c \
Sergunb 0:f1834a63f7c1 32 ./grbl/gcode.c \
Sergunb 0:f1834a63f7c1 33 ./grbl/jog.c \
Sergunb 0:f1834a63f7c1 34 ./grbl/limits.c \
Sergunb 0:f1834a63f7c1 35 ./grbl/main.c \
Sergunb 0:f1834a63f7c1 36 ./grbl/motion_control.c \
Sergunb 0:f1834a63f7c1 37 ./grbl/nuts_bolts.c \
Sergunb 0:f1834a63f7c1 38 ./grbl/planner.c \
Sergunb 0:f1834a63f7c1 39 ./grbl/print.c \
Sergunb 0:f1834a63f7c1 40 ./grbl/probe.c \
Sergunb 0:f1834a63f7c1 41 ./grbl/protocol.c \
Sergunb 0:f1834a63f7c1 42 ./grbl/report.c \
Sergunb 0:f1834a63f7c1 43 ./grbl/serial.c \
Sergunb 0:f1834a63f7c1 44 ./grbl/settings.c \
Sergunb 0:f1834a63f7c1 45 ./grbl/spindle_control.c \
Sergunb 0:f1834a63f7c1 46 ./grbl/stepper.c \
Sergunb 0:f1834a63f7c1 47 ./grbl/system.c \
Sergunb 0:f1834a63f7c1 48 ./stm_lib/src/misc.c \
Sergunb 0:f1834a63f7c1 49 ./stm_lib/src/stm32f10x_exti.c \
Sergunb 0:f1834a63f7c1 50 ./stm_lib/src/stm32f10x_flash.c \
Sergunb 0:f1834a63f7c1 51 ./stm_lib/src/stm32f10x_gpio.c \
Sergunb 0:f1834a63f7c1 52 ./stm_lib/src/stm32f10x_rcc.c \
Sergunb 0:f1834a63f7c1 53 ./stm_lib/src/stm32f10x_tim.c \
Sergunb 0:f1834a63f7c1 54 ./stm_lib/src/stm32f10x_usart.c \
Sergunb 0:f1834a63f7c1 55 ./stm_usb_fs_lib/src/usb_core.c \
Sergunb 0:f1834a63f7c1 56 ./stm_usb_fs_lib/src/usb_init.c \
Sergunb 0:f1834a63f7c1 57 ./stm_usb_fs_lib/src/usb_int.c \
Sergunb 0:f1834a63f7c1 58 ./stm_usb_fs_lib/src/usb_mem.c \
Sergunb 0:f1834a63f7c1 59 ./stm_usb_fs_lib/src/usb_regs.c \
Sergunb 0:f1834a63f7c1 60 ./stm_usb_fs_lib/src/usb_sil.c \
Sergunb 0:f1834a63f7c1 61 ./usb/hw_config.c \
Sergunb 0:f1834a63f7c1 62 ./usb/usb_desc.c \
Sergunb 0:f1834a63f7c1 63 ./usb/usb_endp.c \
Sergunb 0:f1834a63f7c1 64 ./usb/usb_istr.c \
Sergunb 0:f1834a63f7c1 65 ./usb/usb_prop.c \
Sergunb 0:f1834a63f7c1 66 ./usb/usb_pwr.c \
Sergunb 0:f1834a63f7c1 67 ./util/stm32f10x_it.c
Sergunb 0:f1834a63f7c1 68
Sergunb 0:f1834a63f7c1 69 OBJ = $(patsubst %.c, %.o, $(SRC))
Sergunb 0:f1834a63f7c1 70 #OBJ += $(BOARD_DIR)/start.o
Sergunb 0:f1834a63f7c1 71
Sergunb 0:f1834a63f7c1 72 # include files
Sergunb 0:f1834a63f7c1 73 INC = .
Sergunb 0:f1834a63f7c1 74 INC += cmsis
Sergunb 0:f1834a63f7c1 75 INC += cmsis_boot
Sergunb 0:f1834a63f7c1 76 INC += cmsis_boot/startup
Sergunb 0:f1834a63f7c1 77 INC += grbl
Sergunb 0:f1834a63f7c1 78 INC += stm_lib/inc
Sergunb 0:f1834a63f7c1 79 INC += stm_lib/src
Sergunb 0:f1834a63f7c1 80 INC += stm_usb_fs_lib/inc
Sergunb 0:f1834a63f7c1 81 INC += stm_usb_fs_lib/src
Sergunb 0:f1834a63f7c1 82 INC += usb
Sergunb 0:f1834a63f7c1 83 INC += util
Sergunb 0:f1834a63f7c1 84
Sergunb 0:f1834a63f7c1 85 INCLUDE = $(addprefix -I,$(INC))
Sergunb 0:f1834a63f7c1 86
Sergunb 0:f1834a63f7c1 87 # compiler flags
Sergunb 0:f1834a63f7c1 88 # as in coocox
Sergunb 0:f1834a63f7c1 89 # -mcpu=cortex-m3 ; -mthumb ; -g2 ; -Wall ; -Os ; -DUSE_STDPERIPH_DRIVER ; -D__ASSEMBLY__ ; -D_GRBL_ ; -DSTM32F103C8 ; -DSTM32F10X_MD ; -DLEDBLINK ; -DUSEUSB ; -I. ; -Iusb ; -Iutil ; -Iuseusb ; -Igrbl ;
Sergunb 0:f1834a63f7c1 90
Sergunb 0:f1834a63f7c1 91 CFLAGS = -Wall
Sergunb 0:f1834a63f7c1 92 CFLAGS += -Os
Sergunb 0:f1834a63f7c1 93 CFLAGS += -g2
Sergunb 0:f1834a63f7c1 94 CFLAGS += -mthumb
Sergunb 0:f1834a63f7c1 95 CFLAGS += -mcpu=cortex-m3
Sergunb 0:f1834a63f7c1 96
Sergunb 0:f1834a63f7c1 97 # linker flags
Sergunb 0:f1834a63f7c1 98 LDSCRIPT = STM32F103C8T6.ld
Sergunb 0:f1834a63f7c1 99 LDFLAGS = -T$(LDSCRIPT) -Wl,-Map,$(OUT_DIR)/$(OUTPUT).map -Wl,--gc-sections
Sergunb 0:f1834a63f7c1 100
Sergunb 0:f1834a63f7c1 101 # defines
Sergunb 0:f1834a63f7c1 102 DEFINES = -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -D_GRBL_ -DSTM32F103C8 -DSTM32F10X_MD -DLEDBLINK -DUSEUSB
Sergunb 0:f1834a63f7c1 103
Sergunb 0:f1834a63f7c1 104 .S.o:
Sergunb 0:f1834a63f7c1 105 $(X_CC) $(INCLUDE) $(DEFINES) $(CFLAGS) -c $< -o $@
Sergunb 0:f1834a63f7c1 106 .c.o:
Sergunb 0:f1834a63f7c1 107 $(X_CC) $(INCLUDE) $(DEFINES) $(CFLAGS) -c $< -o $@
Sergunb 0:f1834a63f7c1 108
Sergunb 0:f1834a63f7c1 109 .PHONY: all flash grbl_src clean
Sergunb 0:f1834a63f7c1 110
Sergunb 0:f1834a63f7c1 111 all: $(OBJ)
Sergunb 0:f1834a63f7c1 112 $(X_CC) $(CFLAGS) $(LDFLAGS) $(OBJ) -lm -o $(OUT_DIR)/$(OUTPUT)
Sergunb 0:f1834a63f7c1 113 mv $(OUT_DIR)/$(OUTPUT) $(OUT_DIR)/$(OUTPUT).elf
Sergunb 0:f1834a63f7c1 114 $(X_OBJCOPY) -O binary $(OUT_DIR)/$(OUTPUT).elf $(OUT_DIR)/$(OUTPUT).bin
Sergunb 0:f1834a63f7c1 115
Sergunb 0:f1834a63f7c1 116 flash:
Sergunb 0:f1834a63f7c1 117 make all
Sergunb 0:f1834a63f7c1 118 st-flash write $(OUT_DIR)/$(OUTPUT).bin 0x08000000
Sergunb 0:f1834a63f7c1 119
Sergunb 0:f1834a63f7c1 120 grbl_src:
Sergunb 0:f1834a63f7c1 121 make all
Sergunb 0:f1834a63f7c1 122
Sergunb 0:f1834a63f7c1 123 clean:
Sergunb 0:f1834a63f7c1 124 -rm $(OBJ)
Sergunb 0:f1834a63f7c1 125 -rm $(OUT_DIR)/$(OUTPUT).map
Sergunb 0:f1834a63f7c1 126 -rm $(OUT_DIR)/$(OUTPUT).bin
Sergunb 0:f1834a63f7c1 127 -rm $(OUT_DIR)/$(OUTPUT).elf