blob: 9aa1b8a4221324f3ede30c1609d660e5f7aa4b55 [file] [log] [blame]
Wind Yuan75564b12015-01-15 06:51:15 -05001# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
Wind Yuan67533742015-01-16 17:19:05 +08004m4_define([xcam_major_version], [0])
Wind Yuan2f6d8b52016-09-29 03:37:53 -04005m4_define([xcam_minor_version], [7])
6m4_define([xcam_micro_version], [0])
Wind Yuan67533742015-01-16 17:19:05 +08007m4_define([xcam_version], [xcam_major_version.xcam_minor_version.xcam_micro_version])
Wind Yuan75564b12015-01-15 06:51:15 -05008
9AC_PREREQ([2.60])
10AC_CONFIG_MACRO_DIR([m4])
11AC_INIT([libxcam], [xcam_version], [feng.yuan@intel.com], [libxcam])
12AC_CONFIG_HEADERS([config.h])
13AM_INIT_AUTOMAKE
14
Wind Yuan67533742015-01-16 17:19:05 +080015#xcam version
16XCAM_MAJOR_VERSION=xcam_major_version
17XCAM_MINOR_VERSION=xcam_minor_version
18XCAM_MICRO_VERSION=xcam_micro_version
19XCAM_VERSION=xcam_version
20XCAM_VERSION_HEX="0x$XCAM_MAJOR_VERSION$XCAM_MINOR_VERSION$XCAM_MICRO_VERSION"
21AC_DEFINE_UNQUOTED(XCAM_VERSION, $XCAM_VERSION_HEX,
22 [define libxcam version])
23AC_SUBST(XCAM_VERSION)
24
Wind Yuan75564b12015-01-15 06:51:15 -050025# Checks for programs.
26AC_PROG_CC
27AC_PROG_CXX
28AC_PROG_INSTALL
29LT_INIT
30
31AC_ARG_ENABLE(debug,
32 AS_HELP_STRING([--enable-debug],
33 [enable debug, @<:@default=no@:>@]),
34 [], [enable_debug="no"])
35AM_CONDITIONAL([DEBUG], [test "$enable_debug" = "yes"])
36
Wind Yuan91625802015-06-24 15:36:01 +080037AC_ARG_ENABLE(profiling,
38 AS_HELP_STRING([--enable-profiling],
39 [enable profiling, @<:@default=no@:>@]),
40 [], [enable_profiling="no"])
41
Wind Yuan75564b12015-01-15 06:51:15 -050042AC_ARG_ENABLE(drm,
43 AS_HELP_STRING([--enable-drm],
44 [enable drm buffer, @<:@default=yes@:>@]),
45 [], [enable_drm="yes"])
46
47AC_ARG_ENABLE([aiq],
48 AS_HELP_STRING([--enable-aiq],
49 [enable Aiq 3A algorithm build, @<:@default=no@:>@]),
50 [], [enable_aiq="no"])
51
John Ye3fc8fc42015-03-19 14:41:01 +080052AC_ARG_ENABLE([gst],
53 AS_HELP_STRING([--enable-gst],
54 [enable gstreamer plugin build, @<:@default=no@:>@]),
55 [], [enable_gst="no"])
56
Wind Yuan4009d6c2015-02-10 18:09:48 +080057AC_ARG_ENABLE(libcl,
58 AS_HELP_STRING([--enable-libcl],
Yinhang Liuc2f19082015-08-28 12:27:48 +080059 [enable libcl image processor, @<:@default=no@:>@]),
60 [], [enable_libcl="no"])
Wind Yuan4009d6c2015-02-10 18:09:48 +080061
Yinhang Liu8034ce12016-12-20 15:30:49 +080062AC_ARG_ENABLE(opencv,
63 AS_HELP_STRING([--enable-opencv],
64 [enable opencv library, @<:@default=no@:>@]),
65 [], [enable_opencv="no"])
66
Wind Yuan75564b12015-01-15 06:51:15 -050067# documentation
68AC_ARG_ENABLE(docs,
69 [AC_HELP_STRING([--enable-docs],
70 [build Doxygen documentation @<:@default=no@:>@])],
71 [], [enable_docs="no"])
72
Wind Yuan8ba2f162015-05-04 14:51:07 +080073AC_ARG_ENABLE([3alib],
74 AS_HELP_STRING([--enable-3alib],
75 [enable 3A lib build, @<:@default=no@:>@]),
76 [], [enable_3alib="no"])
77
zongwave03954a32015-09-22 15:40:44 +080078AC_ARG_ENABLE([smartlib],
79 AS_HELP_STRING([--enable-smartlib],
80 [enable smart analysis lib build, @<:@default=no@:>@]),
81 [], [enable_smartlib="no"])
82
Wind Yuan75564b12015-01-15 06:51:15 -050083# Check for Doxygen
84if test "$enable_docs" = "yes"; then
85 AC_CHECK_TOOL([DOXYGEN], [doxygen], [no])
86 if test "$DOXYGEN" = "no"; then
87 enable_docs="no"
88 fi
89fi
90AM_CONDITIONAL(ENABLE_DOCS, test "$enable_docs" = "yes")
91
Wind Yuan91625802015-06-24 15:36:01 +080092# check profiling
93ENABLE_PROFILING=0
94if test "$enable_profiling" = "yes"; then
95 ENABLE_PROFILING=1
96fi
97
Wind Yuan75564b12015-01-15 06:51:15 -050098# check drm
99HAVE_LIBDRM=0
100if test "$enable_drm" = "yes"; then
101 PKG_CHECK_MODULES(LIBDRM, [libdrm], [HAVE_LIBDRM=1], [HAVE_LIBDRM=0])
102fi
103
Wind Yuan4009d6c2015-02-10 18:09:48 +0800104# check libcl
105HAVE_LIBCL=0
106if test "$enable_libcl" = "yes"; then
107 PKG_CHECK_MODULES(LIBCL, [libcl], [HAVE_LIBCL=1], [HAVE_LIBCL=0])
108fi
109
zongwave2156baf2016-04-08 16:42:11 +0800110if test "$enable_libcl" = "yes" && test "$HAVE_LIBCL" -eq 0; then
111 PKG_CHECK_MODULES(LIBCL, [OpenCL], [HAVE_LIBCL=1], [HAVE_LIBCL=0])
zongwave2156baf2016-04-08 16:42:11 +0800112fi
113
Yinhang Liua94dd682016-08-12 12:56:47 +0800114if test "$HAVE_LIBCL" -eq 1; then
115 AC_CHECK_PROGS([GAWK], [gawk], [no])
116 if test "x$GAWK" = "xno"; then
117 AC_MSG_ERROR([gawk not found])
118 fi
119fi
120
Yinhang Liu8034ce12016-12-20 15:30:49 +0800121# check opencv
122HAVE_OPENCV=0
123if test "$enable_opencv" = "yes"; then
124 PKG_CHECK_MODULES(OPENCV, [opencv], [HAVE_OPENCV=1], [HAVE_OPENCV=0])
125fi
126
Wind Yuan75564b12015-01-15 06:51:15 -0500127# check AIQ
Jia Menge2ed2392015-07-16 23:20:12 +0800128ENABLE_IA_AIQ=0
Wind Yuan75564b12015-01-15 06:51:15 -0500129USE_LOCAL_AIQ=0
130if test "$enable_aiq" = "yes"; then
Jia Menge2ed2392015-07-16 23:20:12 +0800131 ENABLE_IA_AIQ=1
132 PKG_CHECK_MODULES(IA_AIQ, ia_imaging,
133 PKG_CHECK_EXISTS(ia_imaging >= 2.7,
Wind Yuan1a2e2322016-05-12 02:33:53 -0400134 AC_DEFINE(HAVE_AIQ_2_7, 1, [defined if module ia_imaging >= v2.0_007 is found])
Jia Menge2ed2392015-07-16 23:20:12 +0800135 ),
136 [USE_LOCAL_AIQ=1]
137 )
Wind Yuan1a2e2322016-05-12 02:33:53 -0400138
139 if test "$USE_LOCAL_AIQ" -eq 1; then
140 #check HAVE_AIQ_2_7
141 AC_CACHE_CHECK([for ext/ia_imaging >=v2.0_007],
142 ac_cv_have_aiq_2_7, [
143 saved_CPPFLAGS="$CPPFLAGS"
144 CPPFLAGS="$CPPFLAGS -I./ext/ia_imaging/include"
145 saved_LIBS="$LIBS"
146 LIBS="$LIBS"
147 AC_COMPILE_IFELSE(
148 [AC_LANG_PROGRAM(
149 [[#include <stdint.h>
150 #include <stdio.h>
151 #include "ia_aiq_types.h"
152 ]],
153 [[ia_aiq_ae_results ae_result;
154 ae_result.flashes = NULL;
155 ]]
156 )],
157 [ac_cv_have_aiq_2_7="yes"],
158 [ac_cv_have_aiq_2_7="no"]
159 )
160 CPPFLAGS="$saved_CPPFLAGS"
161 LIBS="$saved_LIBS"
162 ])
163
164 if test "$ac_cv_have_aiq_2_7" = "yes"; then
165 AC_DEFINE(HAVE_AIQ_2_7, 1, [defined if ia_imaging >= v2.0_007 is found])
166 fi
167 fi
168
169 if test "$USE_LOCAL_AIQ" -eq 0; then
170 IA_IMAGING_CFLAGS="$IA_AIQ_CFLAGS"
171 IA_IMAGING_LIBS="$IA_AIQ_LIBS"
172 else
173 IA_IMAGING_CFLAGS="-I\$(top_srcdir)/ext/ia_imaging/include"
174 IA_IMAGING_LIBS="-L\$(top_srcdir)/ext/ia_imaging/lib -lia_aiq -lia_isp_2_2 -lia_cmc_parser -lia_mkn -lia_nvm -lia_exc -lia_log"
175 fi
176 AC_SUBST(IA_IMAGING_CFLAGS)
177 AC_SUBST(IA_IMAGING_LIBS)
178 LIBS="$LIBS $IA_IMAGING_LIBS"
Wind Yuan75564b12015-01-15 06:51:15 -0500179fi
180
Wind Yuan8ba2f162015-05-04 14:51:07 +0800181# check 3a lib build
182ENABLE_3ALIB=0
183if test "$enable_3alib" = "yes"; then
184 ENABLE_3ALIB=1
185fi
186AM_CONDITIONAL([ENABLE_3ALIB], [test "$ENABLE_3ALIB" -eq 1])
187
zongwave03954a32015-09-22 15:40:44 +0800188# check smart analysis lib build
189ENABLE_SMART_LIB=0
190if test "$enable_smartlib" = "yes"; then
191 ENABLE_SMART_LIB=1
192fi
193AM_CONDITIONAL([ENABLE_SMART_LIB], [test "$ENABLE_SMART_LIB" -eq 1])
194
Wind Yuan75564b12015-01-15 06:51:15 -0500195# check atomisp headers
196USE_LOCAL_ATOMISP=0
197#AC_CHECK_HEADERS([linux/atomisp.h], [USE_LOCAL_ATOMISP=0], [USE_LOCAL_ATOMISP=1])
198AC_CACHE_CHECK([for linux/atomisp.h],
199 ac_cv_have_atomisp_headers, [
200 saved_CPPFLAGS="$CPPFLAGS"
201 CPPFLAGS="$CPPFLAGS"
202 saved_LIBS="$LIBS"
203 LIBS="$LIBS"
204 AC_COMPILE_IFELSE(
205 [AC_LANG_PROGRAM(
206 [[#ifndef __user
207 #define __user
208 #endif
209 #include <stdint.h>
210 #include <stdio.h>
211 #include <linux/atomisp.h>]],
212 [[struct atomisp_parm param;]]
213 )],
214 [ac_cv_have_atomisp_headers="yes"],
215 [ac_cv_have_atomisp_headers="no" USE_LOCAL_ATOMISP=1]
216 )
217 CPPFLAGS="$saved_CPPFLAGS"
218 LIBS="$saved_LIBS"
219])
220
221
John Ye3fc8fc42015-03-19 14:41:01 +0800222# build gstreamer plugin
223GST_API_VERSION=1.0
224GST_VERSION_REQUIRED=1.2.3
225ENABLE_GST=0
226if test "$enable_gst" = "yes"; then
227 ENABLE_GST=1
228 PKG_CHECK_MODULES([GST], [gstreamer-$GST_API_VERSION >= $GST_VERSION_REQUIRED])
229 PKG_CHECK_MODULES([GST_ALLOCATOR], [gstreamer-allocators-$GST_API_VERSION >= $GST_VERSION_REQUIRED])
230 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-$GST_API_VERSION >= $GST_VERSION_REQUIRED])
231fi
232AM_CONDITIONAL([ENABLE_GST], [test "$ENABLE_GST" -eq 1])
233
Wind Yuan75564b12015-01-15 06:51:15 -0500234dnl set XCAM_CFLAGS and XCAM_CXXFLAGS
235XCAM_CFLAGS=" -fPIC -DSTDC99 -W -Wall -D_REENTRANT"
236if test "$enable_debug" = "yes"; then
237 XCAM_CFLAGS="$XCAM_CFLAGS -g -DDEBUG"
238fi
239XCAM_CXXFLAGS="$XCAM_CFLAGS -std=c++0x"
240AC_SUBST(XCAM_CFLAGS)
241AC_SUBST(XCAM_CXXFLAGS)
242
Wind Yuan75564b12015-01-15 06:51:15 -0500243# define macor in config.h
Wind Yuan91625802015-06-24 15:36:01 +0800244AC_DEFINE_UNQUOTED([ENABLE_PROFILING], $ENABLE_PROFILING,
245 [enable profiling])
246
Wind Yuan75564b12015-01-15 06:51:15 -0500247AC_DEFINE_UNQUOTED([HAVE_LIBDRM], $HAVE_LIBDRM,
248 [have libdrm])
249AM_CONDITIONAL([HAVE_LIBDRM], [test "$HAVE_LIBDRM" -eq 1])
250
Wind Yuan4009d6c2015-02-10 18:09:48 +0800251AC_DEFINE_UNQUOTED([HAVE_LIBCL], $HAVE_LIBCL,
252 [have libcl])
253AM_CONDITIONAL([HAVE_LIBCL], [test "$HAVE_LIBCL" -eq 1])
254
Yinhang Liu8034ce12016-12-20 15:30:49 +0800255AC_DEFINE_UNQUOTED([HAVE_OPENCV], $HAVE_OPENCV,
256 [have opencv])
257AM_CONDITIONAL([HAVE_OPENCV], [test "$HAVE_OPENCV" -eq 1])
258
Wind Yuan75564b12015-01-15 06:51:15 -0500259#atomisp
260AM_CONDITIONAL([USE_LOCAL_ATOMISP], [test "$USE_LOCAL_ATOMISP" -eq 1])
261
262# aiq (ia_imaging)
Jia Menge2ed2392015-07-16 23:20:12 +0800263AC_DEFINE_UNQUOTED([HAVE_IA_AIQ], $ENABLE_IA_AIQ,
Wind Yuan75564b12015-01-15 06:51:15 -0500264 [have aiq binary])
Jia Menge2ed2392015-07-16 23:20:12 +0800265AM_CONDITIONAL([ENABLE_IA_AIQ], [test "$ENABLE_IA_AIQ" -eq 1])
Wind Yuan75564b12015-01-15 06:51:15 -0500266AM_CONDITIONAL([USE_LOCAL_AIQ], [test "$USE_LOCAL_AIQ" -eq 1])
267
268AC_CONFIG_FILES([Makefile
Yinhang Liu42f06302015-05-22 17:01:58 +0800269 clx_kernel/Makefile
Yinhang Liu3af04052015-09-16 14:12:34 +0800270 clx_bin/Makefile
Wind Yuan75564b12015-01-15 06:51:15 -0500271 xcore/Makefile
Yinhang Liuf1a32a22016-06-12 13:33:46 +0800272 modules/Makefile
273 modules/isp/Makefile
274 modules/ocl/Makefile
John Yee94eb962015-03-17 15:34:03 +0800275 wrapper/Makefile
276 wrapper/gstreamer/Makefile
John Ye79d1f1e2015-04-01 17:02:11 +0800277 wrapper/gstreamer/interface/Makefile
Yinhang Liuf1a32a22016-06-12 13:33:46 +0800278 plugins/Makefile
279 plugins/3a/hybrid/Makefile
280 plugins/3a/aiq/Makefile
281 plugins/3a/Makefile
282 plugins/smart/Makefile
Wind Yuan75564b12015-01-15 06:51:15 -0500283 tests/Makefile
284 pkgconfig/Makefile
285 pkgconfig/xcam_core.pc
286 ])
Yinhang Liuf1a32a22016-06-12 13:33:46 +0800287
Wind Yuan75564b12015-01-15 06:51:15 -0500288AC_OUTPUT
289
290if test "$USE_LOCAL_AIQ" -eq 1; then use_local_aiq="yes"; else use_local_aiq="no"; fi
291if test "$USE_LOCAL_ATOMISP" -eq 1; then use_local_atomisp="yes"; else use_local_atomisp="no"; fi
Wind Yuan4009d6c2015-02-10 18:09:48 +0800292if test "$HAVE_LIBCL" -eq 1; then have_libcl="yes"; else have_libcl="no"; fi
Yinhang Liu8034ce12016-12-20 15:30:49 +0800293if test "$HAVE_OPENCV" -eq 1; then have_opencv="yes"; else have_opencv="no"; fi
Wind Yuan75564b12015-01-15 06:51:15 -0500294
295echo "
296 libxcam configuration summary
297 version : $XCAM_VERSION
298 enable debug : $enable_debug
Wind Yuan91625802015-06-24 15:36:01 +0800299 enable profiling : $enable_profiling
John Ye3fc8fc42015-03-19 14:41:01 +0800300 build GStreamer plugin : $enable_gst
Jia Menge2ed2392015-07-16 23:20:12 +0800301 build aiq analyzer : $enable_aiq
Wind Yuan75564b12015-01-15 06:51:15 -0500302 use local aiq : $use_local_aiq
303 use local atomisp : $use_local_atomisp
Wind Yuan4009d6c2015-02-10 18:09:48 +0800304 have opencl lib : $have_libcl
Yinhang Liu8034ce12016-12-20 15:30:49 +0800305 have opencv lib : $have_opencv
Wind Yuan8ba2f162015-05-04 14:51:07 +0800306 enable 3a lib : $enable_3alib
zongwave03954a32015-09-22 15:40:44 +0800307 enable smart analysis lib : $enable_smartlib
Wind Yuan75564b12015-01-15 06:51:15 -0500308"