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