dnl =======================================================
dnl FILE: ./admin/configure.in.min
dnl =======================================================

dnl    This file is part of the KDE libraries/packages
dnl    Copyright (C) 2001 Stephan Kulow (coolo@kde.org)
 
dnl    This file is free software; you can redistribute it and/or
dnl    modify it under the terms of the GNU Library General Public
dnl    License as published by the Free Software Foundation; either
dnl    version 2 of the License, or (at your option) any later version.
 
dnl    This library is distributed in the hope that it will be useful,
dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
dnl    Library General Public License for more details.
 
dnl    You should have received a copy of the GNU Library General Public License
dnl    along with this library; see the file COPYING.LIB.  If not, write to
dnl    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
dnl    Boston, MA 02110-1301, USA.

# Original Author was Kalle@kde.org
# I lifted it in some mater. (Stephan Kulow)
# I used much code from Janos Farkas

dnl Process this file with autoconf to produce a configure script.

AC_INIT(acinclude.m4) dnl a source file from your sub dir

dnl This is so we can use kde-common
AC_CONFIG_AUX_DIR(admin)

dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
unset CDPATH

dnl Checking host/target/build systems, for make, install etc.
AC_CANONICAL_SYSTEM 
dnl Perform program name transformation
AC_ARG_PROGRAM

dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(ktechlab, 0.3) dnl searches for some needed programs

KDE_SET_PREFIX

dnl generate the config header
AM_CONFIG_HEADER(config.h) dnl at the distribution this done

dnl Checks for programs.
AC_CHECK_COMPILERS
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
KDE_PROG_LIBTOOL

dnl for NLS support. Call them in this order!
dnl WITH_NLS is for the po files
AM_KDE_WITH_NLS

KDE_USE_QT(3.2.0)
AC_PATH_KDE
dnl =======================================================
dnl FILE: configure.in.in
dnl =======================================================

#MIN_CONFIG(3.2.0)

dnl PACKAGE set before
AC_C_BIGENDIAN
AC_CHECK_KDEMAXPATHLEN


################################
## BEGIN Check for gpsim 0.21 ##
################################

AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ktechlab_save_CXXFLAGS="$CXXFLAGS"

AC_ARG_WITH(glib12, [  --with-glib12           force using glib 1.2.x [default=no]])
if test "x$with_glib12" != "xyes" ; then
	glib_cflags=`pkg-config --cflags glib-2.0`
else
	glib_cflags=`glib-config --cflags`
fi
AC_SUBST(glib_cflags)

CXXFLAGS="$glib_cflags"

AC_MSG_CHECKING([for gpsim 0.21.4 availability])
AC_TRY_COMPILE(
	[
#include <gpsim/interface.h>
#include <gpsim/gpsim_interface.h>
#include <gpsim/breakpoints.h>
#include <gpsim/gpsim_time.h>
void func() { (void)cycles; (void)initialize_gpsim_core(); (void)load_symbol_file(0,0); }
	],
	[],
	AC_MSG_RESULT( yes )
	have_gpsim_0_21_4=yes,
	AC_MSG_RESULT( no )
)

AC_MSG_CHECKING([for gpsim 0.21.11 availability])
AC_TRY_COMPILE(
	[
#include <gpsim/interface.h>
#include <gpsim/gpsim_interface.h>
#include <gpsim/breakpoints.h>
#include <gpsim/gpsim_time.h>
#include <gpsim/symbol.h>
#include <gpsim/program_files.h>
void func() { (void)cycles; (void)initialize_gpsim_core(); }
	],
	[],
	AC_MSG_RESULT( yes )
	have_gpsim_0_21_11=yes,
	AC_MSG_RESULT( no )
)

AC_MSG_CHECKING([for gpsim 0.21.12 availability])
AC_TRY_COMPILE(
	[
#include <gpsim/ValueCollections.h>
	],
	[],
	AC_MSG_RESULT( yes )
	have_gpsim_0_21_12=yes,
	AC_MSG_RESULT( no )
)

AC_MSG_CHECKING([for gpsim 0.27.0 availability])
AC_TRY_COMPILE(
	[
#include <gpsim/pic-processor.h>
void func() { pic_processor *Processor; sizeof(Processor->Wreg); }
	],
	[],
	AC_MSG_RESULT( yes )
	have_gpsim_0_27_0=yes,
	AC_MSG_RESULT( no )
)

CXXFLAGS="$ktechlab_save_CXXFLAGS"
AC_LANG_RESTORE

##############################
## END Check for gpsim 0.21 ##
##############################



################################
## BEGIN DO_NOT_COMPILE CHECK ##
################################

if test x$have_gpsim_0_21_12 == xyes; then
	AC_DEFINE([GPSIM_0_21_12],[],[Gpsim 0.21.12 was found])
	CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
else
	if test x$have_gpsim_0_21_4 != xyes; then
		if test x$have_gpsim_0_21_11 != xyes; then
			AC_DEFINE([NO_GPSIM],[],[Gpsim was not found])
			LIB_GPSIM=""
		else
			AC_DEFINE([GPSIM_0_21_11],[],[Gpsim 0.21.11 was found])
		fi
	else
		AC_DEFINE([GPSIM_0_21_4],[],[Gpsim 0.21.4 was found])
	fi
fi

if test x$have_gpsim_0_21_4 == xyes || test x$have_gpsim_0_21_11 == xyes || test x$have_gpsim_0_21_12 == xyes; then
	wi_cv_lib_readline=no
	ac_save_LIBS="$LIBS"
	# Note: $LIBCURSES is permitted to be empty.
	for LIBREADLINE in "-lreadline" "-lreadline $LIBCURSES" "-lreadline -ltermcap" "-lreadline -lncurses" "-lreadline -lcurses"
	do
		LIBS="$ac_save_LIBS $LIBREADLINE"
		LIB_GPSIM="$LIBREADLINE -lgpsim -lgpsim_eXdbm -lgpsimcli -lgpsimgui"
		AC_TRY_RUN([
			/* program */
			#include <stdio.h>
			#include <stdlib.h>
		 
			main(int argc, char **argv)
			{
				/* Note:  don't actually call readline, since it may block;
				 * We just want to see if it (dynamic) linked in okay.
				 */
				if (argc == 0)	/* never true */
					readline(0);
				exit(0);
			}
		],[
		# action if true
			wi_cv_lib_readline=yes
		],[
			# action if false
			wi_cv_lib_readline=no
	],[
		# action if cross compiling
		wi_cv_lib_readline=no
	])
	
		if test "$wi_cv_lib_readline" = yes ; then break ; fi
	done

	LIBS="$ac_save_LIBS"
fi

if test x$have_gpsim_0_27_0 == xyes; then
	AC_DEFINE([GPSIM_0_27_0],[],[Gpsim 0.27.0 was found])
fi

AC_SUBST(LIB_GPSIM)

##############################
## END DO_NOT_COMPILE CHECK ##
##############################

KDE_CREATE_SUBDIRSLIST
AC_CONFIG_FILES([ Makefile ])
AC_CONFIG_FILES([ doc/Makefile ])
AC_CONFIG_FILES([ doc/en/Makefile ])
AC_CONFIG_FILES([ icons/Makefile ])
AC_CONFIG_FILES([ icons/pics/Makefile ])
AC_CONFIG_FILES([ microbe/Makefile ])
AC_CONFIG_FILES([ po/Makefile ])
AC_CONFIG_FILES([ src/Makefile ])
AC_CONFIG_FILES([ src/core/Makefile ])
AC_CONFIG_FILES([ src/drawparts/Makefile ])
AC_CONFIG_FILES([ src/electronics/Makefile ])
AC_CONFIG_FILES([ src/electronics/components/Makefile ])
AC_CONFIG_FILES([ src/electronics/simulation/Makefile ])
AC_CONFIG_FILES([ src/flowparts/Makefile ])
AC_CONFIG_FILES([ src/gui/Makefile ])
AC_CONFIG_FILES([ src/languages/Makefile ])
AC_CONFIG_FILES([ src/mechanics/Makefile ])
AC_CONFIG_FILES([ src/micro/Makefile ])
AC_OUTPUT
if test x$have_gpsim_0_21_4 != xyes; then
	if test x$have_gpsim_0_21_11 != xyes; then
		echo ""
        echo "################################################################################"
        echo "# WARNING: gpsim support will not be compiled as gpsim >= 0.21.4 was not found #"
        echo "################################################################################"
    fi
fi

if test "$all_tests" = "bad"; then
  if test ! "$cache_file" = "/dev/null"; then
    echo ""    
    echo "Please remove the file $cache_file after changing your setup"
    echo "so that configure will find the changes next time."
    echo ""
  fi
else
  echo ""
  echo "Good - your configure finished. Start make now"
  echo ""
fi
