blob: 40e8b9ba1ad9ab53ab501b89129c267f18a2cc72 [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
24# Cross compiler tool libgcc and headers
Liam Girdwood8855ce52016-10-18 17:18:16 +010025AC_ARG_WITH([root-dir],
26 AS_HELP_STRING([--with-root-dir], [Specify location of cross gcc libraries and headers]),
27 [], [with_root_dir=no])
28AS_IF([test "x$with_root_dir" = xno],
29 AC_MSG_ERROR([Please specify cross compiler root header directory]),
30 [ROOT_DIR=$with_root_dir])
31AC_SUBST(ROOT_DIR)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010032
33# Architecture support
34AC_ARG_WITH([arch],
35 AS_HELP_STRING([--with-arch], [Specify DSP architecture]),
36 [], [with_arch=no])
37
38case "$with_arch" in
39 xtensa*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010040
41 ARCH_CFLAGS="-mtext-section-literals"
42 AC_SUBST(ARCH_CFLAGS)
43
44 ARCH_LDFLAGS="-nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static"
45 AC_SUBST(XTENSA_LDFLAGS)
46
47 # extra CFLAGS defined here otherwise configure working gcc tests fails.
48 CFLAGS="${CFLAGS:+$CFLAGS }-mlongcalls"
49 LDFLAGS="${LDFLAGS:+$LDFLAGS }-nostdlib"
50
51 #ARCH_ASFLAGS=""
52 AC_SUBST(ARCH_ASFLAGS)
53
54 ARCH="xtensa"
55 AC_SUBST(ARCH)
56 ;;
57 *)
58 AC_MSG_ERROR([DSP architecture not specified])
59 ;;
60esac
61
Liam Girdwood2eab4672017-11-27 05:24:51 +080062AM_CONDITIONAL(BUILD_XTENSA, test "$ARCH" = "xtensa")
63
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010064
65# Platform support
66AC_ARG_WITH([platform],
67 AS_HELP_STRING([--with-platform], [Specify Host Platform]),
68 [], [with_platform=no])
69
70case "$with_platform" in
71 baytrail*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010072
73 PLATFORM_LDSCRIPT="baytrail.x"
74 AC_SUBST(PLATFORM_LDSCRIPT)
75
76 PLATFORM="baytrail"
77 AC_SUBST(PLATFORM)
78
79 FW_NAME="byt"
80 AC_SUBST(FW_NAME)
81
Liam Girdwoodf63c7892017-12-04 20:08:39 +000082 XTENSA_CORE="hifiep_bd5"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010083 AC_SUBST(XTENSA_CORE)
84
85 AC_DEFINE([CONFIG_BAYTRAIL], [1], [Configure for Baytrail])
Keyon Jiefb784212017-12-06 21:16:32 +080086 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010087 ;;
88 cherrytrail*)
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +010089
90 PLATFORM_LDSCRIPT="baytrail.x"
91 AC_SUBST(PLATFORM_LDSCRIPT)
92
93 PLATFORM="baytrail"
94 AC_SUBST(PLATFORM)
95
96 FW_NAME="cht"
97 AC_SUBST(FW_NAME)
98
Liam Girdwoodf63c7892017-12-04 20:08:39 +000099 XTENSA_CORE="hifiep_bd5"
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100100 AC_SUBST(XTENSA_CORE)
101
102 AC_DEFINE([CONFIG_CHERRYTRAIL], [1], [Configure for Cherrytrail])
Keyon Jiefb784212017-12-06 21:16:32 +0800103 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100104 ;;
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000105 haswell*)
106
107 PLATFORM_LDSCRIPT="haswell.x"
108 AC_SUBST(PLATFORM_LDSCRIPT)
109
110 PLATFORM="haswell"
111 AC_SUBST(PLATFORM)
112
113 FW_NAME="hsw"
114 AC_SUBST(FW_NAME)
115
116 XTENSA_CORE="hifiep_bd5"
117 AC_SUBST(XTENSA_CORE)
118
119 AC_DEFINE([CONFIG_HASWELL], [1], [Configure for Haswell])
120 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
121 ;;
122 broadwell*)
123
124 PLATFORM_LDSCRIPT="broadwell.x"
125 AC_SUBST(PLATFORM_LDSCRIPT)
126
127 PLATFORM="haswell"
128 AC_SUBST(PLATFORM)
129
130 FW_NAME="bdw"
131 AC_SUBST(FW_NAME)
132
133 XTENSA_CORE="hifiep_bd5"
134 AC_SUBST(XTENSA_CORE)
135
136 AC_DEFINE([CONFIG_BROADWELL], [1], [Configure for Broadwell])
137 AC_DEFINE([CONFIG_HOST_PTABLE], [1], [Configure handling host page table])
138 ;;
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100139 *)
140 AC_MSG_ERROR([Host platform not specified])
141 ;;
142esac
143
Liam Girdwood2eab4672017-11-27 05:24:51 +0800144AM_CONDITIONAL(BUILD_BAYTRAIL, test "$FW_NAME" = "byt")
145AM_CONDITIONAL(BUILD_CHERRYTRAIL, test "$FW_NAME" = "cht")
146AM_CONDITIONAL(BUILD_HASWELL, test "$FW_NAME" = "hsw")
147AM_CONDITIONAL(BUILD_BROADWELL, test "$FW_NAME" = "bdw")
148AM_CONDITIONAL(BUILD_APOLLOLAKE, test "$FW_NAME" = "apl")
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000149
Sebastien Guiriecca23f512016-11-02 08:44:19 +0100150# DSP core support (Optional)
151AC_ARG_WITH([dsp-core],
152 AS_HELP_STRING([--with-dsp-core], [Specify DSP Core]),
153 [], [with_dsp_core=no])
154
155case "$with_dsp_core" in
156 CHT_audio_hifiep*)
157 # BXT/CHT DSP Core
158 XTENSA_CORE="CHT_audio_hifiep"
159 AC_SUBST(XTENSA_CORE)
160 ;;
161
162esac
163
Keyon Jie0e420302017-12-06 21:16:30 +0800164# dma trace support (Optional), dma trace by default
165AC_ARG_ENABLE([dma-trace],
166 AS_HELP_STRING([--disable-dma-trace], [Disabled dma trace and use fallback mailbox trace]))
167
168AS_IF([test "x$enable_dma_trace" != "xno"], [
169 AC_DEFINE([CONFIG_DMA_TRACE], [1], [Configure DMA trace])
170 ])
171
Keyon Jie1a8a6532017-12-22 23:10:56 +0800172AM_CONDITIONAL(BUILD_DMA_TRACE, test "x$enable_dma_trace" != "xno")
173
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100174# Test after CFLAGS set othewise test of cross compiler fails.
175AM_PROG_AS
176AM_PROG_AR
177AC_PROG_CC
178LT_INIT
179AC_CHECK_TOOL([OBJCOPY], [objcopy], [])
180AC_CHECK_TOOL([OBJDUMP], [objdump], [])
181
182AM_EXTRA_RECURSIVE_TARGETS([bin])
183
184AM_EXTRA_RECURSIVE_TARGETS([vminstall])
185
186AC_CONFIG_FILES([
187 Makefile
188 src/Makefile
189 src/tasks/Makefile
190 src/init/Makefile
191 src/arch/Makefile
192 src/arch/xtensa/Makefile
193 src/arch/xtensa/include/Makefile
Liam Girdwoodb14e8522018-01-10 17:36:41 +0000194 src/arch/xtensa/include/arch/Makefile
195 src/arch/xtensa/include/xtensa/Makefile
196 src/arch/xtensa/include/xtensa/config/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100197 src/arch/xtensa/hal/Makefile
198 src/arch/xtensa/xtos/Makefile
199 src/audio/Makefile
Seppo Ingalsuo6a274832017-06-07 14:17:55 +0300200 src/math/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100201 src/drivers/Makefile
202 src/include/Makefile
203 src/include/reef/Makefile
204 src/include/reef/audio/Makefile
Liam Girdwoodb14e8522018-01-10 17:36:41 +0000205 src/include/reef/audio/coefficients/Makefile
206 src/include/reef/audio/coefficients/src/Makefile
207 src/include/reef/math/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100208 src/include/uapi/Makefile
209 src/ipc/Makefile
210 src/lib/Makefile
211 src/platform/Makefile
212 src/platform/baytrail/Makefile
213 src/platform/baytrail/include/Makefile
214 src/platform/baytrail/include/platform/Makefile
215 src/platform/baytrail/include/xtensa/Makefile
216 src/platform/baytrail/include/xtensa/config/Makefile
Liam Girdwoodf198ad92018-01-21 23:48:35 +0000217 src/platform/haswell/Makefile
218 src/platform/haswell/include/Makefile
219 src/platform/haswell/include/platform/Makefile
220 src/platform/haswell/include/xtensa/Makefile
221 src/platform/haswell/include/xtensa/config/Makefile
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100222])
223AC_OUTPUT
224
225echo "
226---{ $PACKAGE_NAME $VERSION }---
227
228Target Architecture: ${ARCH}
229Target Platform: ${PLATFORM}
Sebastien Guiriecca23f512016-11-02 08:44:19 +0100230Target Core: ${XTENSA_CORE}
Liam Girdwoodc0dfb4e2016-09-21 15:57:22 +0100231
232Compiler: ${CC}
233CFLAGS: ${CFLAGS}
234LDFLAGS: ${LDFLAGS}
235ARCH_CFLAGS: ${ARCH_CFLAGS}
236ARCH_LDFLAGS: ${ARCH_LDFLAGS}
237"
238