6a0dddd421b5e67345114ef40ec412be24ca772d
[gnuk/gnuk.git] / regnual / Makefile
1 # Makefile for reGNUal
2
3 PROJECT = regnual
4
5 OBJS = regnual.o usb-stm32f103.o reset.o
6 LDSCRIPT= regnual.ld
7
8 include ../src/config.mk
9
10 ###################################
11 MCU  = cortex-m3
12
13 TRGT = arm-none-eabi-
14 CC   = $(TRGT)gcc
15 LD   = $(TRGT)ld
16 OBJCOPY   = $(TRGT)objcopy
17 OBJDUMP   = $(TRGT)objdump
18
19 # THUMB-specific options here
20 TOPT = -mthumb -DTHUMB -mno-thumb-interwork
21 # Define C warning options here
22 CWARN = -Wall -Wextra -Wstrict-prototypes
23 MCFLAGS= -mcpu=$(MCU)
24 DEFS += -DFREE_STANDING
25
26 CFLAGS = -O2 -g
27 CFLAGS += -Wa,-alms=$(notdir $(<:.c=.lst)) -fpie
28 CFLAGS += $(CWARN) -I . -I ../chopstx -fno-common $(MCFLAGS) $(TOPT) $(DEFS)
29
30 LDFLAGS = -T$(LDSCRIPT) -nostartfiles $(MCFLAGS) $(TOPT)
31
32
33 ####################
34
35 all: regnual.hex
36
37 regnual.o: regnual.c ../chopstx/sys.h ../chopstx/usb_lld.h
38
39 regnual.hex: regnual.elf
40         $(OBJCOPY) -Obinary regnual.elf regnual.bin
41         $(OBJCOPY) -Oihex regnual.elf regnual.hex
42
43 usb-stm32f103.o: ../chopstx/mcu/usb-stm32f103.c
44         $(CC) $(CFLAGS) -c -o usb-stm32f103.o ../chopstx/mcu/usb-stm32f103.c
45
46 regnual.elf: $(OBJS) $(LDSCRIPT)
47         $(CC) $(LDFLAGS) -o regnual.elf $(OBJS)
48
49 clean:
50         -rm -f $(OBJS) regnual.elf regnual.hex regnual.bin *.lst
51
52 distclean: clean