version 0.18
[gnuk/gnuk.git] / src / Makefile.in
1 # Makefile for Gnuk
2
3 BOARD_DIR=@BOARD_DIR@
4 @PINPAD_MAKE_OPTION@
5 @DEBUG_MAKE_OPTION@
6
7 ##############################################################################
8 # Build global options
9 # NOTE: Can be overridden externally.
10 #
11
12 # Compiler options here.
13 ifeq ($(USE_OPT),)
14   USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
15 endif
16
17 # C++ specific options here (added to USE_OPT).
18 ifeq ($(USE_CPPOPT),)
19   USE_CPPOPT = -fno-rtti
20 endif
21
22 # Enable this if you want the linker to remove unused code and data
23 ifeq ($(USE_LINK_GC),)
24   USE_LINK_GC = yes
25 endif
26
27 # If enabled, this option allows to compile the application in THUMB mode.
28 ifeq ($(USE_THUMB),)
29   USE_THUMB = yes
30 endif
31
32 # Enable register caching optimization (read documentation).
33 ifeq ($(USE_CURRP_CACHING),)
34   USE_CURRP_CACHING = no
35 endif
36
37 #
38 # Build global options
39 ##############################################################################
40
41 ##############################################################################
42 # Architecture or project specific options
43 #
44
45 # Enable this if you really want to use the STM FWLib.
46 ifeq ($(USE_FWLIB),)
47   USE_FWLIB = no
48 endif
49
50 #
51 # Architecture or project specific options
52 ##############################################################################
53
54 ##############################################################################
55 # Project, sources and paths
56 #
57
58 # Define project name here
59 PROJECT = gnuk
60
61 # Define linker script file here
62 LDSCRIPT= gnuk.ld
63
64 # Imported source files
65 CHIBIOS = ../ChibiOS_2.0.8
66 include $(CHIBIOS)/os/hal/platforms/STM32/platform.mk
67 include $(CHIBIOS)/os/hal/hal.mk
68 include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/port.mk
69 include $(CHIBIOS)/os/kernel/kernel.mk
70 include crypt.mk
71
72 # C sources that can be compiled in ARM or THUMB mode depending on the global
73 # setting.
74 CSRC = $(PORTSRC) \
75        $(KERNSRC) \
76        $(HALSRC) \
77        $(PLATFORMSRC) \
78        $(BOARDSRC) \
79        ../boards/common/hw_config.c \
80        $(BOARD_DIR)/board.c \
81        $(CHIBIOS)/os/various/evtimer.c \
82        $(CHIBIOS)/os/various/syscalls.c \
83        $(VCOMSRC) \
84        $(CRYPTSRC) \
85        main.c usb_lld.c \
86         usb_desc.c usb_prop.c \
87         usb-icc.c openpgp.c ac.c openpgp-do.c flash.c \
88         random.c neug.c
89
90 ifneq ($(ENABLE_DEBUG),)
91 CSRC += debug.c
92 endif
93
94 ifneq ($(ENABLE_PINPAD),)
95 CSRC += pin-$(ENABLE_PINPAD).c
96 endif
97
98 ifeq ($(ENABLE_PINPAD),dnd)
99 CSRC += usb-msc.c
100 endif
101
102 # List ASM source files here
103 ASMSRC = $(PORTASM) \
104          $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/vectors.s
105
106 INCDIR = $(CRYPTINCDIR) \
107          $(PORTINC) $(KERNINC) $(TESTINC) \
108          $(HALINC) $(PLATFORMINC) ../boards/common $(BOARD_DIR) \
109          $(CHIBIOS)/os/various
110
111 #
112 # Project, sources and paths
113 ##############################################################################
114
115 ##############################################################################
116 # Compiler settings
117 #
118
119 MCU  = cortex-m3
120
121 #TRGT = arm-elf-
122 TRGT = arm-none-eabi-
123 CC   = $(TRGT)gcc
124 CPPC = $(TRGT)g++
125 # Enable loading with g++ only if you need C++ runtime support.
126 # NOTE: You can use C++ even without C++ support if you are careful. C++
127 #       runtime support makes code size explode.
128 LD   = $(TRGT)gcc
129 #LD   = $(TRGT)g++
130 CP   = $(TRGT)objcopy
131 AS   = $(TRGT)gcc -x assembler-with-cpp
132 OD   = $(TRGT)objdump
133 HEX  = $(CP) -O ihex
134 BIN  = $(CP) -O binary
135
136 # ARM-specific options here
137 AOPT =
138
139 # THUMB-specific options here
140 TOPT = -mthumb -DTHUMB
141
142 # Define C warning options here
143 CWARN = -Wall -Wextra -Wstrict-prototypes
144
145 # Define C++ warning options here
146 CPPWARN = -Wall -Wextra
147
148 #
149 # Compiler settings
150 ##############################################################################
151
152 ##############################################################################
153 # Start of default section
154 #
155
156 # List all default C defines here, like -D_DEBUG=1
157 DDEFS = -DCORTEX_USE_BASEPRI=TRUE
158
159 # List all default ASM defines here, like -D_DEBUG=1
160 DADEFS =
161
162 # List all default directories to look for include files here
163 DINCDIR =
164
165 # List the default directory to look for the libraries here
166 DLIBDIR =
167
168 # List all default libraries here
169 DLIBS =
170
171 #
172 # End of default section
173 ##############################################################################
174
175 ##############################################################################
176 # Start of user section
177 #
178
179 # List all user C define here, like -D_DEBUG=1
180 UDEFS =
181
182 # Define ASM defines here
183 UADEFS =
184
185 # List all user directories here
186 UINCDIR =
187
188 # List the user directory to look for the libraries here
189 ULIBDIR =
190
191 # List all user libraries here
192 ULIBS =
193
194 #
195 # End of user defines
196 ##############################################################################
197
198 ifeq ($(USE_FWLIB),yes)
199   include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
200   CSRC += $(STM32SRC)
201   INCDIR += $(STM32INC)
202   USE_OPT += -DUSE_STDPERIPH_DRIVER
203 endif
204
205 include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk
206 MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd
207
208 distclean: clean
209         -rm -f Makefile gnuk.ld config.h *.inc