Version 0.10
[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
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 # List ASM source files here
105 ASMSRC = $(PORTASM) \
106          $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/vectors.s
107
108 INCDIR = $(CRYPTINCDIR) $(STMUSBINCDIR) $(VCOMDIR) \
109          $(PORTINC) $(KERNINC) $(TESTINC) \
110          $(HALINC) $(PLATFORMINC) ../boards/common $(BOARD_DIR) \
111          $(CHIBIOS)/os/various
112
113 #
114 # Project, sources and paths
115 ##############################################################################
116
117 ##############################################################################
118 # Compiler settings
119 #
120
121 MCU  = cortex-m3
122
123 #TRGT = arm-elf-
124 TRGT = arm-none-eabi-
125 CC   = $(TRGT)gcc
126 CPPC = $(TRGT)g++
127 # Enable loading with g++ only if you need C++ runtime support.
128 # NOTE: You can use C++ even without C++ support if you are careful. C++
129 #       runtime support makes code size explode.
130 LD   = $(TRGT)gcc
131 #LD   = $(TRGT)g++
132 CP   = $(TRGT)objcopy
133 AS   = $(TRGT)gcc -x assembler-with-cpp
134 OD   = $(TRGT)objdump
135 HEX  = $(CP) -O ihex
136 BIN  = $(CP) -O binary
137
138 # ARM-specific options here
139 AOPT =
140
141 # THUMB-specific options here
142 TOPT = -mthumb -DTHUMB
143
144 # Define C warning options here
145 CWARN = -Wall -Wextra -Wstrict-prototypes
146
147 # Define C++ warning options here
148 CPPWARN = -Wall -Wextra
149
150 #
151 # Compiler settings
152 ##############################################################################
153
154 ##############################################################################
155 # Start of default section
156 #
157
158 # List all default C defines here, like -D_DEBUG=1
159 DDEFS = -DCORTEX_USE_BASEPRI=TRUE
160
161 # List all default ASM defines here, like -D_DEBUG=1
162 DADEFS =
163
164 # List all default directories to look for include files here
165 DINCDIR =
166
167 # List the default directory to look for the libraries here
168 DLIBDIR =
169
170 # List all default libraries here
171 DLIBS =
172
173 #
174 # End of default section
175 ##############################################################################
176
177 ##############################################################################
178 # Start of user section
179 #
180
181 # List all user C define here, like -D_DEBUG=1
182 UDEFS =
183
184 # Define ASM defines here
185 UADEFS =
186
187 # List all user directories here
188 UINCDIR =
189
190 # List the user directory to look for the libraries here
191 ULIBDIR =
192
193 # List all user libraries here
194 ULIBS =
195
196 #
197 # End of user defines
198 ##############################################################################
199
200 ifeq ($(USE_FWLIB),yes)
201   include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
202   CSRC += $(STM32SRC)
203   INCDIR += $(STM32INC)
204   USE_OPT += -DUSE_STDPERIPH_DRIVER
205 endif
206
207 include $(CHIBIOS)/os/ports/GCC/ARM/rules.mk
208
209 random_bits:
210         dd if=/dev/random bs=1 of=random_bits count=1024
211
212 distclean: clean
213         -rm -f Makefile gnuk.ld config.h random_bits