Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 1 | # -*- Autoconf -*- |
| 2 | # Process this file with autoconf to produce a configure script. |
| 3 | |
Wind Yuan | 6753374 | 2015-01-16 17:19:05 +0800 | [diff] [blame] | 4 | m4_define([xcam_major_version], [0]) |
Wind Yuan | 2f6d8b5 | 2016-09-29 03:37:53 -0400 | [diff] [blame] | 5 | m4_define([xcam_minor_version], [7]) |
| 6 | m4_define([xcam_micro_version], [0]) |
Wind Yuan | 6753374 | 2015-01-16 17:19:05 +0800 | [diff] [blame] | 7 | m4_define([xcam_version], [xcam_major_version.xcam_minor_version.xcam_micro_version]) |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 8 | |
| 9 | AC_PREREQ([2.60]) |
| 10 | AC_CONFIG_MACRO_DIR([m4]) |
| 11 | AC_INIT([libxcam], [xcam_version], [feng.yuan@intel.com], [libxcam]) |
| 12 | AC_CONFIG_HEADERS([config.h]) |
| 13 | AM_INIT_AUTOMAKE |
| 14 | |
Wind Yuan | 6753374 | 2015-01-16 17:19:05 +0800 | [diff] [blame] | 15 | #xcam version |
| 16 | XCAM_MAJOR_VERSION=xcam_major_version |
| 17 | XCAM_MINOR_VERSION=xcam_minor_version |
| 18 | XCAM_MICRO_VERSION=xcam_micro_version |
| 19 | XCAM_VERSION=xcam_version |
| 20 | XCAM_VERSION_HEX="0x$XCAM_MAJOR_VERSION$XCAM_MINOR_VERSION$XCAM_MICRO_VERSION" |
| 21 | AC_DEFINE_UNQUOTED(XCAM_VERSION, $XCAM_VERSION_HEX, |
| 22 | [define libxcam version]) |
| 23 | AC_SUBST(XCAM_VERSION) |
| 24 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 25 | # Checks for programs. |
| 26 | AC_PROG_CC |
| 27 | AC_PROG_CXX |
| 28 | AC_PROG_INSTALL |
| 29 | LT_INIT |
| 30 | |
| 31 | AC_ARG_ENABLE(debug, |
| 32 | AS_HELP_STRING([--enable-debug], |
| 33 | [enable debug, @<:@default=no@:>@]), |
| 34 | [], [enable_debug="no"]) |
| 35 | AM_CONDITIONAL([DEBUG], [test "$enable_debug" = "yes"]) |
| 36 | |
Wind Yuan | 9162580 | 2015-06-24 15:36:01 +0800 | [diff] [blame] | 37 | AC_ARG_ENABLE(profiling, |
| 38 | AS_HELP_STRING([--enable-profiling], |
| 39 | [enable profiling, @<:@default=no@:>@]), |
| 40 | [], [enable_profiling="no"]) |
| 41 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 42 | AC_ARG_ENABLE(drm, |
| 43 | AS_HELP_STRING([--enable-drm], |
| 44 | [enable drm buffer, @<:@default=yes@:>@]), |
| 45 | [], [enable_drm="yes"]) |
| 46 | |
| 47 | AC_ARG_ENABLE([aiq], |
| 48 | AS_HELP_STRING([--enable-aiq], |
| 49 | [enable Aiq 3A algorithm build, @<:@default=no@:>@]), |
| 50 | [], [enable_aiq="no"]) |
| 51 | |
John Ye | 3fc8fc4 | 2015-03-19 14:41:01 +0800 | [diff] [blame] | 52 | AC_ARG_ENABLE([gst], |
| 53 | AS_HELP_STRING([--enable-gst], |
| 54 | [enable gstreamer plugin build, @<:@default=no@:>@]), |
| 55 | [], [enable_gst="no"]) |
| 56 | |
Wind Yuan | 4009d6c | 2015-02-10 18:09:48 +0800 | [diff] [blame] | 57 | AC_ARG_ENABLE(libcl, |
| 58 | AS_HELP_STRING([--enable-libcl], |
Yinhang Liu | c2f1908 | 2015-08-28 12:27:48 +0800 | [diff] [blame] | 59 | [enable libcl image processor, @<:@default=no@:>@]), |
| 60 | [], [enable_libcl="no"]) |
Wind Yuan | 4009d6c | 2015-02-10 18:09:48 +0800 | [diff] [blame] | 61 | |
Yinhang Liu | 8034ce1 | 2016-12-20 15:30:49 +0800 | [diff] [blame^] | 62 | AC_ARG_ENABLE(opencv, |
| 63 | AS_HELP_STRING([--enable-opencv], |
| 64 | [enable opencv library, @<:@default=no@:>@]), |
| 65 | [], [enable_opencv="no"]) |
| 66 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 67 | # documentation |
| 68 | AC_ARG_ENABLE(docs, |
| 69 | [AC_HELP_STRING([--enable-docs], |
| 70 | [build Doxygen documentation @<:@default=no@:>@])], |
| 71 | [], [enable_docs="no"]) |
| 72 | |
Wind Yuan | 8ba2f16 | 2015-05-04 14:51:07 +0800 | [diff] [blame] | 73 | AC_ARG_ENABLE([3alib], |
| 74 | AS_HELP_STRING([--enable-3alib], |
| 75 | [enable 3A lib build, @<:@default=no@:>@]), |
| 76 | [], [enable_3alib="no"]) |
| 77 | |
zongwave | 03954a3 | 2015-09-22 15:40:44 +0800 | [diff] [blame] | 78 | AC_ARG_ENABLE([smartlib], |
| 79 | AS_HELP_STRING([--enable-smartlib], |
| 80 | [enable smart analysis lib build, @<:@default=no@:>@]), |
| 81 | [], [enable_smartlib="no"]) |
| 82 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 83 | # Check for Doxygen |
| 84 | if test "$enable_docs" = "yes"; then |
| 85 | AC_CHECK_TOOL([DOXYGEN], [doxygen], [no]) |
| 86 | if test "$DOXYGEN" = "no"; then |
| 87 | enable_docs="no" |
| 88 | fi |
| 89 | fi |
| 90 | AM_CONDITIONAL(ENABLE_DOCS, test "$enable_docs" = "yes") |
| 91 | |
Wind Yuan | 9162580 | 2015-06-24 15:36:01 +0800 | [diff] [blame] | 92 | # check profiling |
| 93 | ENABLE_PROFILING=0 |
| 94 | if test "$enable_profiling" = "yes"; then |
| 95 | ENABLE_PROFILING=1 |
| 96 | fi |
| 97 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 98 | # check drm |
| 99 | HAVE_LIBDRM=0 |
| 100 | if test "$enable_drm" = "yes"; then |
| 101 | PKG_CHECK_MODULES(LIBDRM, [libdrm], [HAVE_LIBDRM=1], [HAVE_LIBDRM=0]) |
| 102 | fi |
| 103 | |
Wind Yuan | 4009d6c | 2015-02-10 18:09:48 +0800 | [diff] [blame] | 104 | # check libcl |
| 105 | HAVE_LIBCL=0 |
| 106 | if test "$enable_libcl" = "yes"; then |
| 107 | PKG_CHECK_MODULES(LIBCL, [libcl], [HAVE_LIBCL=1], [HAVE_LIBCL=0]) |
| 108 | fi |
| 109 | |
zongwave | 2156baf | 2016-04-08 16:42:11 +0800 | [diff] [blame] | 110 | if test "$enable_libcl" = "yes" && test "$HAVE_LIBCL" -eq 0; then |
| 111 | PKG_CHECK_MODULES(LIBCL, [OpenCL], [HAVE_LIBCL=1], [HAVE_LIBCL=0]) |
zongwave | 2156baf | 2016-04-08 16:42:11 +0800 | [diff] [blame] | 112 | fi |
| 113 | |
Yinhang Liu | a94dd68 | 2016-08-12 12:56:47 +0800 | [diff] [blame] | 114 | if 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 |
| 119 | fi |
| 120 | |
Yinhang Liu | 8034ce1 | 2016-12-20 15:30:49 +0800 | [diff] [blame^] | 121 | # check opencv |
| 122 | HAVE_OPENCV=0 |
| 123 | if test "$enable_opencv" = "yes"; then |
| 124 | PKG_CHECK_MODULES(OPENCV, [opencv], [HAVE_OPENCV=1], [HAVE_OPENCV=0]) |
| 125 | fi |
| 126 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 127 | # check AIQ |
Jia Meng | e2ed239 | 2015-07-16 23:20:12 +0800 | [diff] [blame] | 128 | ENABLE_IA_AIQ=0 |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 129 | USE_LOCAL_AIQ=0 |
| 130 | if test "$enable_aiq" = "yes"; then |
Jia Meng | e2ed239 | 2015-07-16 23:20:12 +0800 | [diff] [blame] | 131 | ENABLE_IA_AIQ=1 |
| 132 | PKG_CHECK_MODULES(IA_AIQ, ia_imaging, |
| 133 | PKG_CHECK_EXISTS(ia_imaging >= 2.7, |
Wind Yuan | 1a2e232 | 2016-05-12 02:33:53 -0400 | [diff] [blame] | 134 | AC_DEFINE(HAVE_AIQ_2_7, 1, [defined if module ia_imaging >= v2.0_007 is found]) |
Jia Meng | e2ed239 | 2015-07-16 23:20:12 +0800 | [diff] [blame] | 135 | ), |
| 136 | [USE_LOCAL_AIQ=1] |
| 137 | ) |
Wind Yuan | 1a2e232 | 2016-05-12 02:33:53 -0400 | [diff] [blame] | 138 | |
| 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 Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 179 | fi |
| 180 | |
Wind Yuan | 8ba2f16 | 2015-05-04 14:51:07 +0800 | [diff] [blame] | 181 | # check 3a lib build |
| 182 | ENABLE_3ALIB=0 |
| 183 | if test "$enable_3alib" = "yes"; then |
| 184 | ENABLE_3ALIB=1 |
| 185 | fi |
| 186 | AM_CONDITIONAL([ENABLE_3ALIB], [test "$ENABLE_3ALIB" -eq 1]) |
| 187 | |
zongwave | 03954a3 | 2015-09-22 15:40:44 +0800 | [diff] [blame] | 188 | # check smart analysis lib build |
| 189 | ENABLE_SMART_LIB=0 |
| 190 | if test "$enable_smartlib" = "yes"; then |
| 191 | ENABLE_SMART_LIB=1 |
| 192 | fi |
| 193 | AM_CONDITIONAL([ENABLE_SMART_LIB], [test "$ENABLE_SMART_LIB" -eq 1]) |
| 194 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 195 | # check atomisp headers |
| 196 | USE_LOCAL_ATOMISP=0 |
| 197 | #AC_CHECK_HEADERS([linux/atomisp.h], [USE_LOCAL_ATOMISP=0], [USE_LOCAL_ATOMISP=1]) |
| 198 | AC_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 Ye | 3fc8fc4 | 2015-03-19 14:41:01 +0800 | [diff] [blame] | 222 | # build gstreamer plugin |
| 223 | GST_API_VERSION=1.0 |
| 224 | GST_VERSION_REQUIRED=1.2.3 |
| 225 | ENABLE_GST=0 |
| 226 | if 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]) |
| 231 | fi |
| 232 | AM_CONDITIONAL([ENABLE_GST], [test "$ENABLE_GST" -eq 1]) |
| 233 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 234 | dnl set XCAM_CFLAGS and XCAM_CXXFLAGS |
| 235 | XCAM_CFLAGS=" -fPIC -DSTDC99 -W -Wall -D_REENTRANT" |
| 236 | if test "$enable_debug" = "yes"; then |
| 237 | XCAM_CFLAGS="$XCAM_CFLAGS -g -DDEBUG" |
| 238 | fi |
| 239 | XCAM_CXXFLAGS="$XCAM_CFLAGS -std=c++0x" |
| 240 | AC_SUBST(XCAM_CFLAGS) |
| 241 | AC_SUBST(XCAM_CXXFLAGS) |
| 242 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 243 | # define macor in config.h |
Wind Yuan | 9162580 | 2015-06-24 15:36:01 +0800 | [diff] [blame] | 244 | AC_DEFINE_UNQUOTED([ENABLE_PROFILING], $ENABLE_PROFILING, |
| 245 | [enable profiling]) |
| 246 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 247 | AC_DEFINE_UNQUOTED([HAVE_LIBDRM], $HAVE_LIBDRM, |
| 248 | [have libdrm]) |
| 249 | AM_CONDITIONAL([HAVE_LIBDRM], [test "$HAVE_LIBDRM" -eq 1]) |
| 250 | |
Wind Yuan | 4009d6c | 2015-02-10 18:09:48 +0800 | [diff] [blame] | 251 | AC_DEFINE_UNQUOTED([HAVE_LIBCL], $HAVE_LIBCL, |
| 252 | [have libcl]) |
| 253 | AM_CONDITIONAL([HAVE_LIBCL], [test "$HAVE_LIBCL" -eq 1]) |
| 254 | |
Yinhang Liu | 8034ce1 | 2016-12-20 15:30:49 +0800 | [diff] [blame^] | 255 | AC_DEFINE_UNQUOTED([HAVE_OPENCV], $HAVE_OPENCV, |
| 256 | [have opencv]) |
| 257 | AM_CONDITIONAL([HAVE_OPENCV], [test "$HAVE_OPENCV" -eq 1]) |
| 258 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 259 | #atomisp |
| 260 | AM_CONDITIONAL([USE_LOCAL_ATOMISP], [test "$USE_LOCAL_ATOMISP" -eq 1]) |
| 261 | |
| 262 | # aiq (ia_imaging) |
Jia Meng | e2ed239 | 2015-07-16 23:20:12 +0800 | [diff] [blame] | 263 | AC_DEFINE_UNQUOTED([HAVE_IA_AIQ], $ENABLE_IA_AIQ, |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 264 | [have aiq binary]) |
Jia Meng | e2ed239 | 2015-07-16 23:20:12 +0800 | [diff] [blame] | 265 | AM_CONDITIONAL([ENABLE_IA_AIQ], [test "$ENABLE_IA_AIQ" -eq 1]) |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 266 | AM_CONDITIONAL([USE_LOCAL_AIQ], [test "$USE_LOCAL_AIQ" -eq 1]) |
| 267 | |
| 268 | AC_CONFIG_FILES([Makefile |
Yinhang Liu | 42f0630 | 2015-05-22 17:01:58 +0800 | [diff] [blame] | 269 | clx_kernel/Makefile |
Yinhang Liu | 3af0405 | 2015-09-16 14:12:34 +0800 | [diff] [blame] | 270 | clx_bin/Makefile |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 271 | xcore/Makefile |
Yinhang Liu | f1a32a2 | 2016-06-12 13:33:46 +0800 | [diff] [blame] | 272 | modules/Makefile |
| 273 | modules/isp/Makefile |
| 274 | modules/ocl/Makefile |
John Ye | e94eb96 | 2015-03-17 15:34:03 +0800 | [diff] [blame] | 275 | wrapper/Makefile |
| 276 | wrapper/gstreamer/Makefile |
John Ye | 79d1f1e | 2015-04-01 17:02:11 +0800 | [diff] [blame] | 277 | wrapper/gstreamer/interface/Makefile |
Yinhang Liu | f1a32a2 | 2016-06-12 13:33:46 +0800 | [diff] [blame] | 278 | plugins/Makefile |
| 279 | plugins/3a/hybrid/Makefile |
| 280 | plugins/3a/aiq/Makefile |
| 281 | plugins/3a/Makefile |
| 282 | plugins/smart/Makefile |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 283 | tests/Makefile |
| 284 | pkgconfig/Makefile |
| 285 | pkgconfig/xcam_core.pc |
| 286 | ]) |
Yinhang Liu | f1a32a2 | 2016-06-12 13:33:46 +0800 | [diff] [blame] | 287 | |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 288 | AC_OUTPUT |
| 289 | |
| 290 | if test "$USE_LOCAL_AIQ" -eq 1; then use_local_aiq="yes"; else use_local_aiq="no"; fi |
| 291 | if test "$USE_LOCAL_ATOMISP" -eq 1; then use_local_atomisp="yes"; else use_local_atomisp="no"; fi |
Wind Yuan | 4009d6c | 2015-02-10 18:09:48 +0800 | [diff] [blame] | 292 | if test "$HAVE_LIBCL" -eq 1; then have_libcl="yes"; else have_libcl="no"; fi |
Yinhang Liu | 8034ce1 | 2016-12-20 15:30:49 +0800 | [diff] [blame^] | 293 | if test "$HAVE_OPENCV" -eq 1; then have_opencv="yes"; else have_opencv="no"; fi |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 294 | |
| 295 | echo " |
| 296 | libxcam configuration summary |
| 297 | version : $XCAM_VERSION |
| 298 | enable debug : $enable_debug |
Wind Yuan | 9162580 | 2015-06-24 15:36:01 +0800 | [diff] [blame] | 299 | enable profiling : $enable_profiling |
John Ye | 3fc8fc4 | 2015-03-19 14:41:01 +0800 | [diff] [blame] | 300 | build GStreamer plugin : $enable_gst |
Jia Meng | e2ed239 | 2015-07-16 23:20:12 +0800 | [diff] [blame] | 301 | build aiq analyzer : $enable_aiq |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 302 | use local aiq : $use_local_aiq |
| 303 | use local atomisp : $use_local_atomisp |
Wind Yuan | 4009d6c | 2015-02-10 18:09:48 +0800 | [diff] [blame] | 304 | have opencl lib : $have_libcl |
Yinhang Liu | 8034ce1 | 2016-12-20 15:30:49 +0800 | [diff] [blame^] | 305 | have opencv lib : $have_opencv |
Wind Yuan | 8ba2f16 | 2015-05-04 14:51:07 +0800 | [diff] [blame] | 306 | enable 3a lib : $enable_3alib |
zongwave | 03954a3 | 2015-09-22 15:40:44 +0800 | [diff] [blame] | 307 | enable smart analysis lib : $enable_smartlib |
Wind Yuan | 75564b1 | 2015-01-15 06:51:15 -0500 | [diff] [blame] | 308 | " |