#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

m4_define([xcam_major_version], [1])
m4_define([xcam_minor_version], [2])
m4_define([xcam_micro_version], [2])
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)

#xcam required OpenCV version
XCAM_REQUIRE_CV_MIN=3.0.0
XCAM_REQUIRE_CV_MAX=3.4.3

#xcam required OpenSceneGraph version
XCAM_REQUIRE_OSG_MIN=3.3.2

# 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([gles],
    AS_HELP_STRING([--enable-gles],
                   [enable gles, @<:@default=no@:>@]),
    [], [enable_gles="no"])

AC_ARG_ENABLE([vulkan],
    AS_HELP_STRING([--enable-vulkan],
                   [enable vulkan, @<:@default=no@:>@]),
    [], [enable_vulkan="no"])

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=no@:>@]),
    [], [enable_capi="no"])

AC_ARG_ENABLE([render],
    AS_HELP_STRING([--enable-render],
                   [enable texture render with OpenSceneGraph library, @<:@default=no@:>@]),
    [], [enable_render="no"])

AC_ARG_ENABLE([dnn],
    AS_HELP_STRING([--enable-dnn],
                   [enable dnn with OpenVino library, @<:@default=no@:>@]),
    [], [enable_dnn="no"])

# 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

# check gl
HAVE_GLES=0
if test "$enable_gles" = "yes"; then
    PKG_CHECK_MODULES(LIBGL, [gl], [HAVE_GLES=1], [HAVE_GLES=0])
fi

# check vulkan
HAVE_VULKAN=0
if test "$enable_vulkan" = "yes"; then
    PKG_CHECK_MODULES(LIBVULKAN, [vulkan], [HAVE_VULKAN=1], [HAVE_VULKAN=0])
fi

# check open sence graph
ENABLE_RENDER=0
if test "$enable_render" = "yes"; then
    PKG_CHECK_MODULES(
        [LIBOSG],
        [openscenegraph-osg >= $XCAM_REQUIRE_OSG_MIN],
        [HAVE_OSG=1],
        [HAVE_OSG=0])

    XCAM_OSG_VERSION=`$PKG_CONFIG --modversion openscenegraph-osg`
    AC_MSG_NOTICE(OpenSceneGraph version: $XCAM_OSG_VERSION)

    if test "$HAVE_OSG" -eq 1; then
        ENABLE_RENDER=1
    else
        AC_MSG_WARN(OpenSceneGraph required version: >= $XCAM_REQUIRE_OSG_MIN)
        ENABLE_RENDER=0
    fi
fi

ENABLE_DNN=0
if test "$enable_dnn" = "yes"; then
    if test -z $OPENVINO_IE_INC_PATH; then
        AC_MSG_WARN(Please export OPENVINO_IE_INC_PATH environment variables)
        AC_MSG_ERROR(OpenVino inc path has not been set ... disable DNN module!)
    fi
    if test -z $OPENVINO_IE_LIBS_PATH; then
        AC_MSG_WARN(Please export OPENVINO_IE_LIBS_PATH environment variables)
        AC_MSG_ERROR(OpenVino library path has not been set ... disable DNN module!)
    fi
    ENABLE_DNN=1
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 version number
HAVE_OPENCV=0
if test "$enable_opencv" = "yes"; then
    PKG_CHECK_MODULES(
        [OPENCV],
        [opencv >= $XCAM_REQUIRE_CV_MIN opencv <= $XCAM_REQUIRE_CV_MAX],
        [HAVE_OPENCV=1],
        [HAVE_OPENCV=0])

    XCAM_CV_VERSION=`$PKG_CONFIG --modversion opencv`
    AC_MSG_NOTICE(OpenCV version: $XCAM_CV_VERSION)

    if test "$HAVE_OPENCV" -eq 0; then
        AC_MSG_ERROR(OpenCV required version: >= $XCAM_REQUIRE_CV_MIN && <= $XCAM_REQUIRE_CV_MAX)
    fi
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" && test "$HAVE_LIBCL" -eq 1; then
    AC_MSG_NOTICE(enable capi && have libcl: $HAVE_LIBCL)
    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 -Wall -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)

# 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_GLES], $HAVE_GLES,
    [have gles])
AM_CONDITIONAL([HAVE_GLES], [test "$HAVE_GLES" -eq 1])

AC_DEFINE_UNQUOTED([HAVE_VULKAN], $HAVE_VULKAN,
    [have vulkan])
AM_CONDITIONAL([HAVE_VULKAN], [test "$HAVE_VULKAN" -eq 1])

AC_DEFINE_UNQUOTED([ENABLE_RENDER], $ENABLE_RENDER,
    [enable texture render])
AM_CONDITIONAL([ENABLE_RENDER], [test "$ENABLE_RENDER" -eq 1])

AC_DEFINE_UNQUOTED([ENABLE_DNN], $ENABLE_DNN,
    [enable dnn])
AM_CONDITIONAL([ENABLE_DNN], [test "$ENABLE_DNN" -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
                 shaders/Makefile
                 shaders/clx/Makefile
                 shaders/glslx/Makefile
                 xcore/Makefile
                 modules/Makefile
                 modules/ocv/Makefile
                 modules/soft/Makefile
                 modules/isp/Makefile
                 modules/ocl/Makefile
                 modules/gles/Makefile
                 modules/vulkan/Makefile
                 modules/render/Makefile
                 modules/dnn/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_GLES" -eq 1; then have_gles="yes"; else  have_gles="no"; fi
if test "$HAVE_VULKAN" -eq 1; then have_vulkan="yes"; else  have_vulkan="no"; fi
if test "$HAVE_OPENCV" -eq 1; then have_opencv="yes"; else have_opencv="no"; fi
if test "$ENABLE_RENDER" -eq 1; then enable_render="yes"; else enable_render="no"; fi
if test "$ENABLE_DNN" -eq 1; then enable_dnn="yes"; else enable_dnn="no"; fi
if test "$ENABLE_DVS" -eq 1; then enable_dvs="yes"; else enable_dvs="no"; fi
if test "$ENABLE_CAPI" -eq 1; then enable_capi="yes"; else enable_capi="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
     enable OpenCV              : $have_opencv
     enable OpenCL              : $have_libcl
     enable GLES                : $have_gles
     enable Vulkan              : $have_vulkan
     enable OSG render          : $enable_render
     enable DNN                 : $enable_dnn
     enable 3a lib              : $enable_3alib
     enable smart analysis lib  : $enable_smartlib
     enable dvs                 : $enable_dvs
     enable libxcam-capi lib    : $enable_capi
"
