initial revision
[ucgine.git] / examples / spi-flash-client / Makefile
1 #
2 # Copyright 2015, Olivier MATZ <zer0@droids-corp.org>
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are met:
6 #
7 #     * Redistributions of source code must retain the above copyright
8 #       notice, this list of conditions and the following disclaimer.
9 #     * Redistributions in binary form must reproduce the above copyright
10 #       notice, this list of conditions and the following disclaimer in the
11 #       documentation and/or other materials provided with the distribution.
12 #     * Neither the name of the University of California, Berkeley nor the
13 #       names of its contributors may be used to endorse or promote products
14 #       derived from this software without specific prior written permission.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 # DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27 # XXX
28 UCGINE ?= /home/zer0/projects/ucgine
29
30 MCU = atmega328p
31 F_CPU = 8000000UL
32 AVRDUDE_PORT = /dev/ttyUSB0
33 AVRDUDE_PROG = arduino
34 AVRDUDE_BAUD = 57600
35
36 O ?= $(CURDIR)/build
37
38 CROSS = avr-
39 ifneq ($(CROSS),avr-)
40 $(error AVR target only, cannot override CROSS)
41 endif
42
43 CFLAGS += -g -O2 -Wall
44 CFLAGS += -I$(UCGINE)/arch/avr/include
45 CFLAGS += -mmcu=$(MCU)
46 CFLAGS += -DF_CPU=$(F_CPU)
47 LDFLAGS += -mmcu=$(MCU)
48
49 # cirbuf
50 CFLAGS += -I$(UCGINE)/lib/cirbuf/include
51 exe-y-$(O)/spi-client += $(UCGINE)/lib/cirbuf/ucg_cirbuf.c
52 # uart
53 CFLAGS += -I$(UCGINE)/arch/avr/include
54 CFLAGS += -I$(UCGINE)/arch/avr/uart/include
55 CFLAGS += -I$(UCGINE)/lib/uart
56 CFLAGS += -I$(UCGINE)/lib/uart/include
57 exe-y-$(O)/spi-client += $(UCGINE)/lib/uart/ucg_uart.c
58 exe-y-$(O)/spi-client += $(UCGINE)/arch/avr/uart/ucg_avr_uart.c
59
60 # local files
61 exe-y-$(O)/spi-client += main.c uart.c
62
63 objcopy-hex-y-$(O)/spi-client.hex := $(O)/spi-client
64 objcopy-bin-y-$(O)/spi-client.bin := $(O)/spi-client
65
66 include $(UCGINE)/mk/ucgine.mk
67
68 .PHONY: all
69 all: $(all-targets)
70
71 .PHONY: clean
72 clean: _ucgine_clean
73
74 .PHONY: burn
75 burn: all
76           avrdude -e -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROG) \
77                 -b $(AVRDUDE_BAUD) -U flash:w:$(O)/spi-client:e