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