added PINPAD option to configure
[gnuk/gnuk.git] / src / Makefile.in
1 # Makefile for Gnuk
2
3 @PINPAD_MAKE_OPTION@
4 @DEBUG_MAKE_OPTION@
5 ifneq ($(ENABLE_DEBUG),)
6 ENABLE_VCOMPORT=1
7 endif
8
9 ##############################################################################
10 # Build global options
11 # NOTE: Can be overridden externally.
12 #
13
14 # Compiler options here.
15 ifeq ($(USE_OPT),)
16   USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
17 endif
18
19 # C++ specific options here (added to USE_OPT).
20 ifeq ($(USE_CPPOPT),)
21   USE_CPPOPT = -fno-rtti
22 endif
23
24 # Enable this if you want the linker to remove unused code and data
25 ifeq ($(USE_LINK_GC),)
26   USE_LINK_GC = yes
27 endif
28
29 # If enabled, this option allows to compile the application in THUMB mode.
30 ifeq ($(USE_THUMB),)
31   USE_THUMB = yes
32 endif
33
34 # Enable register caching optimization (read documentation).
35 ifeq ($(USE_CURRP_CACHING),)
36   USE_CURRP_CACHING = no
37 endif
38
39 #
40 # Build global options
41 ##############################################################################
42
43 ##############################################################################
44 # Architecture or project specific options
45 #
46
47 # Enable this if you really want to use the STM FWLib.
48 ifeq ($(USE_FWLIB),)
49   USE_FWLIB = no
50 endif
51
52 #
53 # Architecture or project specific options
54 ##############################################################################
55
56 ##############################################################################
57 # Project, sources and paths
58 #
59
60 # Define project name here
61 PROJECT = gnuk
62
63 # Define linker script file here
64 LDSCRIPT= gnuk.ld
65
66 # Imported source files
67 CHIBIOS = ../ChibiOS_2.0.8
68 include $(CHIBIOS)/os/hal/platforms/STM32/platform.mk
69 include $(CHIBIOS)/os/hal/hal.mk
70 include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/port.mk
71 include $(CHIBIOS)/os/kernel/kernel.mk
72 include stmusb.mk
73 include vcomport.mk
74 include crypt.mk
75 include @BOARD_MAKEFILE@
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        $(CHIBIOS)/os/various/evtimer.c \
85        $(CHIBIOS)/os/various/syscalls.c \
86        $(STMUSBSRC) \
87        $(VCOMSRC) \
88        $(CRYPTSRC) \
89        main.c usb_lld.c \
90         usb_desc.c usb_prop.c \
91         usb-icc.c openpgp.c ac.c openpgp-do.c flash.c hardclock.c \
92         random.c
93
94 ifneq ($(ENABLE_DEBUG),)
95 CSRC += debug.c
96 endif
97
98 ifneq ($(ENABLE_PINPAD),)
99 CSRC += pin-dial.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) $(STMUSBINCDIR) $(VCOMDIR) \
107          $(PORTINC) $(KERNINC) $(TESTINC) \
108          $(HALINC) $(PLATFORMINC) $(BOARDINC) \
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
207 OBJS += random-data.o
208 OUTFILES += random_bits
209
210 random_bits:
211         dd if=/dev/random bs=1 of=random_bits count=1024
212
213 random-data.o: random_bits
214         $(CP) -I binary $< -O elf32-littlearm -B arm \
215               --rename-section \
216                 .data=.gnuk_random,alloc,load,readonly,data,contents \
217                 $@
218
219 $(PROJECT).elf: random-data.o
220
221 distclean: clean
222         -rm -f Makefile gnuk.ld config.h