15fd4e6b869125fa280b29693b2b058f74573568
[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 = -O3 -Os -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 this if you want to see the full log while compiling.
33 ifeq ($(USE_VERBOSE_COMPILE),)
34   USE_VERBOSE_COMPILE = 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 # Imported source files
62 CHIBIOS = ../chibios
63 include $(CHIBIOS)/os/hal/platforms/STM32F1xx/platform.mk
64 include $(CHIBIOS)/os/hal/hal.mk
65 include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F1xx/port.mk
66 include $(CHIBIOS)/os/kernel/kernel.mk
67 include crypt.mk
68
69 # Define linker script file here
70 LDSCRIPT= gnuk.ld
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/board-common.c \
80        $(BOARD_DIR)/board.c \
81        $(CHIBIOS)/os/various/evtimer.c \
82        $(CHIBIOS)/os/various/syscalls.c \
83        $(CRYPTSRC) \
84        main.c usb_stm32f103.c adc_stm32f103.c \
85         usb_desc.c usb_ctrl.c \
86         usb-icc.c openpgp.c ac.c openpgp-do.c flash.c \
87         bn.c modp256.c jpc.c mod.c ec_p256.c \
88         random.c neug.c sys.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
105 INCDIR = $(CRYPTINCDIR) \
106          $(PORTINC) $(KERNINC) $(TESTINC) \
107          $(HALINC) $(PLATFORMINC) ../boards/common $(BOARD_DIR) \
108          $(CHIBIOS)/os/various
109
110 #
111 # Project, sources and paths
112 ##############################################################################
113
114 ##############################################################################
115 # Compiler settings
116 #
117
118 MCU  = cortex-m3
119
120 #TRGT = arm-elf-
121 TRGT = arm-none-eabi-
122 CC   = $(TRGT)gcc
123 CPPC = $(TRGT)g++
124 # Enable loading with g++ only if you need C++ runtime support.
125 # NOTE: You can use C++ even without C++ support if you are careful. C++
126 #       runtime support makes code size explode.
127 LD   = $(TRGT)gcc
128 #LD   = $(TRGT)g++
129 CP   = $(TRGT)objcopy
130 AS   = $(TRGT)gcc -x assembler-with-cpp
131 OD   = $(TRGT)objdump
132 HEX  = $(CP) -O ihex
133 BIN  = $(CP) -O binary
134
135 # ARM-specific options here
136 AOPT =
137
138 # THUMB-specific options here
139 TOPT = -mthumb -DTHUMB
140
141 # Define C warning options here
142 CWARN = -Wall -Wextra -Wstrict-prototypes
143
144 # Define C++ warning options here
145 CPPWARN = -Wall -Wextra
146
147 #
148 # Compiler settings
149 ##############################################################################
150
151 ##############################################################################
152 # Start of default section
153 #
154
155 # List all default C defines here, like -D_DEBUG=1
156 DDEFS =
157
158 # List all default ASM defines here, like -D_DEBUG=1
159 DADEFS =
160
161 # List all default directories to look for include files here
162 DINCDIR =
163
164 # List the default directory to look for the libraries here
165 DLIBDIR =
166
167 # List all default libraries here
168 DLIBS =
169
170 #
171 # End of default section
172 ##############################################################################
173
174 ##############################################################################
175 # Start of user section
176 #
177
178 # List all user C define here, like -D_DEBUG=1
179 UDEFS = @KEYGEN_SUPPORT@
180
181 # Define ASM defines here
182 UADEFS =
183
184 # List all user directories here
185 UINCDIR =
186
187 # List the user directory to look for the libraries here
188 ULIBDIR =
189
190 # List all user libraries here
191 ULIBS =
192
193 #
194 # End of user defines
195 ##############################################################################
196
197 include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk
198 MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd
199
200 distclean: clean
201         -rm -f Makefile gnuk.ld config.h *.inc