more
[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 stmusb.mk
74 include vcomport.mk
75 include crypt.mk
76
77 # C sources that can be compiled in ARM or THUMB mode depending on the global
78 # setting.
79 CSRC = $(PORTSRC) \
80        $(KERNSRC) \
81        $(HALSRC) \
82        $(PLATFORMSRC) \
83        $(BOARDSRC) \
84        ../boards/common/hw_config.c \
85        $(BOARD_DIR)/board.c \
86        $(CHIBIOS)/os/various/evtimer.c \
87        $(CHIBIOS)/os/various/syscalls.c \
88        $(STMUSBSRC) \
89        $(VCOMSRC) \
90        $(CRYPTSRC) \
91        main.c usb_lld.c \
92         usb_desc.c usb_prop.c \
93         usb-icc.c openpgp.c ac.c openpgp-do.c flash.c hardclock.c \
94         random.c neug.c
95
96 ifneq ($(ENABLE_DEBUG),)
97 CSRC += debug.c
98 endif
99
100 ifneq ($(ENABLE_PINPAD),)
101 CSRC += pin-$(ENABLE_PINPAD).c
102 endif
103
104 ifeq ($(ENABLE_PINPAD),dnd)
105 CSRC += usb_msc.c
106 endif
107
108 # List ASM source files here
109 ASMSRC = $(PORTASM) \
110          $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/vectors.s
111
112 INCDIR = $(CRYPTINCDIR) $(STMUSBINCDIR) $(VCOMDIR) \
113          $(PORTINC) $(KERNINC) $(TESTINC) \
114          $(HALINC) $(PLATFORMINC) ../boards/common $(BOARD_DIR) \
115          $(CHIBIOS)/os/various
116
117 #
118 # Project, sources and paths
119 ##############################################################################
120
121 ##############################################################################
122 # Compiler settings
123 #
124
125 MCU  = cortex-m3
126
127 #TRGT = arm-elf-
128 TRGT = arm-none-eabi-
129 CC   = $(TRGT)gcc
130 CPPC = $(TRGT)g++
131 # Enable loading with g++ only if you need C++ runtime support.
132 # NOTE: You can use C++ even without C++ support if you are careful. C++
133 #       runtime support makes code size explode.
134 LD   = $(TRGT)gcc
135 #LD   = $(TRGT)g++
136 CP   = $(TRGT)objcopy
137 AS   = $(TRGT)gcc -x assembler-with-cpp
138 OD   = $(TRGT)objdump
139 HEX  = $(CP) -O ihex
140 BIN  = $(CP) -O binary
141
142 # ARM-specific options here
143 AOPT =
144
145 # THUMB-specific options here
146 TOPT = -mthumb -DTHUMB
147
148 # Define C warning options here
149 CWARN = -Wall -Wextra -Wstrict-prototypes
150
151 # Define C++ warning options here
152 CPPWARN = -Wall -Wextra
153
154 #
155 # Compiler settings
156 ##############################################################################
157
158 ##############################################################################
159 # Start of default section
160 #
161
162 # List all default C defines here, like -D_DEBUG=1
163 DDEFS = -DCORTEX_USE_BASEPRI=TRUE
164
165 # List all default ASM defines here, like -D_DEBUG=1
166 DADEFS =
167
168 # List all default directories to look for include files here
169 DINCDIR =
170
171 # List the default directory to look for the libraries here
172 DLIBDIR =
173
174 # List all default libraries here
175 DLIBS =
176
177 #
178 # End of default section
179 ##############################################################################
180
181 ##############################################################################
182 # Start of user section
183 #
184
185 # List all user C define here, like -D_DEBUG=1
186 UDEFS =
187
188 # Define ASM defines here
189 UADEFS =
190
191 # List all user directories here
192 UINCDIR =
193
194 # List the user directory to look for the libraries here
195 ULIBDIR =
196
197 # List all user libraries here
198 ULIBS =
199
200 #
201 # End of user defines
202 ##############################################################################
203
204 ifeq ($(USE_FWLIB),yes)
205   include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
206   CSRC += $(STM32SRC)
207   INCDIR += $(STM32INC)
208   USE_OPT += -DUSE_STDPERIPH_DRIVER
209 endif
210
211 include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk
212 MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd
213
214 distclean: clean
215         -rm -f Makefile gnuk.ld config.h