Initial commit for stepper controller
[radiotelescope.git] / stepper_controller / arduino / dbg / dbg.mak
1 ###############################################################################\r
2 # Makefile for the project stepper\r
3 ###############################################################################\r
4 \r
5 ## General Flags\r
6 PROJECT = stepper\r
7 MCU = atmega1280\r
8 TARGET = stepper.elf\r
9 CC = avr-gcc\r
10 \r
11 CPP = avr-g++\r
12 RM  = del \r
13 PY      = c:\Python27\python.exe\r
14 \r
15 ## Options common to compile, link and assembly rules\r
16 COMMON = -mmcu=$(MCU)\r
17 \r
18 ## Compile options common for all C compilation units.\r
19 CFLAGS = $(COMMON)\r
20 CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums\r
21 CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d \r
22 \r
23 ## Assembly specific flags\r
24 ASMFLAGS = $(COMMON)\r
25 ASMFLAGS += $(CFLAGS)\r
26 ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2\r
27 \r
28 ## Linker flags\r
29 LDFLAGS = $(COMMON)\r
30 LDFLAGS +=  -Wl,-Map=stepper.map\r
31 \r
32 \r
33 ## Intel Hex file production flags\r
34 HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature\r
35 \r
36 HEX_EEPROM_FLAGS = -j .eeprom\r
37 HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"\r
38 HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings\r
39 \r
40 \r
41 ## Include Directories\r
42 INCLUDES = -I"C:\Documents and Settings\User\My Documents\project\radiotelescope\stepper_controller\arduino\include" -I"C:\Documents and Settings\User\My Documents\project\radiotelescope\stepper_controller\arduino\stepper\qm_code" -I"C:\Documents and Settings\User\My Documents\project\radiotelescope\stepper_controller\arduino\stepper" \r
43 \r
44 ## Objects that must be built in order to link\r
45 OBJECTS = main.o bsp.o qfn.o qepn.o ui.o stepper.o serial_io.o serial_command.o menu.o \r
46 \r
47 ## Objects explicitly added by the user\r
48 LINKONLYOBJECTS = \r
49 \r
50 ## Build\r
51 all: $(TARGET) stepper.hex stepper.eep stepper.lss size\r
52 \r
53 ## Build menu list\r
54 ../stepper/menu.c: ..\stepper\menu.py\r
55         $(PY) ..\stepper\menu.py ..\stepper\menu.c\r
56 \r
57 ## Compile\r
58 main.o: ../stepper/main.c\r
59         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
60 \r
61 bsp.o: ../stepper/bsp.c\r
62         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
63 \r
64 qfn.o: ../source/qfn.c\r
65         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
66 \r
67 qepn.o: ../source/qepn.c\r
68         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
69 \r
70 ui.o: ../stepper/qm_code/ui.c\r
71         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
72 \r
73 stepper.o: ../stepper/qm_code/stepper.c\r
74         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
75 \r
76 serial_io.o: ../stepper/serial_io.c\r
77         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
78 \r
79 serial_command.o: ../stepper/serial_command.c\r
80         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
81 \r
82 menu.o: ../stepper/menu.c\r
83         $(CC) $(INCLUDES) $(CFLAGS) -c  $<\r
84 \r
85 ##Link\r
86 $(TARGET): $(OBJECTS)\r
87          $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)\r
88 \r
89 %.hex: $(TARGET)\r
90         avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@\r
91 \r
92 %.eep: $(TARGET)\r
93         -avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0\r
94 \r
95 %.lss: $(TARGET)\r
96         avr-objdump -h -S $< > $@\r
97 \r
98 size: ${TARGET}\r
99         @echo\r
100         @avr-size -C --mcu=${MCU} ${TARGET}\r
101 \r
102 ## Clean target\r
103 .PHONY: clean\r
104 clean:\r
105         -rm -rf $(OBJECTS) stepper.elf dep/* stepper.hex stepper.eep stepper.lss stepper.map\r
106 \r
107 \r
108 ## Other dependencies\r
109 -include $(shell mkdir dep 2>NUL) $(wildcard dep/*)\r
110 \r

UCC git Repository :: git.ucc.asn.au