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