forked from xythobuz/avrSerial
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
executable file
·81 lines (66 loc) · 2.44 KB
/
makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Copyright (c) 2012, Thomas Buck <xythobuz@me.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# - Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
#
# - Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
MCU = atmega2560
F_CPU = 16000000
RM = rm -rf
OPT = s
CSTANDARD = gnu99
ISPPORT = usb
ISPTYPE = avrisp2
DOXYGEN = /Applications/Doxygen.app/Contents/Resources/doxygen
# -----------------------------
CARGS = -mmcu=$(MCU)
CARGS += -O$(OPT)
CARGS += -funsigned-char
CARGS += -funsigned-bitfields
CARGS += -fpack-struct
CARGS += -fshort-enums
CARGS += -Wall -Wstrict-prototypes
CARGS += -std=$(CSTANDARD)
CARGS += -DF_CPU=$(F_CPU)
all: test.hex
doc: serial.c serial.h serial_device.h test.c
$(DOXYGEN) Doxyfile
make -C doc/latex/
program: test.hex
avrdude -p $(MCU) -c $(ISPTYPE) -P $(ISPPORT) -e -U test.hex
test.hex: test.elf
avr-objcopy -O ihex $< $@
test.elf: libavrSerial.a test.o
avr-gcc $(CARGS) test.o --output test.elf -Wl,-L.,-lm,-lavrSerial,--relax
avr-size --mcu=$(MCU) -C test.elf
lib: libavrSerial.a sizelibafter
sizelibafter:
avr-size --mcu=$(MCU) -C libavrSerial.a
libavrSerial.a: serial.o
avr-ar -c -r -s libavrSerial.a serial.o
%.o: %.c
avr-gcc -c $< -o $@ $(CARGS)
clean:
$(RM) *.o
$(RM) *.a
$(RM) *.elf
$(RM) *.hex