1212 |
kakl |
1 |
# Makefile for AVR function library development and examples |
|
|
2 |
# Author: Pascal Stang |
|
|
3 |
# |
|
|
4 |
# For those who have never heard of makefiles: a makefile is essentially a |
|
|
5 |
# script for compiling your code. Most C/C++ compilers in the world are |
|
|
6 |
# command line programs and this is even true of programming environments |
|
|
7 |
# which appear to be windows-based (like Microsoft Visual C++). Although |
|
|
8 |
# you could use AVR-GCC directly from the command line and try to remember |
|
|
9 |
# the compiler options each time, using a makefile keeps you free of this |
|
|
10 |
# tedious task and automates the process. |
|
|
11 |
# |
|
|
12 |
# For those just starting with AVR-GCC and not used to using makefiles, |
|
|
13 |
# I've added some extra comments above several of the makefile fields which |
|
|
14 |
# you will have to deal with. |
|
|
15 |
|
|
|
16 |
########### change this lines according to your project ################## |
|
|
17 |
#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.) |
|
|
18 |
# MCU = atmega163 |
|
|
19 |
# MCU = atmega161 |
|
|
20 |
MCU = atmega128 |
|
|
21 |
|
|
|
22 |
#put the name of the target file here (without extension) |
|
|
23 |
# Your "target" file is your C source file that is at the top level of your code. |
|
|
24 |
# In other words, this is the file which contains your main() function. |
|
|
25 |
|
|
|
26 |
TRG = gpstest |
|
|
27 |
|
|
|
28 |
#put your C sourcefiles here |
|
|
29 |
# Here you must list any C source files which are used by your target file. |
|
|
30 |
# They will be compiled in the order you list them, so it's probably best |
|
|
31 |
# to list $(TRG).c, your top-level target file, last. |
|
|
32 |
|
1269 |
kakl |
33 |
# SRC = $(AVRLIB)/buffer.c $(AVRLIB)/uart2.c $(AVRLIB)/rprintf.c $(AVRLIB)/timer.c $(AVRLIB)/vt100.c $(AVRLIB)/tsip.c $(AVRLIB)/nmea.c $(AVRLIB)/gps.c $(AVRLIB)/lcd_hd44780.c $(AVRLIB)/utm.c $(TRG).c |
|
|
34 |
SRC = buffer.c uart2.c rprintf.c timer.c vt100.c tsip.c nmea.c gps.c lcd_hd44780.c utm.c $(TRG).c |
1212 |
kakl |
35 |
|
|
|
36 |
#put additional assembler source file here |
|
|
37 |
# The ASRC line allows you to list files which contain assembly code/routines that |
|
|
38 |
# you would like to use from within your C programs. The assembly code must be |
|
|
39 |
# written in a special way to be usable as a function from your C code. |
|
|
40 |
|
|
|
41 |
ASRC = |
|
|
42 |
|
|
|
43 |
#additional libraries and object files to link |
|
|
44 |
# Libraries and object files are collections of functions which have already been |
|
|
45 |
# compiled. If you have such files, list them here, and you will be able to use |
|
|
46 |
# use the functions they contain in your target program. |
|
|
47 |
|
|
|
48 |
LIB = |
|
|
49 |
|
|
|
50 |
#additional includes to compile |
|
|
51 |
INC = |
|
|
52 |
|
|
|
53 |
#assembler flags |
|
|
54 |
ASFLAGS = -Wa, -gstabs |
|
|
55 |
|
|
|
56 |
#compiler flags |
|
|
57 |
CPFLAGS = -g -Os -Wall -Wstrict-prototypes -I$(AVRLIB) -Wa,-ahlms=$(<:.c=.lst) |
|
|
58 |
|
|
|
59 |
#linker flags |
|
|
60 |
# LDFLAGS = -Wl,-Map=$(TRG).map,--cref |
|
|
61 |
LDFLAGS = -Wl,-Map=$(TRG).map,--cref -lm |
|
|
62 |
#PRINTF_LIB = -Wl,-u,vfprintf -lprintf_flt |
|
|
63 |
|
|
|
64 |
########### you should not need to change the following line ############# |
|
|
65 |
include $(AVRLIB)/make/avrproj_make |
|
|
66 |
|
|
|
67 |
###### dependecies, add any dependencies you need here ################### |
|
|
68 |
# Dependencies tell the compiler which files in your code depend on which |
|
|
69 |
# other files. When you change a piece of code, the dependencies allow |
|
|
70 |
# the compiler to intelligently figure out which files are affected and |
|
|
71 |
# need to be recompiled. You should only list the dependencies of *.o |
|
|
72 |
# files. For example: uart.o is the compiled output of uart.c and uart.h |
|
|
73 |
# and therefore, uart.o "depends" on uart.c and uart.h. But the code in |
|
|
74 |
# uart.c also uses information from global.h, so that file should be listed |
|
|
75 |
# in the dependecies too. That way, if you alter global.h, uart.o will be |
|
|
76 |
# recompiled to take into account the changes. |
|
|
77 |
|
|
|
78 |
buffer.o : buffer.c buffer.h |
|
|
79 |
uart.o : uart.c uart.h global.h |
|
|
80 |
uart2.o : uart2.c uart2.h global.h |
|
|
81 |
rprintf.o : rprintf.c rprintf.h |
1269 |
kakl |
82 |
#a2d.o : a2d.c a2d.h |
1212 |
kakl |
83 |
timer.o : timer.c timer.h global.h |
1269 |
kakl |
84 |
#pulse.o : pulse.c pulse.h timer.h global.h |
1212 |
kakl |
85 |
lcd.o : lcd.c lcd.h lcdconf.h global.h |
1269 |
kakl |
86 |
#i2c.o : i2c.c i2c.h global.h |
|
|
87 |
#spi.o : spi.c spi.h global.h |
|
|
88 |
#swpwm.o : swpwm.c swpwm.h global.h |
|
|
89 |
#servo.o : servo.c servo.h global.h |
|
|
90 |
#swuart.o : swuart.c swuart.h global.h |
1212 |
kakl |
91 |
tsip.o : tsip.c tsip.h global.h |
|
|
92 |
nmea.o : nmea.c nmea.h global.h |
|
|
93 |
vt100.o : vt100.c vt100.h global.h |
|
|
94 |
gps.o : gps.c gps.h global.h |
|
|
95 |
lcd_hd44780.o : lcd_hd44780.c lcd_hd44780.h global.h |
1214 |
kakl |
96 |
utm.o : utm.c utm.h |
1212 |
kakl |
97 |
$(TRG).o : $(TRG).c global.h |