1# -*- Autoconf -*- 2# Process this file with autoconf to produce a configure script. 3 4m4_define([xcam_major_version], [1]) 5m4_define([xcam_minor_version], [1]) 6m4_define([xcam_micro_version], [0]) 7m4_define([xcam_version], [xcam_major_version.xcam_minor_version.xcam_micro_version]) 8 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([foreign subdir-objects]) 14 15#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 25XCAM_LT_VERSION="xcam_major_version:xcam_minor_version:xcam_micro_version" 26XCAM_LT_LDFLAGS="-version-number $XCAM_LT_VERSION" 27AC_SUBST(XCAM_LT_VERSION) 28AC_SUBST(XCAM_LT_LDFLAGS) 29 30# Checks for programs. 31AC_PROG_CC 32AC_PROG_CXX 33AC_PROG_INSTALL 34PKG_PROG_PKG_CONFIG 35LT_INIT 36 37AC_ARG_ENABLE(debug, 38 AS_HELP_STRING([--enable-debug], 39 [enable debug, @<:@default=no@:>@]), 40 [], [enable_debug="no"]) 41AM_CONDITIONAL([DEBUG], [test "$enable_debug" = "yes"]) 42 43AC_ARG_ENABLE(profiling, 44 AS_HELP_STRING([--enable-profiling], 45 [enable profiling, @<:@default=no@:>@]), 46 [], [enable_profiling="no"]) 47 48AC_ARG_ENABLE(drm, 49 AS_HELP_STRING([--enable-drm], 50 [enable drm buffer, @<:@default=no@:>@]), 51 [], [enable_drm="no"]) 52 53AC_ARG_ENABLE([aiq], 54 AS_HELP_STRING([--enable-aiq], 55 [enable Aiq 3A algorithm build, @<:@default=no@:>@]), 56 [], [enable_aiq="no"]) 57 58AC_ARG_ENABLE([gst], 59 AS_HELP_STRING([--enable-gst], 60 [enable gstreamer plugin build, @<:@default=no@:>@]), 61 [], [enable_gst="no"]) 62 63AC_ARG_ENABLE(libcl, 64 AS_HELP_STRING([--enable-libcl], 65 [enable libcl image processor, @<:@default=yes@:>@]), 66 [], [enable_libcl="yes"]) 67 68AC_ARG_ENABLE(opencv, 69 AS_HELP_STRING([--enable-opencv], 70 [enable opencv library, @<:@default=no@:>@]), 71 [], [enable_opencv="no"]) 72 73AC_ARG_ENABLE(capi, 74 AS_HELP_STRING([--enable-capi], 75 [enable libxcam-capi library, @<:@default=yes@:>@]), 76 [], [enable_capi="yes"]) 77 78# documentation 79AC_ARG_ENABLE(docs, 80 [AC_HELP_STRING([--enable-docs], 81 [build Doxygen documentation @<:@default=no@:>@])], 82 [], [enable_docs="no"]) 83 84AC_ARG_ENABLE([3alib], 85 AS_HELP_STRING([--enable-3alib], 86 [enable 3A lib build, @<:@default=no@:>@]), 87 [], [enable_3alib="no"]) 88 89AC_ARG_ENABLE([smartlib], 90 AS_HELP_STRING([--enable-smartlib], 91 [enable smart analysis lib build, @<:@default=no@:>@]), 92 [], [enable_smartlib="no"]) 93 94# Check for Doxygen 95if test "$enable_docs" = "yes"; then 96 AC_CHECK_TOOL([DOXYGEN], [doxygen], [no]) 97 if test "$DOXYGEN" = "no"; then 98 enable_docs="no" 99 fi 100fi 101AM_CONDITIONAL(ENABLE_DOCS, test "$enable_docs" = "yes") 102 103# check profiling 104ENABLE_PROFILING=0 105if test "$enable_profiling" = "yes"; then 106 ENABLE_PROFILING=1 107fi 108 109# check drm 110HAVE_LIBDRM=0 111if test "$enable_drm" = "yes"; then 112 PKG_CHECK_MODULES(LIBDRM, [libdrm], [HAVE_LIBDRM=1], [HAVE_LIBDRM=0]) 113fi 114 115# check libcl 116HAVE_LIBCL=0 117if test "$enable_libcl" = "yes"; then 118 PKG_CHECK_MODULES(LIBCL, [libcl], [HAVE_LIBCL=1], [HAVE_LIBCL=0]) 119fi 120 121if test "$enable_libcl" = "yes" && test "$HAVE_LIBCL" -eq 0; then 122 PKG_CHECK_MODULES(LIBCL, [OpenCL], [HAVE_LIBCL=1], [HAVE_LIBCL=0]) 123fi 124 125if test "$HAVE_LIBCL" -eq 1; then 126 AC_CHECK_PROGS([GAWK], [gawk], [no]) 127 if test "x$GAWK" = "xno"; then 128 AC_MSG_ERROR([gawk not found]) 129 fi 130 131 if test "$HAVE_LIBDRM" -eq 1; then 132 HAVE_CL_INTEL_H=1 133 AC_CHECK_HEADERS([CL/cl_intel.h], [HAVE_CL_INTEL_H=1], [HAVE_CL_INTEL_H=0]) 134 if test "$HAVE_CL_INTEL_H" -eq 0; then 135 # https://raw.githubusercontent.com/intel/beignet/Release_v1.3/include/CL/cl_intel.h 136 XCAM_WGET( 137 [https://cgit.freedesktop.org/beignet/plain/include/CL/cl_intel.h?id=Release_v1.3.0], 138 [./ext/beignet/include/CL/cl_intel.h], 139 [6a6619073cb35e6987b7379a5a1a1497]) 140 141 CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)/ext/beignet/include" 142 fi 143 fi 144fi 145 146# check opencv minimum version number 147HAVE_OPENCV=0 148if test "$enable_opencv" = "yes"; then 149 OPENCV_VERSION_STR=`$PKG_CONFIG --modversion opencv` 150 PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0], [HAVE_OPENCV=1], [HAVE_OPENCV=0]) 151 echo "OpenCV version:"$OPENCV_VERSION_STR "minimum required version:3.0.0" "have opencv:"$HAVE_OPENCV 152fi 153 154# check opencv videostab module 155ENABLE_DVS=0 156if test "$HAVE_OPENCV" -eq 1; then 157 AC_LANG(C++) 158 saved_CPPFLAGS="$CPPFLAGS" 159 CPPFLAGS="$CPPFLAGS $OPENCV_CFLAGS" 160 saved_LIBS="$LIBS" 161 LIBS="$LIBS $OPENCV_LIBS" 162 AC_CHECK_HEADER([opencv2/videostab.hpp], [ENABLE_DVS=1], [ENABLE_DVS=0]) 163 CPPFLAGS="$saved_CPPFLAGS" 164 LIBS="$saved_LIBS" 165fi 166 167# check dvs opencl path 168ENABLE_DVS_CL_PATH=0 169if test "$HAVE_OPENCV" -eq 1; then 170 AC_LANG(C++) 171 saved_CPPFLAGS="$CPPFLAGS" 172 CPPFLAGS="$CPPFLAGS $OPENCV_CFLAGS" 173 saved_LIBS="$LIBS" 174 LIBS="$LIBS $OPENCV_LIBS" 175 AC_COMPILE_IFELSE( 176 [AC_LANG_PROGRAM( 177 [[#include <opencv2/core.hpp> 178 #include <opencv2/opencv.hpp> 179 ]], 180 [[cv::UMat frame0; 181 cv::UMat frame1; 182 cv::videostab::MotionEstimatorRansacL2 est; 183 cv::videostab::KeypointBasedMotionEstimator kpest(&est); 184 kpest.estimate(frame0, frame1); 185 ]] 186 )], 187 [ENABLE_DVS_CL_PATH=1], 188 [ENABLE_DVS_CL_PATH=0] 189 ) 190 CPPFLAGS="$saved_CPPFLAGS" 191 LIBS="$saved_LIBS" 192fi 193 194# check capi build 195ENABLE_CAPI=0 196if test "$enable_capi" = "yes"; then 197 ENABLE_CAPI=1 198fi 199 200# check AIQ 201ENABLE_IA_AIQ=0 202USE_LOCAL_AIQ=0 203if test "$enable_aiq" = "yes"; then 204 ENABLE_IA_AIQ=1 205 PKG_CHECK_MODULES(IA_AIQ, ia_imaging, 206 PKG_CHECK_EXISTS(ia_imaging >= 2.7, 207 AC_DEFINE(HAVE_AIQ_2_7, 1, [defined if module ia_imaging >= v2.0_007 is found]) 208 ), 209 [USE_LOCAL_AIQ=1] 210 ) 211 212 if test "$USE_LOCAL_AIQ" -eq 1; then 213 #check HAVE_AIQ_2_7 214 AC_CACHE_CHECK([for ext/ia_imaging >=v2.0_007], 215 ac_cv_have_aiq_2_7, [ 216 saved_CPPFLAGS="$CPPFLAGS" 217 CPPFLAGS="$CPPFLAGS -I./ext/ia_imaging/include" 218 saved_LIBS="$LIBS" 219 LIBS="$LIBS" 220 AC_COMPILE_IFELSE( 221 [AC_LANG_PROGRAM( 222 [[#include <stdint.h> 223 #include <stdio.h> 224 #include "ia_aiq_types.h" 225 ]], 226 [[ia_aiq_ae_results ae_result; 227 ae_result.flashes = NULL; 228 ]] 229 )], 230 [ac_cv_have_aiq_2_7="yes"], 231 [ac_cv_have_aiq_2_7="no"] 232 ) 233 CPPFLAGS="$saved_CPPFLAGS" 234 LIBS="$saved_LIBS" 235 ]) 236 237 if test "$ac_cv_have_aiq_2_7" = "yes"; then 238 AC_DEFINE(HAVE_AIQ_2_7, 1, [defined if ia_imaging >= v2.0_007 is found]) 239 fi 240 fi 241 242 if test "$USE_LOCAL_AIQ" -eq 0; then 243 IA_IMAGING_CFLAGS="$IA_AIQ_CFLAGS" 244 IA_IMAGING_LIBS="$IA_AIQ_LIBS" 245 else 246 IA_IMAGING_CFLAGS="-I\$(top_srcdir)/ext/ia_imaging/include" 247 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" 248 fi 249 AC_SUBST(IA_IMAGING_CFLAGS) 250 AC_SUBST(IA_IMAGING_LIBS) 251 LIBS="$LIBS $IA_IMAGING_LIBS" 252fi 253 254# check 3a lib build 255ENABLE_3ALIB=0 256if test "$enable_3alib" = "yes"; then 257 ENABLE_3ALIB=1 258fi 259AM_CONDITIONAL([ENABLE_3ALIB], [test "$ENABLE_3ALIB" -eq 1]) 260 261# check smart analysis lib build 262ENABLE_SMART_LIB=0 263if test "$enable_smartlib" = "yes"; then 264 ENABLE_SMART_LIB=1 265fi 266AM_CONDITIONAL([ENABLE_SMART_LIB], [test "$ENABLE_SMART_LIB" -eq 1]) 267 268# check atomisp headers 269USE_LOCAL_ATOMISP=0 270#AC_CHECK_HEADERS([linux/atomisp.h], [USE_LOCAL_ATOMISP=0], [USE_LOCAL_ATOMISP=1]) 271AC_CACHE_CHECK([for linux/atomisp.h], 272 ac_cv_have_atomisp_headers, [ 273 saved_CPPFLAGS="$CPPFLAGS" 274 CPPFLAGS="$CPPFLAGS" 275 saved_LIBS="$LIBS" 276 LIBS="$LIBS" 277 AC_COMPILE_IFELSE( 278 [AC_LANG_PROGRAM( 279 [[#ifndef __user 280 #define __user 281 #endif 282 #include <stdint.h> 283 #include <stdio.h> 284 #include <linux/atomisp.h>]], 285 [[struct atomisp_parm param;]] 286 )], 287 [ac_cv_have_atomisp_headers="yes"], 288 [ac_cv_have_atomisp_headers="no" USE_LOCAL_ATOMISP=1] 289 ) 290 CPPFLAGS="$saved_CPPFLAGS" 291 LIBS="$saved_LIBS" 292]) 293 294 295# build gstreamer plugin 296GST_API_VERSION=1.0 297GST_VERSION_REQUIRED=1.2.3 298ENABLE_GST=0 299if test "$enable_gst" = "yes"; then 300 ENABLE_GST=1 301 PKG_CHECK_MODULES([GST], [gstreamer-$GST_API_VERSION >= $GST_VERSION_REQUIRED]) 302 PKG_CHECK_MODULES([GST_ALLOCATOR], [gstreamer-allocators-$GST_API_VERSION >= $GST_VERSION_REQUIRED]) 303 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-$GST_API_VERSION >= $GST_VERSION_REQUIRED]) 304fi 305AM_CONDITIONAL([ENABLE_GST], [test "$ENABLE_GST" -eq 1]) 306 307dnl set XCAM_CFLAGS and XCAM_CXXFLAGS 308XCAM_CFLAGS=" -fPIC -DSTDC99 -W -Wall -D_REENTRANT -Wformat -Wformat-security -fstack-protector" 309if test "$enable_debug" = "yes"; then 310 XCAM_CFLAGS="$XCAM_CFLAGS -g -DDEBUG" 311fi 312XCAM_CXXFLAGS="$XCAM_CFLAGS -std=c++0x" 313AC_SUBST(XCAM_CFLAGS) 314AC_SUBST(XCAM_CXXFLAGS) 315 316PTHREAD_LDFLAGS="$PTHREAD_LDFLAGS -pthread" 317AC_SUBST(PTHREAD_LDFLAGS) 318 319# define macor in config.h 320AC_DEFINE_UNQUOTED([ENABLE_PROFILING], $ENABLE_PROFILING, 321 [enable profiling]) 322 323AC_DEFINE_UNQUOTED([HAVE_LIBDRM], $HAVE_LIBDRM, 324 [have libdrm]) 325AM_CONDITIONAL([HAVE_LIBDRM], [test "$HAVE_LIBDRM" -eq 1]) 326 327AC_DEFINE_UNQUOTED([HAVE_LIBCL], $HAVE_LIBCL, 328 [have libcl]) 329AM_CONDITIONAL([HAVE_LIBCL], [test "$HAVE_LIBCL" -eq 1]) 330 331AC_DEFINE_UNQUOTED([HAVE_OPENCV], $HAVE_OPENCV, 332 [have opencv]) 333AM_CONDITIONAL([HAVE_OPENCV], [test "$HAVE_OPENCV" -eq 1]) 334 335AC_DEFINE_UNQUOTED([ENABLE_DVS], $ENABLE_DVS, 336 [enable dvs]) 337AM_CONDITIONAL([ENABLE_DVS], [test "$ENABLE_DVS" -eq 1]) 338 339AC_DEFINE_UNQUOTED([ENABLE_DVS_CL_PATH], $ENABLE_DVS_CL_PATH, 340 [enable dvs cl path]) 341AM_CONDITIONAL([ENABLE_DVS_CL_PATH], [test "$ENABLE_DVS_CL_PATH" -eq 1]) 342 343AC_DEFINE_UNQUOTED([ENABLE_CAPI], $ENABLE_CAPI, 344 [enable capi build]) 345AM_CONDITIONAL([ENABLE_CAPI], [test "$ENABLE_CAPI" -eq 1]) 346 347#atomisp 348AM_CONDITIONAL([USE_LOCAL_ATOMISP], [test "$USE_LOCAL_ATOMISP" -eq 1]) 349 350# aiq (ia_imaging) 351AC_DEFINE_UNQUOTED([HAVE_IA_AIQ], $ENABLE_IA_AIQ, 352 [have aiq binary]) 353AM_CONDITIONAL([ENABLE_IA_AIQ], [test "$ENABLE_IA_AIQ" -eq 1]) 354AM_CONDITIONAL([USE_LOCAL_AIQ], [test "$USE_LOCAL_AIQ" -eq 1]) 355 356AC_CONFIG_FILES([Makefile 357 clx_kernel/Makefile 358 xcore/Makefile 359 modules/Makefile 360 modules/soft/Makefile 361 modules/isp/Makefile 362 modules/ocl/Makefile 363 wrapper/Makefile 364 wrapper/gstreamer/Makefile 365 wrapper/gstreamer/interface/Makefile 366 plugins/Makefile 367 plugins/3a/hybrid/Makefile 368 plugins/3a/aiq/Makefile 369 plugins/3a/Makefile 370 plugins/smart/Makefile 371 plugins/smart/dvs/Makefile 372 plugins/smart/dvs/libdvs/Makefile 373 plugins/smart/sample/Makefile 374 capi/Makefile 375 tests/Makefile 376 pkgconfig/Makefile 377 pkgconfig/libxcam.pc 378 ]) 379 380AC_OUTPUT 381 382if test "$HAVE_LIBDRM" -eq 1; then have_drm="yes"; else have_drm="no"; fi 383if test "$USE_LOCAL_AIQ" -eq 1; then use_local_aiq="yes"; else use_local_aiq="no"; fi 384if test "$USE_LOCAL_ATOMISP" -eq 1; then use_local_atomisp="yes"; else use_local_atomisp="no"; fi 385if test "$HAVE_LIBCL" -eq 1; then have_libcl="yes"; else have_libcl="no"; fi 386if test "$HAVE_OPENCV" -eq 1; then have_opencv="yes"; else have_opencv="no"; fi 387if test "$ENABLE_DVS" -eq 1; then enable_dvs="yes"; else enable_dvs="no"; fi 388 389echo " 390 libxcam configuration summary 391 version : $XCAM_VERSION 392 enable debug : $enable_debug 393 enable profiling : $enable_profiling 394 enable drm lib : $have_drm 395 build GStreamer plugin : $enable_gst 396 build aiq analyzer : $enable_aiq 397 use local aiq : $use_local_aiq 398 use local atomisp : $use_local_atomisp 399 have opencl lib : $have_libcl 400 have opencv lib : $have_opencv 401 enable 3a lib : $enable_3alib 402 enable smart analysis lib : $enable_smartlib 403 enable dvs : $enable_dvs 404 enable libxcam-capi lib : $enable_capi 405" 406