blob: f7a75fe6a818aef4beb731931a6549921c9c4d6a [file] [log] [blame]
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +01001AC_PREREQ([2.69])
Liam Girdwood6bb37832018-01-10 20:43:25 +00002AC_INIT([sof],[m4_esyscmd(./version.sh)],[sound-open-firmware@alsa-project.org])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +01003AC_CONFIG_SRCDIR([src/init/init.c])
4AC_CONFIG_HEADERS([src/include/config.h])
5AC_CONFIG_MACRO_DIRS([m4])
6AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability subdir-objects silent-rules color-tests dist-xz tar-ustar])
7
8# Initialize maintainer mode
9AM_MAINTAINER_MODE([enable])
10
11# get version info from git
Pierre-Louis Bossart81708a52018-04-04 18:46:50 -050012m4_define(sof_major, `cat .version | cut -dv -f2 | cut -d. -f1`)
13m4_define(sof_minor, `cat .version | cut -d. -f2 | cut -d- -f1`)
14m4_define(sof_micro, `cat .version | cut -d. -f3 | cut -d- -f1`)
15AC_DEFINE_UNQUOTED([SOF_MAJOR], sof_major, [Sof major version])
16AC_DEFINE_UNQUOTED([SOF_MINOR], sof_minor, [Sof minor version])
17AC_DEFINE_UNQUOTED([SOF_MICRO], sof_micro, [Sof micro version])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010018
19AC_CANONICAL_HOST
20
Liam Girdwoodcc9fba32018-01-22 23:31:24 +000021# General assembler flags
22ASFLAGS="-DASSEMBLY"
23AC_SUBST(ASFLAGS)
24
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010025# Cross compiler tool libgcc and headers
Liam Girdwood8855ce52016-10-18 17:18:16 +010026AC_ARG_WITH([root-dir],
Tomasz Laudaac7b0c22018-06-04 12:03:42 +010027 AS_HELP_STRING([--with-root-dir], [Specify location of cross gcc libraries and headers]),
28 [], [with_root_dir=no])
29
30# MEU location
31AC_ARG_WITH([meu],
32 AS_HELP_STRING([--with-meu], [Specify location of MEU tool]),
33 [], [with_meu=no])
34if test "x$with_meu" != "xno"; then
35 MEU_PATH="$with_meu"
36 AC_SUBST(MEU_PATH)
37
38 MEU_VERSION=$($with_meu/meu -ver | grep "Version:" | cut -d" " -f6)
39 AX_COMPARE_VERSION([$MEU_VERSION], [ge], [12.0.0.1035], [MEU_OFFSET=1088], [MEU_OFFSET=1152])
40 AC_SUBST(MEU_OFFSET)
41fi
42AM_CONDITIONAL(USE_MEU, test "x$with_meu" != "xno")
43
44# Private key location
45AC_ARG_WITH([key],
46 AS_HELP_STRING([--with-key], [Specify location of private key]),
47 [], [with_key=no])
48if test "x$with_meu" != "xno"; then
49 if test "x$with_key" != "xno"; then
50 PRIVATE_KEY="$with_key"
51 AC_SUBST(PRIVATE_KEY)
52 else
53 AC_MSG_ERROR([Private key location not specified])
54 fi
55fi
Ranjani Sridharan05058232018-01-24 22:42:38 -080056
57# check if we are building FW image or library
58AC_ARG_ENABLE(library, [AS_HELP_STRING([--enable-library],[build library])], have_library=$enableval, have_library=no)
59if test "$have_library" = "yes"; then
60 AC_DEFINE([CONFIG_LIB], [1], [Configure for Shared Library])
61fi
62AM_CONDITIONAL(BUILD_LIB, test "$have_library" = "yes")
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010063
Liam Girdwood05ef4342018-02-13 20:29:40 +000064# check if we are building tools
65AC_ARG_ENABLE(rimage, [AS_HELP_STRING([--enable-rimage],[build rimage tool])], have_rimage=$enableval, have_rimage=no)
66if test "$have_rimage" = "yes"; then
67 AC_DEFINE([CONFIG_RIMAGE], [1], [Configure to build rimage])
Liam Girdwood7c960662018-07-14 17:34:15 +010068 AM_CFLAGS="-O2 -g -Wall -Werror -Wl,-EL -Wmissing-prototypes"
Liam Girdwood05ef4342018-02-13 20:29:40 +000069fi
70AM_CONDITIONAL(BUILD_RIMAGE, test "$have_rimage" = "yes")
71
Marcin Makafa325252018-07-05 12:47:22 +020072# check if we are building docs
73AC_ARG_ENABLE(doc, [AS_HELP_STRING([--enable-doc],[build doc])], have_doc=$enableval, have_doc=no)
74if test "$have_doc" = "yes"; then
75 AC_DEFINE([CONFIG_DOC], [1], [Configure to build doc])
76fi
77AM_CONDITIONAL(BUILD_DOC, test "$have_doc" = "yes")
78
Seppo Ingalsuo447ac9b2018-05-11 17:03:03 +030079# Disable DMIC driver if requested, by default build for supported platforms
80AC_ARG_ENABLE([dmic], AS_HELP_STRING([--disable-dmic], [Disable DMIC driver]))
81AS_IF([test "x$enable_dmic" != "xno"], [
82 AC_DEFINE([CONFIG_DMIC], [1], [Configure to build DMIC driver])
83])
84
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010085# Architecture support
86AC_ARG_WITH([arch],
87 AS_HELP_STRING([--with-arch], [Specify DSP architecture]),
88 [], [with_arch=no])
89
90case "$with_arch" in
91 xtensa*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010092
93 ARCH_CFLAGS="-mtext-section-literals"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010094
95 ARCH_LDFLAGS="-nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010096
Janusz Jankowski17c929e2018-07-06 13:58:47 +020097 # automake FLAGS defined here
98 AM_CFLAGS="-fno-inline-functions -nostdlib -mlongcalls"
Janusz Jankowski8235d3d2018-07-16 13:24:18 +020099 AM_LDFLAGS=""
100 AM_CCASFLAGS=""
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100101
Liam Girdwooda2acc882018-07-14 17:33:19 +0100102 # GCC needs these additional flags on top of any user flags.
103 CFLAGS="${CFLAGS:+$CFLAGS } -O2 -g -Wall -Werror -Wl,-EL -Wmissing-prototypes"
Janusz Jankowski8235d3d2018-07-16 13:24:18 +0200104 LDFLAGS="${LDFLAGS:+$LDFLAGS } -nostdlib"
105 CCASFLAGS="${CCASFLAGS:+$CCASFLAGS } -fno-inline-functions -nostdlib -mlongcalls"
Liam Girdwooda2acc882018-07-14 17:33:19 +0100106
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100107 ARCH="xtensa"
108 AC_SUBST(ARCH)
Ranjani Sridharan05058232018-01-24 22:42:38 -0800109
110 AS_IF([test "x$with_root_dir" = xno],
111 AC_MSG_ERROR([Please specify cross compiler root header directory]),
112 [ROOT_DIR=$with_root_dir])
113 AC_SUBST(ROOT_DIR)
114 ;;
115 host*)
116
117 ARCH_CFLAGS="-g"
Ranjani Sridharan05058232018-01-24 22:42:38 -0800118
Janusz Jankowski17c929e2018-07-06 13:58:47 +0200119 # automake FLAGS defined here
Liam Girdwood8c907e92018-07-14 17:34:57 +0100120 AM_CFLAGS="-O3 -Wall -Werror -Wl,-EL -Wmissing-prototypes"
Janusz Jankowski17c929e2018-07-06 13:58:47 +0200121 AM_LDFLAGS="-lpthread"
Liam Girdwood8c907e92018-07-14 17:34:57 +0100122 AM_CCASFLAGS="-O3 -Wall -Werror -Wl,-EL -Wmissing-prototypes"
Ranjani Sridharan05058232018-01-24 22:42:38 -0800123
124 ARCH="host"
125 AC_SUBST(ARCH)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100126 ;;
127 *)
Marcin Makafa325252018-07-05 12:47:22 +0200128 if test "$have_rimage" = "no" && test "$have_doc" = "no" ; then
Liam Girdwood05ef4342018-02-13 20:29:40 +0000129 AC_MSG_ERROR([DSP architecture not specified])
130 fi
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100131 ;;
132esac
133
Janusz Jankowski17c929e2018-07-06 13:58:47 +0200134AC_SUBST(ARCH_CFLAGS)
135AC_SUBST(ARCH_LDFLAGS)
136
137AC_SUBST(AM_CFLAGS)
138AC_SUBST(AM_LDFLAGS)
139AC_SUBST(AM_CCASFLAGS)
140
Liam Girdwood2eab4672017-11-27 05:24:51 +0800141AM_CONDITIONAL(BUILD_XTENSA, test "$ARCH" = "xtensa")
Ranjani Sridharan05058232018-01-24 22:42:38 -0800142AM_CONDITIONAL(BUILD_HOST, test "$ARCH" = "host")
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100143
Tomasz Lauda01ebad72018-06-27 12:00:58 +0200144# check for xtensa extension
145AM_CONDITIONAL(BUILD_XTENSA_SMP, test "$with_arch" = "xtensa-smp")
146
Janusz Jankowskid6d9efb2018-06-11 10:31:30 +0200147# Cmocka tests
148AC_ARG_WITH([cmocka-prefix],
149 AS_HELP_STRING([--with-cmocka-prefix], [Path to cmocka]),
150 [], [with_cmocka_prefix="no"])
151
Janusz Jankowski98933132018-06-15 10:46:42 +0200152# in case of native build, cmocka may be installed
153HAVE_CMOCKA_PKG=no
154AC_CHECK_LIB(cmocka, _cmocka_run_group_tests, [HAVE_CMOCKA_PKG=yes])
155
Janusz Jankowskid6d9efb2018-06-11 10:31:30 +0200156if test "x$with_arch" != "xno"; then
157 if test "x$with_cmocka_prefix" = "xno"; then
158 if test "$ARCH" = "xtensa"; then
159 AC_MSG_WARN([Need cmocka to run unit tests. Path to cmocka not specified. Please use --with-cmocka-prefix option.])
Janusz Jankowski98933132018-06-15 10:46:42 +0200160 elif test "x$HAVE_CMOCKA_PKG" = "xno"; then
161 AC_MSG_WARN([Need cmocka to run unit tests. No cmocka library found. Please install cmocka or use --with-cmocka-prefix option.])
Janusz Jankowskid6d9efb2018-06-11 10:31:30 +0200162 fi
163 else
164 CMOCKA_PREFIX="$with_cmocka_prefix"
165 AC_SUBST(CMOCKA_PREFIX)
166 fi
167fi
168
169AM_CONDITIONAL(HAVE_CMOCKA_PREFIX, test "x$with_cmocka_prefix" != "xno")
170
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100171# Platform support
172AC_ARG_WITH([platform],
173 AS_HELP_STRING([--with-platform], [Specify Host Platform]),
174 [], [with_platform=no])
175
176case "$with_platform" in
177 baytrail*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100178
179 PLATFORM_LDSCRIPT="baytrail.x"
180 AC_SUBST(PLATFORM_LDSCRIPT)
181
182 PLATFORM="baytrail"
183 AC_SUBST(PLATFORM)
184
185 FW_NAME="byt"
186 AC_SUBST(FW_NAME)
187
Liam Girdwoodf63c7892017-12-04 20:08:39 +0000188 XTENSA_CORE="hifiep_bd5"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100189 AC_SUBST(XTENSA_CORE)
190
191 AC_DEFINE([CONFIG_BAYTRAIL], [1], [Configure for Baytrail])
Keyon Jiefb784212017-12-06 21:16:32 +0800192 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100193 ;;
194 cherrytrail*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100195
196 PLATFORM_LDSCRIPT="baytrail.x"
197 AC_SUBST(PLATFORM_LDSCRIPT)
198
199 PLATFORM="baytrail"
200 AC_SUBST(PLATFORM)
201
202 FW_NAME="cht"
203 AC_SUBST(FW_NAME)
204
Liam Girdwoodf63c7892017-12-04 20:08:39 +0000205 XTENSA_CORE="hifiep_bd5"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100206 AC_SUBST(XTENSA_CORE)
207
208 AC_DEFINE([CONFIG_CHERRYTRAIL], [1], [Configure for Cherrytrail])
Keyon Jiefb784212017-12-06 21:16:32 +0800209 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100210 ;;
Liam Girdwood095c9072018-01-23 14:53:00 +0000211 apollolake*)
212
213 PLATFORM_LDSCRIPT="apollolake.x"
214 AC_SUBST(PLATFORM_LDSCRIPT)
215
216 PLATFORM="apollolake"
217 AC_SUBST(PLATFORM)
218
219 FW_NAME="apl"
220 AC_SUBST(FW_NAME)
221
222 XTENSA_CORE="hifi3_std"
223 AC_SUBST(XTENSA_CORE)
224
225 AC_DEFINE([CONFIG_APOLLOLAKE], [1], [Configure for Apololake])
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200226 AC_DEFINE([CONFIG_BOOT_LOADER], [1], [Configure Boot Loader])
Liam Girdwood095c9072018-01-23 14:53:00 +0000227 AC_DEFINE([CONFIG_IRQ_MAP], [1], [Configure IRQ maps])
Keyon Jiec610c642018-02-08 20:48:11 +0800228 AC_DEFINE([CONFIG_DMA_GW], [1], [Configure DMA Gateway])
Liam Girdwood095c9072018-01-23 14:53:00 +0000229 ;;
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000230 haswell*)
231
232 PLATFORM_LDSCRIPT="haswell.x"
233 AC_SUBST(PLATFORM_LDSCRIPT)
234
235 PLATFORM="haswell"
236 AC_SUBST(PLATFORM)
237
238 FW_NAME="hsw"
239 AC_SUBST(FW_NAME)
240
241 XTENSA_CORE="hifiep_bd5"
242 AC_SUBST(XTENSA_CORE)
243
244 AC_DEFINE([CONFIG_HASWELL], [1], [Configure for Haswell])
245 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
246 ;;
247 broadwell*)
248
249 PLATFORM_LDSCRIPT="broadwell.x"
250 AC_SUBST(PLATFORM_LDSCRIPT)
251
252 PLATFORM="haswell"
253 AC_SUBST(PLATFORM)
254
255 FW_NAME="bdw"
256 AC_SUBST(FW_NAME)
257
258 XTENSA_CORE="hifiep_bd5"
259 AC_SUBST(XTENSA_CORE)
260
261 AC_DEFINE([CONFIG_BROADWELL], [1], [Configure for Broadwell])
262 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
263 ;;
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000264 cannonlake*)
265
266 PLATFORM_LDSCRIPT="cannonlake.x"
267 AC_SUBST(PLATFORM_LDSCRIPT)
268
269 PLATFORM="cannonlake"
270 AC_SUBST(PLATFORM)
271
272 FW_NAME="cnl"
273 AC_SUBST(FW_NAME)
274
275 XTENSA_CORE="hifi4_std"
276 AC_SUBST(XTENSA_CORE)
277
278 AC_DEFINE([CONFIG_CANNONLAKE], [1], [Configure for Cannonlake])
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200279 AC_DEFINE([CONFIG_BOOT_LOADER], [1], [Configure Boot Loader])
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000280 AC_DEFINE([CONFIG_IRQ_MAP], [1], [Configure IRQ maps])
Keyon Jiec610c642018-02-08 20:48:11 +0800281 AC_DEFINE([CONFIG_DMA_GW], [1], [Configure DMA Gateway])
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000282 ;;
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100283 *)
Marcin Makafa325252018-07-05 12:47:22 +0200284 if test "$have_rimage" = "no" && test "$have_doc" = "no"; then
Liam Girdwood05ef4342018-02-13 20:29:40 +0000285 if test "$ARCH" = "host"; then
286 PLATFORM="host"
287 AC_SUBST(PLATFORM)
288 else
289 AC_MSG_ERROR([Host platform not specified])
290 fi
Ranjani Sridharan05058232018-01-24 22:42:38 -0800291 fi
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100292 ;;
293esac
294
Liam Girdwood2eab4672017-11-27 05:24:51 +0800295AM_CONDITIONAL(BUILD_BAYTRAIL, test "$FW_NAME" = "byt")
296AM_CONDITIONAL(BUILD_CHERRYTRAIL, test "$FW_NAME" = "cht")
297AM_CONDITIONAL(BUILD_HASWELL, test "$FW_NAME" = "hsw")
298AM_CONDITIONAL(BUILD_BROADWELL, test "$FW_NAME" = "bdw")
299AM_CONDITIONAL(BUILD_APOLLOLAKE, test "$FW_NAME" = "apl")
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000300AM_CONDITIONAL(BUILD_CANNONLAKE, test "$FW_NAME" = "cnl")
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200301AM_CONDITIONAL(BUILD_BOOTLOADER, test "$FW_NAME" = "apl" -o "$FW_NAME" = "cnl")
Tomasz Lauda14ca1fa2018-06-19 16:55:34 +0200302AM_CONDITIONAL(BUILD_CAVS, test "$FW_NAME" = "apl" -o "$FW_NAME" = "cnl")
Liam Girdwood095c9072018-01-23 14:53:00 +0000303AM_CONDITIONAL(BUILD_MODULE, test "$FW_NAME" = "apl" -o "$FW_NAME" = "cnl")
Rander Wang45027652018-02-08 16:06:33 +0800304AM_CONDITIONAL(BUILD_APL_SSP, test "$FW_NAME" = "apl" -o "$FW_NAME" = "cnl")
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000305
Sebastien Guiriecca23f512016-11-02 08:44:19 +0100306# DSP core support (Optional)
307AC_ARG_WITH([dsp-core],
308 AS_HELP_STRING([--with-dsp-core], [Specify DSP Core]),
309 [], [with_dsp_core=no])
310
311case "$with_dsp_core" in
Tomasz Lauda7f352662018-04-05 17:20:09 +0200312 *)
313 XTENSA_CORE="$with_dsp_core"
Sebastien Guiriecca23f512016-11-02 08:44:19 +0100314 AC_SUBST(XTENSA_CORE)
315 ;;
316
317esac
318
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000319PLATFORM_BOOT_LDR_LDSCRIPT="boot_ldr.x"
320AC_SUBST(PLATFORM_BOOT_LDR_LDSCRIPT)
321
Ranjani Sridharan05058232018-01-24 22:42:38 -0800322# Optimisation settings and checks
323
324# SSE4_2 support
325AC_ARG_ENABLE(sse42, [AS_HELP_STRING([--enable-sse42],[enable SSE42 optimizations])], have_sse42=$enableval, have_sse42=yes)
326AX_CHECK_COMPILE_FLAG(-msse4.2, [SSE42_CFLAGS="-DOPS_SSE42 -msse4.2 -ffast-math -ftree-vectorizer-verbose=0"],
327 [have_sse42=no])
328if test "$have_sse42" = "yes"; then
329 AC_DEFINE(HAVE_SSE42,1,[Define to enable SSE42 optimizations.])
330fi
331AM_CONDITIONAL(HAVE_SSE42, test "$have_sse42" = "yes")
332AC_SUBST(SSE42_CFLAGS)
333
334# AVX support
335AC_ARG_ENABLE(avx, [AS_HELP_STRING([--enable-avx],[enable AVX optimizations])], have_avx=$enableval, have_avx=yes)
336AX_CHECK_COMPILE_FLAG(-mavx, [AVX_CFLAGS="-DOPS_AVX -mavx -ffast-math -ftree-vectorizer-verbose=0"],
337 [have_avx=no])
338if test "$have_avx" = "yes"; then
339 AC_DEFINE(HAVE_AVX,1,[Define to enable AVX optimizations.])
340fi
341AM_CONDITIONAL(HAVE_AVX, test "$have_avx" = "yes")
342AC_SUBST(AVX_CFLAGS)
343
344
345# AVX2 support
346AC_ARG_ENABLE(avx2, [AS_HELP_STRING([--enable-avx2],[enable AVX2 optimizations])], have_avx2=$enableval, have_avx2=yes)
347AX_CHECK_COMPILE_FLAG(-mavx2, [AVX2_CFLAGS="-DOPS_AVX2 -mavx2 -ffast-math -ftree-vectorizer-verbose=0"],
348 [have_avx2=no])
349if test "$have_avx2" = "yes"; then
350 AC_DEFINE(HAVE_AVX2,1,[Define to enable AVX2 optimizations.])
351fi
352AM_CONDITIONAL(HAVE_AVX2, test "$have_avx2" = "yes")
353AC_SUBST(AVX2_CFLAGS)
354
355
356# FMA support
357AC_ARG_ENABLE(fma, [AS_HELP_STRING([--enable-fma],[enable FMA optimizations])], have_fma=$enableval, have_fma=yes)
358AX_CHECK_COMPILE_FLAG(-mfma, [FMA_CFLAGS="-DOPS_FMA -mfma -ffast-math -ftree-vectorizer-verbose=0"],
359 [have_fma=no])
360if test "$have_fma" = "yes"; then
361 AC_DEFINE(HAVE_FMA,1,[Define to enable FMA optimizations.])
362fi
363AM_CONDITIONAL(HAVE_FMA, test "$have_fma" = "yes")
364AC_SUBST(FMA_CFLAGS)
365
366# Hifi2EP
367AC_ARG_ENABLE(hifi2ep, [AS_HELP_STRING([--enable-hifi2ep],[enable HiFi2EP optimizations])], have_hifi2ep=$enableval, have_hifi2ep=yes)
368AX_CHECK_COMPILE_FLAG(-mhifi2ep, [FMA_CFLAGS="-DOPS_HIFI2EP -mhifi2ep -ffast-math -ftree-vectorizer-verbose=0"],
369 [have_hifi2ep=no])
370if test "$have_hifi2ep" = "yes"; then
371 AC_DEFINE(HAVE_HIFI2EP,1,[Define to enable Hifi2 EP optimizations.])
372fi
373AM_CONDITIONAL(HAVE_HIFI2EP, test "$have_hifi2ep" = "yes")
374AC_SUBST(HIFI2EP_CFLAGS)
375
376# Hifi3
377AC_ARG_ENABLE(hifi3, [AS_HELP_STRING([--enable-hifi3],[enable HiFi3 optimizations])], have_hifi3=$enableval, have_hifi3=yes)
378AX_CHECK_COMPILE_FLAG(-mhihi3, [FMA_CFLAGS="-DOPS_HIFI3 -mhifi3 -ffast-math -ftree-vectorizer-verbose=0"],
379 [have_hifi3=no])
380if test "$have_hifi3" = "yes"; then
381 AC_DEFINE(HAVE_HIFI3,1,[Define to enable Hifi3 optimizations.])
382fi
383AM_CONDITIONAL(HAVE_HIFI3, test "$have_hifi3" = "yes")
384AC_SUBST(HIFI3_CFLAGS)
385
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100386# Test after CFLAGS set othewise test of cross compiler fails.
387AM_PROG_AS
388AM_PROG_AR
389AC_PROG_CC
390LT_INIT
391AC_CHECK_TOOL([OBJCOPY], [objcopy], [])
392AC_CHECK_TOOL([OBJDUMP], [objdump], [])
393
Liam Girdwood05ef4342018-02-13 20:29:40 +0000394# Check for openssl - used by rimage
395AC_CHECK_LIB([crypto], [OPENSSL_config], , [have_openssl="no"])
396if test "$have_rimage" = "yes"; then
397 if test "$have_openssl" = "no"; then
398 AC_MSG_ERROR([Need OpenSSL libcrypto for rimage code signing])
399 fi
400fi
401
Pan Xiuli408d9352018-06-10 15:32:24 +0800402if test "x$prefix" == "xNONE"; then
Liam Girdwood05ef4342018-02-13 20:29:40 +0000403PEM_KEY_PREFIX="/usr/local/share/rimage"
Pan Xiuli408d9352018-06-10 15:32:24 +0800404else
405PEM_KEY_PREFIX=$prefix"/share/rimage"
406fi
Liam Girdwood05ef4342018-02-13 20:29:40 +0000407AC_DEFINE_UNQUOTED([PEM_KEY_PREFIX], ["$PEM_KEY_PREFIX"], ["Path for PEM keys"])
408AC_SUBST(PEM_KEY_PREFIX)
409
Liam Girdwooda1977152018-04-13 15:33:57 +0100410# Check for doxygen and graphviz - used by make doc
411AC_CHECK_PROG(have_doxygen, doxygen, true, false)
412if test "$have_doxygen" = "false"; then
413 AC_MSG_WARN([Need doxygen to build documentation])
414fi
415AC_CHECK_PROG(have_graphviz, dot, true, false)
416if test "$have_graphviz" = "false"; then
417 AC_MSG_WARN([Need graphviz to build documentation])
418fi
419
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200420# Check for compiler type
421AM_CONDITIONAL(XCC, test "$CC" = "xt-xcc")
422
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100423AM_EXTRA_RECURSIVE_TARGETS([bin])
424
425AM_EXTRA_RECURSIVE_TARGETS([vminstall])
426
427AC_CONFIG_FILES([
428 Makefile
Liam Girdwood05ef4342018-02-13 20:29:40 +0000429 rimage/Makefile
430 rimage/keys/Makefile
Marcin Maka6aee21b2018-04-13 13:03:42 +0200431 doc/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100432 src/Makefile
433 src/tasks/Makefile
434 src/init/Makefile
435 src/arch/Makefile
436 src/arch/xtensa/Makefile
437 src/arch/xtensa/include/Makefile
Liam Girdwoodb14e8522018-01-10 17:36:41 +0000438 src/arch/xtensa/include/arch/Makefile
439 src/arch/xtensa/include/xtensa/Makefile
440 src/arch/xtensa/include/xtensa/config/Makefile
Tomasz Lauda01ebad72018-06-27 12:00:58 +0200441 src/arch/xtensa/smp/Makefile
442 src/arch/xtensa/smp/hal/Makefile
Tomasz Laudab31c7432018-07-03 11:52:29 +0200443 src/arch/xtensa/smp/include/Makefile
444 src/arch/xtensa/smp/include/arch/Makefile
Tomasz Lauda01ebad72018-06-27 12:00:58 +0200445 src/arch/xtensa/smp/xtos/Makefile
446 src/arch/xtensa/up/Makefile
447 src/arch/xtensa/up/hal/Makefile
Tomasz Laudab31c7432018-07-03 11:52:29 +0200448 src/arch/xtensa/up/include/Makefile
449 src/arch/xtensa/up/include/arch/Makefile
Tomasz Lauda01ebad72018-06-27 12:00:58 +0200450 src/arch/xtensa/up/xtos/Makefile
Ranjani Sridharan05058232018-01-24 22:42:38 -0800451 src/arch/host/Makefile
452 src/arch/host/include/Makefile
453 src/arch/host/include/arch/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100454 src/audio/Makefile
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200455 src/math/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100456 src/drivers/Makefile
457 src/include/Makefile
Pierre-Louis Bossart81708a52018-04-04 18:46:50 -0500458 src/include/sof/Makefile
459 src/include/sof/audio/Makefile
460 src/include/sof/audio/coefficients/Makefile
461 src/include/sof/audio/coefficients/src/Makefile
462 src/include/sof/math/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100463 src/include/uapi/Makefile
464 src/ipc/Makefile
Ranjani Sridharan05058232018-01-24 22:42:38 -0800465 src/library/Makefile
466 src/library/include/Makefile
467 src/library/include/platform/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100468 src/lib/Makefile
Ranjani Sridharana169fa32018-05-31 19:29:08 -0700469 src/host/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100470 src/platform/Makefile
471 src/platform/baytrail/Makefile
472 src/platform/baytrail/include/Makefile
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200473 src/platform/baytrail/include/arch/Makefile
474 src/platform/baytrail/include/arch/xtensa/Makefile
475 src/platform/baytrail/include/arch/xtensa/config/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100476 src/platform/baytrail/include/platform/Makefile
Liam Girdwood095c9072018-01-23 14:53:00 +0000477 src/platform/apollolake/Makefile
478 src/platform/apollolake/include/Makefile
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200479 src/platform/apollolake/include/arch/Makefile
480 src/platform/apollolake/include/arch/xtensa/Makefile
481 src/platform/apollolake/include/arch/xtensa/config/Makefile
Liam Girdwood095c9072018-01-23 14:53:00 +0000482 src/platform/apollolake/include/platform/Makefile
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000483 src/platform/haswell/Makefile
484 src/platform/haswell/include/Makefile
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200485 src/platform/haswell/include/arch/Makefile
486 src/platform/haswell/include/arch/xtensa/Makefile
487 src/platform/haswell/include/arch/xtensa/config/Makefile
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000488 src/platform/haswell/include/platform/Makefile
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000489 src/platform/cannonlake/Makefile
490 src/platform/cannonlake/include/Makefile
Tomasz Lauda80f3d472018-06-05 18:25:37 +0200491 src/platform/cannonlake/include/arch/Makefile
492 src/platform/cannonlake/include/arch/xtensa/Makefile
493 src/platform/cannonlake/include/arch/xtensa/config/Makefile
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000494 src/platform/cannonlake/include/platform/Makefile
Tomasz Lauda14ca1fa2018-06-19 16:55:34 +0200495 src/platform/intel/Makefile
Janusz Jankowskid886a612018-08-02 14:09:24 +0200496 src/platform/intel/cavs/Makefile
Tomasz Lauda14ca1fa2018-06-19 16:55:34 +0200497 src/platform/intel/include/Makefile
498 src/platform/intel/include/platform/Makefile
499 src/platform/intel/include/platform/cavs/Makefile
Janusz Jankowskid6d9efb2018-06-11 10:31:30 +0200500 test/Makefile
501 test/cmocka/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100502])
Janusz Jankowskid6d9efb2018-06-11 10:31:30 +0200503AC_REQUIRE_AUX_FILE([tap-driver.sh])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100504AC_OUTPUT
505
506echo "
507---{ $PACKAGE_NAME $VERSION }---
508
509Target Architecture: ${ARCH}
510Target Platform: ${PLATFORM}
Sebastien Guiriecca23f512016-11-02 08:44:19 +0100511Target Core: ${XTENSA_CORE}
Pan Xiuli408d9352018-06-10 15:32:24 +0800512Install Prefix: ${prefix}
Liam Girdwood05ef4342018-02-13 20:29:40 +0000513PEM: ${PEM_KEY_PREFIX}
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100514
515Compiler: ${CC}
Pan Xiuli6fd219c2018-06-19 18:02:45 +0800516OBJCOPY: ${OBJCOPY}
517OBJDUMP: ${OBJDUMP}
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100518CFLAGS: ${CFLAGS}
519LDFLAGS: ${LDFLAGS}
520ARCH_CFLAGS: ${ARCH_CFLAGS}
521ARCH_LDFLAGS: ${ARCH_LDFLAGS}
Janusz Jankowski17c929e2018-07-06 13:58:47 +0200522A@&t@M_CFLAGS: ${AM_CFLAGS}
523A@&t@M_LDFLAGS: ${AM_LDFLAGS}
524A@&t@M_CCASFLAGS: ${AM_CCASFLAGS}
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100525"
526