Add sha256 implementation (from Gnuk)
[gnuk/neug.git] / src / Makefile.in
1 # Makefile for NeuG
2
3 BOARD_DIR=@BOARD_DIR@
4
5 ##############################################################################
6 # Build global options
7 # NOTE: Can be overridden externally.
8 #
9
10 # Compiler options here.
11 ifeq ($(USE_OPT),)
12   USE_OPT = -O2 -ggdb -fomit-frame-pointer -falign-functions=16
13 endif
14
15 # C++ specific options here (added to USE_OPT).
16 ifeq ($(USE_CPPOPT),)
17   USE_CPPOPT = -fno-rtti
18 endif
19
20 # Enable this if you want the linker to remove unused code and data
21 ifeq ($(USE_LINK_GC),)
22   USE_LINK_GC = yes
23 endif
24
25 # If enabled, this option allows to compile the application in THUMB mode.
26 ifeq ($(USE_THUMB),)
27   USE_THUMB = yes
28 endif
29
30 # Enable register caching optimization (read documentation).
31 ifeq ($(USE_CURRP_CACHING),)
32   USE_CURRP_CACHING = no
33 endif
34
35 #
36 # Build global options
37 ##############################################################################
38
39 ##############################################################################
40 # Architecture or project specific options
41 #
42
43 # Enable this if you really want to use the STM FWLib.
44 ifeq ($(USE_FWLIB),)
45   USE_FWLIB = no
46 endif
47
48 #
49 # Architecture or project specific options
50 ##############################################################################
51
52 ##############################################################################
53 # Project, sources and paths
54 #
55
56 # Define project name here
57 PROJECT = neug
58
59 # Define linker script file here
60 LDSCRIPT= neug.ld
61
62 # Imported source files
63 CHIBIOS = ../chibios
64 include $(CHIBIOS)/os/hal/platforms/STM32F1xx/platform.mk
65 include $(CHIBIOS)/os/hal/hal.mk
66 include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32F1xx/port.mk
67 include $(CHIBIOS)/os/kernel/kernel.mk
68
69 # C sources that can be compiled in ARM or THUMB mode depending on the global
70 # setting.
71 CSRC = $(PORTSRC) \
72        $(KERNSRC) \
73        $(HALSRC) \
74        $(PLATFORMSRC) \
75        $(BOARDSRC) \
76        ../boards/common/board-common.c \
77        $(BOARD_DIR)/board.c \
78        sys.c main.c random.c sha256.c usb_lld.c
79
80 # List ASM source files here
81 ASMSRC = $(PORTASM)
82
83 INCDIR = $(CRYPTINCDIR) $(STMUSBINCDIR) $(VCOMDIR) \
84          $(PORTINC) $(KERNINC) $(TESTINC) \
85          $(HALINC) $(PLATFORMINC) ../boards/common $(BOARD_DIR) \
86          $(CHIBIOS)/os/various
87
88 #
89 # Project, sources and paths
90 ##############################################################################
91
92 ##############################################################################
93 # Compiler settings
94 #
95
96 MCU  = cortex-m3
97
98 #TRGT = arm-elf-
99 TRGT = arm-none-eabi-
100 CC   = $(TRGT)gcc
101 CPPC = $(TRGT)g++
102 # Enable loading with g++ only if you need C++ runtime support.
103 # NOTE: You can use C++ even without C++ support if you are careful. C++
104 #       runtime support makes code size explode.
105 LD   = $(TRGT)gcc
106 #LD   = $(TRGT)g++
107 CP   = $(TRGT)objcopy
108 AS   = $(TRGT)gcc -x assembler-with-cpp
109 OD   = $(TRGT)objdump
110 HEX  = $(CP) -O ihex
111 BIN  = $(CP) -O binary
112
113 # ARM-specific options here
114 AOPT =
115
116 # THUMB-specific options here
117 TOPT = -mthumb -DTHUMB
118
119 # Define C warning options here
120 CWARN = -Wall -Wextra -Wstrict-prototypes
121
122 # Define C++ warning options here
123 CPPWARN = -Wall -Wextra
124
125 #
126 # Compiler settings
127 ##############################################################################
128
129 ##############################################################################
130 # Start of default section
131 #
132
133 # List all default C defines here, like -D_DEBUG=1
134 DDEFS =
135
136 # List all default ASM defines here, like -D_DEBUG=1
137 DADEFS =
138
139 # List all default directories to look for include files here
140 DINCDIR =
141
142 # List the default directory to look for the libraries here
143 DLIBDIR =
144
145 # List all default libraries here
146 DLIBS =
147
148 #
149 # End of default section
150 ##############################################################################
151
152 ##############################################################################
153 # Start of user section
154 #
155
156 # List all user C define here, like -D_DEBUG=1
157 UDEFS =
158
159 # Define ASM defines here
160 UADEFS =
161
162 # List all user directories here
163 UINCDIR =
164
165 # List the user directory to look for the libraries here
166 ULIBDIR =
167
168 # List all user libraries here
169 ULIBS =
170
171 #
172 # End of user defines
173 ##############################################################################
174
175 ifeq ($(USE_FWLIB),yes)
176   include $(CHIBIOS)/ext/stm32lib/stm32lib.mk
177   CSRC += $(STM32SRC)
178   INCDIR += $(STM32INC)
179   USE_OPT += -DUSE_STDPERIPH_DRIVER
180 endif
181
182 include $(CHIBIOS)/os/ports/GCC/ARMCMx/rules.mk
183 MCFLAGS= -mcpu=$(MCU) -mfix-cortex-m3-ldrd
184
185 distclean: clean
186         -rm -f Makefile neug.ld config.h usb-strings.c.inc usb-vid-pid-ver.c.inc