#MIN_CONFIG(3.3)

KDE_ENABLE_HIDDEN_VISIBILITY

AM_INIT_AUTOMAKE(ksquirrel,0.8.0)

sq_kipi="yes"
AC_ARG_ENABLE(kipi,
              [AS_HELP_STRING([--disable-kipi], [don't search for KIPI plugins [default=no]])],
              [     case "${enableval}" in
                       yes) sq_kipi="yes" ;;
                       no)  sq_kipi="no" ;;
                       *)   AC_MSG_ERROR([bad value ${enableval} for this parameter]) ;;
                    esac]
             )

sq_kexif="yes"
AC_ARG_ENABLE(kexif,
              [AS_HELP_STRING([--disable-kexif], [don't search for KEXIF [default=no]])],
              [     case "${enableval}" in
                       yes) sq_kexif="yes" ;;
                       no)  sq_kexif="no" ;;
                       *)   AC_MSG_ERROR([bad value ${enableval} for this parameter]) ;;
                    esac]
             )

have_kpart="yes"
AC_ARG_ENABLE(kpart,
              [AS_HELP_STRING([--disable-kpart], [don't compile Konqueror integration (KPart object) [default=no]])],
              [     case "${enableval}" in
                       yes) ;;
                       no)  have_kpart="no" ;;
                       *)   AC_MSG_ERROR([bad value ${enableval} for this parameter]) ;;
                    esac]
             )

AM_CONDITIONAL(SQ_HAVE_KPART,  test x$have_kpart  = xyes)

have_klconf="yes"
AC_ARG_ENABLE(ksquirrel-libs-configurator,
              [AS_HELP_STRING([--disable-ksquirrel-libs-configurator], [don't compile ksquirrel-libs configurator [default=no]])],
              [     case "${enableval}" in
                       yes) ;;
                       no)  have_klconf="no" ;;
                       *)   AC_MSG_ERROR([bad value ${enableval} for this parameter]) ;;
                    esac]
             )

AM_CONDITIONAL(SQ_HAVE_KLCONF,  test x$have_klconf  = xyes)

# utime.h
AC_CHECK_HEADER([utime.h], AC_DEFINE([HAVE_UTIME_H], [], [utime.h support]), [])

KDE_PKG_CHECK_MODULES([ksquirrellibs], ksquirrellibs, [

        __cppflags=$CPPFLAGS

        CXXFLAGS="$ksquirrellibs_CFLAGS $CXXFLAGS"
        CPPFLAGS="$ksquirrellibs_CFLAGS $CPPFLAGS"

        AC_SUBST(ksquirrellibs_LIBS)

        AC_LANG_SAVE
        AC_LANG_CPLUSPLUS

        AC_CHECK_HEADERS([ksquirrel-libs/fileio.h], [],
                            [AC_MSG_ERROR([Ksquirrel-libs development files are not installed. Please install them first.])])

        # restore language & CPPFLAGS
        CPPFLAGS=${__cppflags}
        AC_LANG_RESTORE
                            ],
                [AC_MSG_ERROR([Ksquirrel-libs development file (.pc) is not installed. Please install ksquirrel-libs first.])]
)

KDE_CHECK_HEADER(konq_operations.h, [], AC_MSG_ERROR("Header file konq_operations.h is missing. Please install libkonq-devel package."))
KDE_CHECK_HEADER(kregexpeditorinterface.h, [AC_DEFINE([SQ_HAVE_KREGEXP], [], [kregexpeditorinterface.h support])], [])

# Checks for OpenGL.
KDE_CHECK_HEADER([GL/gl.h], [], AC_MSG_ERROR("ksquirrel needs OpenGL (GL/gl.h, ...) and GLU (GL/glu.h) headers to be installed."))

AC_CHECK_LIB([GL], [glBegin], [LDFLAGS="-lGL $LDFLAGS"], [ogl="no"])

if test "x$ogl" = "xno"; then
    AC_MSG_NOTICE([Maybe libGL requires libpthread...])
    unset ac_cv_lib_GL_glBegin
    AC_CHECK_LIB([GL], [glBegin], [LDFLAGS="-lpthread -lGL $LDFLAGS"], AC_MSG_ERROR([Cannot use -lGL]), [-lpthread])
fi

AM_PROG_AS

# MMX test duped from tdelibs/tdefx - it should be probably moved to admin/
dnl -----------------------------------------------------
dnl IA32 checks
dnl -----------------------------------------------------

ksquirrel_asm_defs=
case $host_cpu in
  i*86 )
  AC_MSG_CHECKING(for assembler support for IA32 extensions)

  dnl MMX check
  AC_TRY_COMPILE(, [ __asm__("pxor %mm0, %mm0") ],
  [
    echo $ECHO_N "MMX yes$ECHO_C"
    AC_DEFINE_UNQUOTED(HAVE_X86_MMX, 1, [Define to 1 if the assembler supports MMX instructions.])
    ksquirrel_asm_defs="$ksquirrel_asm_defs -DHAVE_X86_MMX"
  ], [ echo $ECHO_N "MMX no$ECHO_C" ])

  dnl SSE check
  AC_TRY_COMPILE(,[ __asm__("xorps %xmm0, %xmm0") ],
  [
    echo $ECHO_N ", SSE yes$ECHO_C"
    AC_DEFINE_UNQUOTED(HAVE_X86_SSE, 1, [Define to 1 if the assembler supports SSE instructions.])
    ksquirrel_asm_defs="$ksquirrel_asm_defs -DHAVE_X86_SSE"
  ], [ echo $ECHO_N ", SSE no$ECHO_C" ])

  dnl SSE2 check
  AC_TRY_COMPILE(, [ __asm__("xorpd %xmm0, %xmm0") ],
  [
    echo $ECHO_N ", SSE2 yes$ECHO_C"
    AC_DEFINE_UNQUOTED(HAVE_X86_SSE2, 1, [Define to 1 if the assembler supports SSE2 instructions.])
    ksquirrel_asm_defs="$ksquirrel_asm_defs -DHAVE_X86_SSE2"
  ], [ echo $ECHO_N ", SSE2 no$ECHO_C" ])

  dnl 3DNOW check
  AC_TRY_COMPILE(, [ __asm__("femms") ],
  [
    echo $ECHO_N ", 3DNOW yes$ECHO_C"
    AC_DEFINE_UNQUOTED(HAVE_X86_3DNOW, 1, [Define to 1 if the assembler supports 3DNOW instructions.])
    ksquirrel_asm_defs="$ksquirrel_asm_defs -DHAVE_X86_3DNOW"
  ], [ echo $ECHO_N ", 3DNOW no$ECHO_C" ])
  echo
  ;;
  powerpc )
  AC_MSG_CHECKING(for assembler support for AltiVec instructions)
  dnl AltiVec check
  AC_TRY_COMPILE(, [ __asm__("mtspr 256, %0\n\t" "vand %%v0, %%v0, %%v0" : : "r"(-1) ) ],
  [
    echo $ECHO_N " yes$ECHO_C"
    AC_DEFINE_UNQUOTED(HAVE_PPC_ALTIVEC, 1, [Define to 1 if the assembler supports AltiVec instructions.])
    ksquirrel_asm_defs="$ksquirrel_asm_defs -DHAVE_PPC_ALTIVEC"
  ], [ echo $ECHO_N ", AltiVec no$ECHO_C" ])
  echo
  ;;
esac

KSQUIRREL_ASM_DEFS="$ksquirrel_asm_defs"
AC_SUBST(KSQUIRREL_ASM_DEFS)

#
# KIPI
#
have_kipi=no
if test x$sq_kipi = xyes; then
KDE_PKG_CHECK_MODULES([libkipi], libkipi, [
        _cxxflags=$CXXFLAGS
        _ldflags=$LDFLAGS
                                
        CXXFLAGS="$libkipi_CFLAGS $CXXFLAGS"
        LDFLAGS="$LDFLAGS $libkipi_LIBS"

        KDE_CHECK_HEADER(libkipi/interface.h, have_kipi=yes, have_kipi=no)
          if test "$have_kipi" = "yes"; then
        	AC_DEFINE(SQ_HAVE_KIPI, [], [If we have libkipi installed])
          else
            AC_WARN([Can't find KIPI headers, KSquirrel won't be compiled with KIPI support])
          fi

            CXXFLAGS=$_cxxflags
            LDFLAGS=$_ldflags
    ],
        [AC_WARN([KIPI development file (.pc) was not found. KIPI support will be disabled.])]
)
fi

#
# KEXIF
#
have_kexif=no
if test x$sq_kexif = xyes; then
KDE_PKG_CHECK_MODULES([libkexif], libkexif, [
        _cxxflags=$CXXFLAGS
        _ldflags=$LDFLAGS

        CXXFLAGS="$libkexif_CFLAGS $CXXFLAGS"
        LDFLAGS="$LDFLAGS $libkexif_LIBS"

        KDE_CHECK_HEADER(libkexif/kexifdata.h, have_kexif=yes, have_kexif=no)
          if test "$have_kexif" = "yes"; then
                AC_DEFINE(SQ_HAVE_KEXIF, [], [If we have libkexif installed])
          else
            AC_WARN([Can't find KEXIF headers, KSquirrel won't be compiled with KEXIF support])
          fi

            CXXFLAGS=$_cxxflags
            LDFLAGS=$_ldflags
    ],
        [AC_WARN([KEXIF development file (.pc) was not found. KEXIF support will be disabled.])]
)
fi

AM_CONDITIONAL(SQ_HAVE_KIPI,  test x$have_kipi  = xyes)
AM_CONDITIONAL(SQ_HAVE_KEXIF, test x$have_kexif = xyes)