# -*- 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 <opencv2/core.hpp>
|
#include <opencv2/opencv.hpp>
|
]],
|
[[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 <stdint.h>
|
#include <stdio.h>
|
#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 <stdint.h>
|
#include <stdio.h>
|
#include <linux/atomisp.h>]],
|
[[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
|
"
|