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