blob: d37fc67c9ab6d0d52eb068bd4e7c80a46184be5a [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
Liam Girdwood77bc0652016-12-22 16:01:21 +000012m4_define(reef_major, `cat .version | cut -dv -f2 | cut -d. -f1`)
13m4_define(reef_minor, `cat .version | cut -d. -f2 | cut -d- -f1`)
Liam Girdwood93d62e52018-01-10 20:26:08 +000014m4_define(reef_micro, `cat .version | cut -d. -f3 | cut -d- -f1`)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010015AC_DEFINE_UNQUOTED([REEF_MAJOR], reef_major, [Reef major version])
16AC_DEFINE_UNQUOTED([REEF_MINOR], reef_minor, [Reef minor version])
Liam Girdwood93d62e52018-01-10 20:26:08 +000017AC_DEFINE_UNQUOTED([REEF_MICRO], reef_micro, [Reef micro version])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010018
19AC_CANONICAL_HOST
20
21# General compiler flags
Pierre-Louis Bossartd46dd352017-09-25 14:55:09 -050022CFLAGS="${CFLAGS:+$CFLAGS } -O2 -g -Wall -Werror -Wl,-EL -fno-inline-functions -nostdlib -Wmissing-prototypes"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010023
Liam Girdwoodcc9fba32018-01-22 23:31:24 +000024# General assembler flags
25ASFLAGS="-DASSEMBLY"
26AC_SUBST(ASFLAGS)
27
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010028# Cross compiler tool libgcc and headers
Liam Girdwood8855ce52016-10-18 17:18:16 +010029AC_ARG_WITH([root-dir],
30 AS_HELP_STRING([--with-root-dir], [Specify location of cross gcc libraries and headers]),
31 [], [with_root_dir=no])
32AS_IF([test "x$with_root_dir" = xno],
33 AC_MSG_ERROR([Please specify cross compiler root header directory]),
34 [ROOT_DIR=$with_root_dir])
35AC_SUBST(ROOT_DIR)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010036
37# Architecture support
38AC_ARG_WITH([arch],
39 AS_HELP_STRING([--with-arch], [Specify DSP architecture]),
40 [], [with_arch=no])
41
42case "$with_arch" in
43 xtensa*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010044
45 ARCH_CFLAGS="-mtext-section-literals"
46 AC_SUBST(ARCH_CFLAGS)
47
48 ARCH_LDFLAGS="-nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static"
49 AC_SUBST(XTENSA_LDFLAGS)
50
51 # extra CFLAGS defined here otherwise configure working gcc tests fails.
52 CFLAGS="${CFLAGS:+$CFLAGS }-mlongcalls"
53 LDFLAGS="${LDFLAGS:+$LDFLAGS }-nostdlib"
54
55 #ARCH_ASFLAGS=""
56 AC_SUBST(ARCH_ASFLAGS)
57
58 ARCH="xtensa"
59 AC_SUBST(ARCH)
60 ;;
61 *)
62 AC_MSG_ERROR([DSP architecture not specified])
63 ;;
64esac
65
Liam Girdwood2eab4672017-11-27 05:24:51 +080066AM_CONDITIONAL(BUILD_XTENSA, test "$ARCH" = "xtensa")
67
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010068
69# Platform support
70AC_ARG_WITH([platform],
71 AS_HELP_STRING([--with-platform], [Specify Host Platform]),
72 [], [with_platform=no])
73
74case "$with_platform" in
75 baytrail*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010076
77 PLATFORM_LDSCRIPT="baytrail.x"
78 AC_SUBST(PLATFORM_LDSCRIPT)
79
80 PLATFORM="baytrail"
81 AC_SUBST(PLATFORM)
82
83 FW_NAME="byt"
84 AC_SUBST(FW_NAME)
85
Liam Girdwoodf63c7892017-12-04 20:08:39 +000086 XTENSA_CORE="hifiep_bd5"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010087 AC_SUBST(XTENSA_CORE)
88
89 AC_DEFINE([CONFIG_BAYTRAIL], [1], [Configure for Baytrail])
Keyon Jiefb784212017-12-06 21:16:32 +080090 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010091 ;;
92 cherrytrail*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010093
94 PLATFORM_LDSCRIPT="baytrail.x"
95 AC_SUBST(PLATFORM_LDSCRIPT)
96
97 PLATFORM="baytrail"
98 AC_SUBST(PLATFORM)
99
100 FW_NAME="cht"
101 AC_SUBST(FW_NAME)
102
Liam Girdwoodf63c7892017-12-04 20:08:39 +0000103 XTENSA_CORE="hifiep_bd5"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100104 AC_SUBST(XTENSA_CORE)
105
106 AC_DEFINE([CONFIG_CHERRYTRAIL], [1], [Configure for Cherrytrail])
Keyon Jiefb784212017-12-06 21:16:32 +0800107 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100108 ;;
Liam Girdwood095c9072018-01-23 14:53:00 +0000109 apollolake*)
110
111 PLATFORM_LDSCRIPT="apollolake.x"
112 AC_SUBST(PLATFORM_LDSCRIPT)
113
114 PLATFORM="apollolake"
115 AC_SUBST(PLATFORM)
116
117 FW_NAME="apl"
118 AC_SUBST(FW_NAME)
119
120 XTENSA_CORE="hifi3_std"
121 AC_SUBST(XTENSA_CORE)
122
123 AC_DEFINE([CONFIG_APOLLOLAKE], [1], [Configure for Apololake])
124 AC_DEFINE([CONFIG_IRQ_MAP], [1], [Configure IRQ maps])
125 ;;
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000126 haswell*)
127
128 PLATFORM_LDSCRIPT="haswell.x"
129 AC_SUBST(PLATFORM_LDSCRIPT)
130
131 PLATFORM="haswell"
132 AC_SUBST(PLATFORM)
133
134 FW_NAME="hsw"
135 AC_SUBST(FW_NAME)
136
137 XTENSA_CORE="hifiep_bd5"
138 AC_SUBST(XTENSA_CORE)
139
140 AC_DEFINE([CONFIG_HASWELL], [1], [Configure for Haswell])
141 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
142 ;;
143 broadwell*)
144
145 PLATFORM_LDSCRIPT="broadwell.x"
146 AC_SUBST(PLATFORM_LDSCRIPT)
147
148 PLATFORM="haswell"
149 AC_SUBST(PLATFORM)
150
151 FW_NAME="bdw"
152 AC_SUBST(FW_NAME)
153
154 XTENSA_CORE="hifiep_bd5"
155 AC_SUBST(XTENSA_CORE)
156
157 AC_DEFINE([CONFIG_BROADWELL], [1], [Configure for Broadwell])
158 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
159 ;;
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000160 cannonlake*)
161
162 PLATFORM_LDSCRIPT="cannonlake.x"
163 AC_SUBST(PLATFORM_LDSCRIPT)
164
165 PLATFORM="cannonlake"
166 AC_SUBST(PLATFORM)
167
168 FW_NAME="cnl"
169 AC_SUBST(FW_NAME)
170
171 XTENSA_CORE="hifi4_std"
172 AC_SUBST(XTENSA_CORE)
173
174 AC_DEFINE([CONFIG_CANNONLAKE], [1], [Configure for Cannonlake])
175 AC_DEFINE([CONFIG_IRQ_MAP], [1], [Configure IRQ maps])
176 ;;
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100177 *)
178 AC_MSG_ERROR([Host platform not specified])
179 ;;
180esac
181
Liam Girdwood2eab4672017-11-27 05:24:51 +0800182AM_CONDITIONAL(BUILD_BAYTRAIL, test "$FW_NAME" = "byt")
183AM_CONDITIONAL(BUILD_CHERRYTRAIL, test "$FW_NAME" = "cht")
184AM_CONDITIONAL(BUILD_HASWELL, test "$FW_NAME" = "hsw")
185AM_CONDITIONAL(BUILD_BROADWELL, test "$FW_NAME" = "bdw")
186AM_CONDITIONAL(BUILD_APOLLOLAKE, test "$FW_NAME" = "apl")
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000187AM_CONDITIONAL(BUILD_CANNONLAKE, test "$FW_NAME" = "cnl")
188AM_CONDITIONAL(BUILD_BOOTLOADER, test "$FW_NAME" = "cnl")
Liam Girdwood095c9072018-01-23 14:53:00 +0000189AM_CONDITIONAL(BUILD_MODULE, test "$FW_NAME" = "apl" -o "$FW_NAME" = "cnl")
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000190
Sebastien Guiriecca23f512016-11-02 08:44:19 +0100191# DSP core support (Optional)
192AC_ARG_WITH([dsp-core],
193 AS_HELP_STRING([--with-dsp-core], [Specify DSP Core]),
194 [], [with_dsp_core=no])
195
196case "$with_dsp_core" in
197 CHT_audio_hifiep*)
198 # BXT/CHT DSP Core
199 XTENSA_CORE="CHT_audio_hifiep"
200 AC_SUBST(XTENSA_CORE)
201 ;;
202
203esac
204
Keyon Jie0e420302017-12-06 21:16:30 +0800205# dma trace support (Optional), dma trace by default
206AC_ARG_ENABLE([dma-trace],
207 AS_HELP_STRING([--disable-dma-trace], [Disabled dma trace and use fallback mailbox trace]))
208
209AS_IF([test "x$enable_dma_trace" != "xno"], [
210 AC_DEFINE([CONFIG_DMA_TRACE], [1], [Configure DMA trace])
211 ])
212
Keyon Jie1a8a6532017-12-22 23:10:56 +0800213AM_CONDITIONAL(BUILD_DMA_TRACE, test "x$enable_dma_trace" != "xno")
214
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000215PLATFORM_BOOT_LDR_LDSCRIPT="boot_ldr.x"
216AC_SUBST(PLATFORM_BOOT_LDR_LDSCRIPT)
217
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100218# Test after CFLAGS set othewise test of cross compiler fails.
219AM_PROG_AS
220AM_PROG_AR
221AC_PROG_CC
222LT_INIT
223AC_CHECK_TOOL([OBJCOPY], [objcopy], [])
224AC_CHECK_TOOL([OBJDUMP], [objdump], [])
225
226AM_EXTRA_RECURSIVE_TARGETS([bin])
227
228AM_EXTRA_RECURSIVE_TARGETS([vminstall])
229
230AC_CONFIG_FILES([
231 Makefile
232 src/Makefile
233 src/tasks/Makefile
234 src/init/Makefile
235 src/arch/Makefile
236 src/arch/xtensa/Makefile
237 src/arch/xtensa/include/Makefile
Liam Girdwoodb14e8522018-01-10 17:36:41 +0000238 src/arch/xtensa/include/arch/Makefile
239 src/arch/xtensa/include/xtensa/Makefile
240 src/arch/xtensa/include/xtensa/config/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100241 src/arch/xtensa/hal/Makefile
242 src/arch/xtensa/xtos/Makefile
243 src/audio/Makefile
Seppo Ingalsuo6a274832017-06-07 14:17:55 +0300244 src/math/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100245 src/drivers/Makefile
246 src/include/Makefile
247 src/include/reef/Makefile
248 src/include/reef/audio/Makefile
Liam Girdwoodb14e8522018-01-10 17:36:41 +0000249 src/include/reef/audio/coefficients/Makefile
250 src/include/reef/audio/coefficients/src/Makefile
251 src/include/reef/math/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100252 src/include/uapi/Makefile
253 src/ipc/Makefile
254 src/lib/Makefile
255 src/platform/Makefile
256 src/platform/baytrail/Makefile
257 src/platform/baytrail/include/Makefile
258 src/platform/baytrail/include/platform/Makefile
259 src/platform/baytrail/include/xtensa/Makefile
260 src/platform/baytrail/include/xtensa/config/Makefile
Liam Girdwood095c9072018-01-23 14:53:00 +0000261 src/platform/apollolake/Makefile
262 src/platform/apollolake/include/Makefile
263 src/platform/apollolake/include/platform/Makefile
264 src/platform/apollolake/include/xtensa/Makefile
265 src/platform/apollolake/include/xtensa/config/Makefile
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000266 src/platform/haswell/Makefile
267 src/platform/haswell/include/Makefile
268 src/platform/haswell/include/platform/Makefile
269 src/platform/haswell/include/xtensa/Makefile
270 src/platform/haswell/include/xtensa/config/Makefile
Liam Girdwood17c6bcf2018-01-23 15:44:08 +0000271 src/platform/cannonlake/Makefile
272 src/platform/cannonlake/include/Makefile
273 src/platform/cannonlake/include/platform/Makefile
274 src/platform/cannonlake/include/xtensa/Makefile
275 src/platform/cannonlake/include/xtensa/config/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100276])
277AC_OUTPUT
278
279echo "
280---{ $PACKAGE_NAME $VERSION }---
281
282Target Architecture: ${ARCH}
283Target Platform: ${PLATFORM}
Sebastien Guiriecca23f512016-11-02 08:44:19 +0100284Target Core: ${XTENSA_CORE}
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100285
286Compiler: ${CC}
287CFLAGS: ${CFLAGS}
288LDFLAGS: ${LDFLAGS}
289ARCH_CFLAGS: ${ARCH_CFLAGS}
290ARCH_LDFLAGS: ${ARCH_LDFLAGS}
291"
292