Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Makefile@0:f1834a63f7c1, 2017-09-04 (annotated)
- Committer:
- Sergunb
- Date:
- Mon Sep 04 12:03:42 2017 +0000
- Revision:
- 0:f1834a63f7c1
Initial commit
Who changed what in which revision?
| User | Revision | Line number | New 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 |