0c6e20f541847b69d907dac997b26a24cb0e3771
[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 = -O2 -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 register caching optimization (read documentation).
33 ifeq ($(USE_CURRP_CACHING),)
34   USE_CURRP_CACHING = 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 # Define linker script file here
62 LDSCRIPT= gnuk.ld
63
64 # Imported source files
65 CHIBIOS = ../ChibiOS_2.0.8
66 include $(CHIBIOS)/os/hal/platforms/STM32/platform.mk
67 include $(CHIBIOS)/os/hal/hal.mk
68 include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/port.mk
69 include $(CHIBIOS)/os/kernel/kernel.mk
70 include crypt.mk
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/hw_config.c \
80        $(BOARD_DIR)/board.c \
81        $(CHIBIOS)/os/various/evtimer.c \
82        $(CHIBIOS)/os/various/syscalls.c \
83        $(CRYPTSRC) \
84        main.c usb_lld.c usb_lld_sys.c \
85         usb_desc.c usb_prop.c \
86         usb-icc.c openpgp.c ac.c openpgp-do.c flash.c \
87         random.c neug.c
88
89 ifneq ($(ENABLE_DEBUG),)
90 CSRC += debug.c
91 endif
92
93 ifneq ($(ENABLE_PINPAD),)
94 CSRC += pin-$(ENABLE_PINPAD).c
95 endif
96
97 ifeq ($(ENABLE_PINPAD),dnd)
98 CSRC += usb-msc.c
99 endif
100
101 # List ASM source files here
102 ASMSRC = $(PORTASM) \
103          $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F10x/vectors.s
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 = -DCORTEX_USE_BASEPRI=TRUE
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 =
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/ARM/rules.mk
198 MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd
199
200 distclean: clean
201         -rm -f Makefile gnuk.ld config.h *.inc