# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. m4_define([xcam_major_version], [1]) m4_define([xcam_minor_version], [1]) m4_define([xcam_micro_version], [0]) m4_define([xcam_version], [xcam_major_version.xcam_minor_version.xcam_micro_version]) AC_PREREQ([2.60]) AC_CONFIG_MACRO_DIR([m4]) AC_INIT([libxcam], [xcam_version], [feng.yuan@intel.com], [libxcam]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([foreign subdir-objects]) #xcam version XCAM_MAJOR_VERSION=xcam_major_version XCAM_MINOR_VERSION=xcam_minor_version XCAM_MICRO_VERSION=xcam_micro_version XCAM_VERSION=xcam_version XCAM_VERSION_HEX="0x$XCAM_MAJOR_VERSION$XCAM_MINOR_VERSION$XCAM_MICRO_VERSION" AC_DEFINE_UNQUOTED(XCAM_VERSION, $XCAM_VERSION_HEX, [define libxcam version]) AC_SUBST(XCAM_VERSION) XCAM_LT_VERSION="xcam_major_version:xcam_minor_version:xcam_micro_version" XCAM_LT_LDFLAGS="-version-number $XCAM_LT_VERSION" AC_SUBST(XCAM_LT_VERSION) AC_SUBST(XCAM_LT_LDFLAGS) # Checks for programs. AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL PKG_PROG_PKG_CONFIG LT_INIT AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [enable debug, @<:@default=no@:>@]), [], [enable_debug="no"]) AM_CONDITIONAL([DEBUG], [test "$enable_debug" = "yes"]) AC_ARG_ENABLE(profiling, AS_HELP_STRING([--enable-profiling], [enable profiling, @<:@default=no@:>@]), [], [enable_profiling="no"]) AC_ARG_ENABLE(drm, AS_HELP_STRING([--enable-drm], [enable drm buffer, @<:@default=no@:>@]), [], [enable_drm="no"]) AC_ARG_ENABLE([aiq], AS_HELP_STRING([--enable-aiq], [enable Aiq 3A algorithm build, @<:@default=no@:>@]), [], [enable_aiq="no"]) AC_ARG_ENABLE([gst], AS_HELP_STRING([--enable-gst], [enable gstreamer plugin build, @<:@default=no@:>@]), [], [enable_gst="no"]) AC_ARG_ENABLE(libcl, AS_HELP_STRING([--enable-libcl], [enable libcl image processor, @<:@default=yes@:>@]), [], [enable_libcl="yes"]) AC_ARG_ENABLE(opencv, AS_HELP_STRING([--enable-opencv], [enable opencv library, @<:@default=no@:>@]), [], [enable_opencv="no"]) AC_ARG_ENABLE(capi, AS_HELP_STRING([--enable-capi], [enable libxcam-capi library, @<:@default=yes@:>@]), [], [enable_capi="yes"]) # documentation AC_ARG_ENABLE(docs, [AC_HELP_STRING([--enable-docs], [build Doxygen documentation @<:@default=no@:>@])], [], [enable_docs="no"]) AC_ARG_ENABLE([3alib], AS_HELP_STRING([--enable-3alib], [enable 3A lib build, @<:@default=no@:>@]), [], [enable_3alib="no"]) AC_ARG_ENABLE([smartlib], AS_HELP_STRING([--enable-smartlib], [enable smart analysis lib build, @<:@default=no@:>@]), [], [enable_smartlib="no"]) # Check for Doxygen if test "$enable_docs" = "yes"; then AC_CHECK_TOOL([DOXYGEN], [doxygen], [no]) if test "$DOXYGEN" = "no"; then enable_docs="no" fi fi AM_CONDITIONAL(ENABLE_DOCS, test "$enable_docs" = "yes") # check profiling ENABLE_PROFILING=0 if test "$enable_profiling" = "yes"; then ENABLE_PROFILING=1 fi # check drm HAVE_LIBDRM=0 if test "$enable_drm" = "yes"; then PKG_CHECK_MODULES(LIBDRM, [libdrm], [HAVE_LIBDRM=1], [HAVE_LIBDRM=0]) fi # check libcl HAVE_LIBCL=0 if test "$enable_libcl" = "yes"; then PKG_CHECK_MODULES(LIBCL, [libcl], [HAVE_LIBCL=1], [HAVE_LIBCL=0]) fi if test "$enable_libcl" = "yes" && test "$HAVE_LIBCL" -eq 0; then PKG_CHECK_MODULES(LIBCL, [OpenCL], [HAVE_LIBCL=1], [HAVE_LIBCL=0]) fi if test "$HAVE_LIBCL" -eq 1; then AC_CHECK_PROGS([GAWK], [gawk], [no]) if test "x$GAWK" = "xno"; then AC_MSG_ERROR([gawk not found]) fi if test "$HAVE_LIBDRM" -eq 1; then HAVE_CL_INTEL_H=1 AC_CHECK_HEADERS([CL/cl_intel.h], [HAVE_CL_INTEL_H=1], [HAVE_CL_INTEL_H=0]) if test "$HAVE_CL_INTEL_H" -eq 0; then # https://raw.githubusercontent.com/intel/beignet/Release_v1.3/include/CL/cl_intel.h XCAM_WGET( [https://cgit.freedesktop.org/beignet/plain/include/CL/cl_intel.h?id=Release_v1.3.0], [./ext/beignet/include/CL/cl_intel.h], [6a6619073cb35e6987b7379a5a1a1497]) CPPFLAGS="$CPPFLAGS -I\$(top_srcdir)/ext/beignet/include" fi fi fi # check opencv minimum version number HAVE_OPENCV=0 if test "$enable_opencv" = "yes"; then OPENCV_VERSION_STR=`$PKG_CONFIG --modversion opencv` PKG_CHECK_MODULES([OPENCV], [opencv >= 3.0.0], [HAVE_OPENCV=1], [HAVE_OPENCV=0]) echo "OpenCV version:"$OPENCV_VERSION_STR "minimum required version:3.0.0" "have opencv:"$HAVE_OPENCV fi # check opencv videostab module ENABLE_DVS=0 if test "$HAVE_OPENCV" -eq 1; then AC_LANG(C++) saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $OPENCV_CFLAGS" saved_LIBS="$LIBS" LIBS="$LIBS $OPENCV_LIBS" AC_CHECK_HEADER([opencv2/videostab.hpp], [ENABLE_DVS=1], [ENABLE_DVS=0]) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" fi # check dvs opencl path ENABLE_DVS_CL_PATH=0 if test "$HAVE_OPENCV" -eq 1; then AC_LANG(C++) saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $OPENCV_CFLAGS" saved_LIBS="$LIBS" LIBS="$LIBS $OPENCV_LIBS" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[cv::UMat frame0; cv::UMat frame1; cv::videostab::MotionEstimatorRansacL2 est; cv::videostab::KeypointBasedMotionEstimator kpest(&est); kpest.estimate(frame0, frame1); ]] )], [ENABLE_DVS_CL_PATH=1], [ENABLE_DVS_CL_PATH=0] ) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" fi # check capi build ENABLE_CAPI=0 if test "$enable_capi" = "yes"; then ENABLE_CAPI=1 fi # check AIQ ENABLE_IA_AIQ=0 USE_LOCAL_AIQ=0 if test "$enable_aiq" = "yes"; then ENABLE_IA_AIQ=1 PKG_CHECK_MODULES(IA_AIQ, ia_imaging, PKG_CHECK_EXISTS(ia_imaging >= 2.7, AC_DEFINE(HAVE_AIQ_2_7, 1, [defined if module ia_imaging >= v2.0_007 is found]) ), [USE_LOCAL_AIQ=1] ) if test "$USE_LOCAL_AIQ" -eq 1; then #check HAVE_AIQ_2_7 AC_CACHE_CHECK([for ext/ia_imaging >=v2.0_007], ac_cv_have_aiq_2_7, [ saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I./ext/ia_imaging/include" saved_LIBS="$LIBS" LIBS="$LIBS" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include "ia_aiq_types.h" ]], [[ia_aiq_ae_results ae_result; ae_result.flashes = NULL; ]] )], [ac_cv_have_aiq_2_7="yes"], [ac_cv_have_aiq_2_7="no"] ) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ]) if test "$ac_cv_have_aiq_2_7" = "yes"; then AC_DEFINE(HAVE_AIQ_2_7, 1, [defined if ia_imaging >= v2.0_007 is found]) fi fi if test "$USE_LOCAL_AIQ" -eq 0; then IA_IMAGING_CFLAGS="$IA_AIQ_CFLAGS" IA_IMAGING_LIBS="$IA_AIQ_LIBS" else IA_IMAGING_CFLAGS="-I\$(top_srcdir)/ext/ia_imaging/include" 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" fi AC_SUBST(IA_IMAGING_CFLAGS) AC_SUBST(IA_IMAGING_LIBS) LIBS="$LIBS $IA_IMAGING_LIBS" fi # check 3a lib build ENABLE_3ALIB=0 if test "$enable_3alib" = "yes"; then ENABLE_3ALIB=1 fi AM_CONDITIONAL([ENABLE_3ALIB], [test "$ENABLE_3ALIB" -eq 1]) # check smart analysis lib build ENABLE_SMART_LIB=0 if test "$enable_smartlib" = "yes"; then ENABLE_SMART_LIB=1 fi AM_CONDITIONAL([ENABLE_SMART_LIB], [test "$ENABLE_SMART_LIB" -eq 1]) # check atomisp headers USE_LOCAL_ATOMISP=0 #AC_CHECK_HEADERS([linux/atomisp.h], [USE_LOCAL_ATOMISP=0], [USE_LOCAL_ATOMISP=1]) AC_CACHE_CHECK([for linux/atomisp.h], ac_cv_have_atomisp_headers, [ saved_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS" saved_LIBS="$LIBS" LIBS="$LIBS" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#ifndef __user #define __user #endif #include #include #include ]], [[struct atomisp_parm param;]] )], [ac_cv_have_atomisp_headers="yes"], [ac_cv_have_atomisp_headers="no" USE_LOCAL_ATOMISP=1] ) CPPFLAGS="$saved_CPPFLAGS" LIBS="$saved_LIBS" ]) # build gstreamer plugin GST_API_VERSION=1.0 GST_VERSION_REQUIRED=1.2.3 ENABLE_GST=0 if test "$enable_gst" = "yes"; then ENABLE_GST=1 PKG_CHECK_MODULES([GST], [gstreamer-$GST_API_VERSION >= $GST_VERSION_REQUIRED]) PKG_CHECK_MODULES([GST_ALLOCATOR], [gstreamer-allocators-$GST_API_VERSION >= $GST_VERSION_REQUIRED]) PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-$GST_API_VERSION >= $GST_VERSION_REQUIRED]) fi AM_CONDITIONAL([ENABLE_GST], [test "$ENABLE_GST" -eq 1]) dnl set XCAM_CFLAGS and XCAM_CXXFLAGS XCAM_CFLAGS=" -fPIC -DSTDC99 -W -Wall -D_REENTRANT -Wformat -Wformat-security -fstack-protector" if test "$enable_debug" = "yes"; then XCAM_CFLAGS="$XCAM_CFLAGS -g -DDEBUG" fi XCAM_CXXFLAGS="$XCAM_CFLAGS -std=c++0x" AC_SUBST(XCAM_CFLAGS) AC_SUBST(XCAM_CXXFLAGS) PTHREAD_LDFLAGS="$PTHREAD_LDFLAGS -pthread" AC_SUBST(PTHREAD_LDFLAGS) # define macor in config.h AC_DEFINE_UNQUOTED([ENABLE_PROFILING], $ENABLE_PROFILING, [enable profiling]) AC_DEFINE_UNQUOTED([HAVE_LIBDRM], $HAVE_LIBDRM, [have libdrm]) AM_CONDITIONAL([HAVE_LIBDRM], [test "$HAVE_LIBDRM" -eq 1]) AC_DEFINE_UNQUOTED([HAVE_LIBCL], $HAVE_LIBCL, [have libcl]) AM_CONDITIONAL([HAVE_LIBCL], [test "$HAVE_LIBCL" -eq 1]) AC_DEFINE_UNQUOTED([HAVE_OPENCV], $HAVE_OPENCV, [have opencv]) AM_CONDITIONAL([HAVE_OPENCV], [test "$HAVE_OPENCV" -eq 1]) AC_DEFINE_UNQUOTED([ENABLE_DVS], $ENABLE_DVS, [enable dvs]) AM_CONDITIONAL([ENABLE_DVS], [test "$ENABLE_DVS" -eq 1]) AC_DEFINE_UNQUOTED([ENABLE_DVS_CL_PATH], $ENABLE_DVS_CL_PATH, [enable dvs cl path]) AM_CONDITIONAL([ENABLE_DVS_CL_PATH], [test "$ENABLE_DVS_CL_PATH" -eq 1]) AC_DEFINE_UNQUOTED([ENABLE_CAPI], $ENABLE_CAPI, [enable capi build]) AM_CONDITIONAL([ENABLE_CAPI], [test "$ENABLE_CAPI" -eq 1]) #atomisp AM_CONDITIONAL([USE_LOCAL_ATOMISP], [test "$USE_LOCAL_ATOMISP" -eq 1]) # aiq (ia_imaging) AC_DEFINE_UNQUOTED([HAVE_IA_AIQ], $ENABLE_IA_AIQ, [have aiq binary]) AM_CONDITIONAL([ENABLE_IA_AIQ], [test "$ENABLE_IA_AIQ" -eq 1]) AM_CONDITIONAL([USE_LOCAL_AIQ], [test "$USE_LOCAL_AIQ" -eq 1]) AC_CONFIG_FILES([Makefile clx_kernel/Makefile xcore/Makefile modules/Makefile modules/soft/Makefile modules/isp/Makefile modules/ocl/Makefile wrapper/Makefile wrapper/gstreamer/Makefile wrapper/gstreamer/interface/Makefile plugins/Makefile plugins/3a/hybrid/Makefile plugins/3a/aiq/Makefile plugins/3a/Makefile plugins/smart/Makefile plugins/smart/dvs/Makefile plugins/smart/dvs/libdvs/Makefile plugins/smart/sample/Makefile capi/Makefile tests/Makefile pkgconfig/Makefile pkgconfig/libxcam.pc ]) AC_OUTPUT if test "$HAVE_LIBDRM" -eq 1; then have_drm="yes"; else have_drm="no"; fi if test "$USE_LOCAL_AIQ" -eq 1; then use_local_aiq="yes"; else use_local_aiq="no"; fi if test "$USE_LOCAL_ATOMISP" -eq 1; then use_local_atomisp="yes"; else use_local_atomisp="no"; fi if test "$HAVE_LIBCL" -eq 1; then have_libcl="yes"; else have_libcl="no"; fi if test "$HAVE_OPENCV" -eq 1; then have_opencv="yes"; else have_opencv="no"; fi if test "$ENABLE_DVS" -eq 1; then enable_dvs="yes"; else enable_dvs="no"; fi echo " libxcam configuration summary version : $XCAM_VERSION enable debug : $enable_debug enable profiling : $enable_profiling enable drm lib : $have_drm build GStreamer plugin : $enable_gst build aiq analyzer : $enable_aiq use local aiq : $use_local_aiq use local atomisp : $use_local_atomisp have opencl lib : $have_libcl have opencv lib : $have_opencv enable 3a lib : $enable_3alib enable smart analysis lib : $enable_smartlib enable dvs : $enable_dvs enable libxcam-capi lib : $enable_capi "