# E.S.O. - VLT project 
# $Id: configure.in,v 1.1.1.1 2009/03/31 14:11:52 cguirao Exp $
#
# This file is used with GNU autoconf to generate a configure script
#
# usage: % autoconf  # only if configure.in changed
#        % configure
#        % make
#        % make install
#
# who             when      what
# --------------  --------  ---------------------------------------------
# Allan Brighton  15/12/05  Rewrote using TCL TEA standard
# -----------------------------------------------------------------------

#-----------------------------------------------------------------------
# Sample configure.in for Tcl Extensions.  The only places you should
# need to modify this file are marked by the string __CHANGE__
#-----------------------------------------------------------------------

#-----------------------------------------------------------------------
# __CHANGE__
# Set your package name and version numbers here.
#
# This initializes the environment with PACKAGE_NAME and PACKAGE_VERSION
# set as provided.  These will also be added as -D defs in your Makefile
# so you can encode the package version directly into the source files.
#-----------------------------------------------------------------------

AC_INIT([tclutil], [2.1.0])

#--------------------------------------------------------------------
# Do application specific checks (see aclocal.m4)
#--------------------------------------------------------------------
TCLUTIL_CONFIG

#--------------------------------------------------------------------
# Call TEA_INIT as the first TEA_ macro to set up initial vars.
# This will define a ${TEA_PLATFORM} variable == "unix" or "windows"
# as well as PKG_LIB_FILE and PKG_STUB_LIB_FILE.
#--------------------------------------------------------------------

TEA_INIT([3.4])

#--------------------------------------------------------------------
# Load the tclConfig.sh file
#--------------------------------------------------------------------

TEA_PATH_TCLCONFIG
TEA_LOAD_TCLCONFIG

#--------------------------------------------------------------------
# Load the tkConfig.sh file if necessary (Tk extension)
#--------------------------------------------------------------------

TEA_PATH_TKCONFIG
TEA_LOAD_TKCONFIG

#-----------------------------------------------------------------------
# Handle the --prefix=... option by defaulting to what Tcl gave.
# Must be called after TEA_LOAD_TCLCONFIG and before TEA_SETUP_COMPILER.
#-----------------------------------------------------------------------

TEA_PREFIX

#-----------------------------------------------------------------------
# Standard compiler checks.
# This sets up CC by using the CC env var, or looks for gcc otherwise.
# This also calls AC_PROG_CC, AC_PROG_INSTALL and a few others to create
# the basic setup necessary to compile executables.
#-----------------------------------------------------------------------

TEA_SETUP_COMPILER

#-----------------------------------------------------------------------
# __CHANGE__
# Specify the C source files to compile in TEA_ADD_SOURCES,
# public headers that need to be installed in TEA_ADD_HEADERS,
# stub library C source files to compile in TEA_ADD_STUB_SOURCES,
# and runtime Tcl library files in TEA_ADD_TCL_SOURCES.
# This defines PKG(_STUB)_SOURCES, PKG(_STUB)_OBJECTS, PKG_HEADERS
# and PKG_TCL_SOURCES.
#-----------------------------------------------------------------------

changequote(<<, >>)
csources=`cd $srcdir; echo generic/*.[Cc]`
changequote([, ])
cheaders=`cd $srcdir; echo generic/*.h`
cincludes="-I. -I$srcdir/bitmaps -I$srcdir/generic"
tclsources=`cd $srcdir; echo library/*.tcl`

TEA_ADD_SOURCES([${csources}])
TEA_ADD_HEADERS([${cheaders}])
TEA_ADD_INCLUDES([$cincludes])
dnl TEA_ADD_LIBS([${BLT_LIB_SPEC}])
TEA_ADD_CFLAGS([])
TEA_ADD_STUB_SOURCES([])
TEA_ADD_TCL_SOURCES([${tclsources}])

#--------------------------------------------------------------------
# __CHANGE__
# A few miscellaneous platform-specific items:
#
# Define a special symbol for Windows (BUILD_sample in this case) so
# that we create the export library with the dll.
#
# Windows creates a few extra files that need to be cleaned up.
# You can add more files to clean if your extension creates any extra
# files.
#
# TEA_ADD_* any platform specific compiler/build info here.
#--------------------------------------------------------------------

if test "${TEA_PLATFORM}" = "windows" ; then
    AC_DEFINE(BUILD_tclutil, 1, [Build windows export dll])
    CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc*.pch"
    #TEA_ADD_SOURCES([win/winFile.c])
    #TEA_ADD_INCLUDES([-I\"$(${CYGPATH} ${srcdir}/win)\"])
else
    CLEANFILES=""
    #TEA_ADD_SOURCES([unix/unixFile.c])
    #TEA_ADD_LIBS([-lsuperfly])
fi
AC_SUBST(CLEANFILES)

#--------------------------------------------------------------------
# __CHANGE__
# Choose which headers you need.  Extension authors should try very
# hard to only rely on the Tcl public header files.  Internal headers
# contain private data structures and are subject to change without
# notice.
# This MUST be called after TEA_LOAD_TCLCONFIG / TEA_LOAD_TKCONFIG
#--------------------------------------------------------------------

TEA_PUBLIC_TCL_HEADERS
#TEA_PRIVATE_TCL_HEADERS

TEA_PUBLIC_TK_HEADERS
#TEA_PRIVATE_TK_HEADERS
TEA_PATH_X

#--------------------------------------------------------------------
# Check whether --enable-threads or --disable-threads was given.
# This auto-enables if Tcl was compiled threaded.
#--------------------------------------------------------------------

TEA_ENABLE_THREADS

#--------------------------------------------------------------------
# The statement below defines a collection of symbols related to
# building as a shared library instead of a static library.
#--------------------------------------------------------------------

TEA_ENABLE_SHARED

#--------------------------------------------------------------------
# This macro figures out what flags to use with the compiler/linker
# when building shared/static debug/optimized objects.  This information
# can be taken from the tclConfig.sh file, but this figures it all out.
#--------------------------------------------------------------------

TEA_CONFIG_CFLAGS

#-----------------------------------------------------------------------
# Find -lBLT library (needs variable set indirectly by TEA_CONFIG_CFLAGS: SHLIB_SUFFIX)
TCLUTIL_PATH_BLT
TEA_ADD_LIBS([${BLT_LIB_SPEC}])
#-----------------------------------------------------------------------

#--------------------------------------------------------------------
# Set the default compiler switches based on the --enable-symbols option.
#--------------------------------------------------------------------

TEA_ENABLE_SYMBOLS

#--------------------------------------------------------------------
# Everyone should be linking against the Tcl stub library.  If you
# can't for some reason, remove this definition.  If you aren't using
# stubs, you also need to modify the SHLIB_LD_LIBS setting below to
# link against the non-stubbed Tcl library.  Add Tk too if necessary.
#--------------------------------------------------------------------

# allan: can't use stubs, due to BLT dependency
#AC_DEFINE(USE_TCL_STUBS, 1, [Use Tcl stubs])
#AC_DEFINE(USE_TK_STUBS, 1, [Use Tk stubs])

#--------------------------------------------------------------------
# This macro generates a line to use when building a library.  It
# depends on values set by the TEA_ENABLE_SHARED, TEA_ENABLE_SYMBOLS,
# and TEA_LOAD_TCLCONFIG macros above.
#--------------------------------------------------------------------

TEA_MAKE_LIB

#--------------------------------------------------------------------
# Determine the name of the tclsh and/or wish executables in the
# Tcl and Tk build directories or the location they were installed
# into. These paths are used to support running test cases only,
# the Makefile should not be making use of these paths to generate
# a pkgIndex.tcl file or anything else at extension build time.
#--------------------------------------------------------------------

TEA_PROG_TCLSH
TEA_PROG_WISH

#--------------------------------------------------------------------
# These are for tclutilConfig.sh
#--------------------------------------------------------------------

tclutil_LIB_FILE=${PKG_LIB_FILE}

eval pkglibdir="${libdir}"
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
    eval tclutil_LIB_FLAG="-ltclutil${PACKAGE_VERSION}"
else
    eval tclutil_LIB_FLAG="-ltclutil`echo ${PACKAGE_VERSION} | tr -d .`"
fi
tclutil_BUILD_DIR="`pwd`"
tclutil_BUILD_LIB_SPEC="-L`pwd` ${tclutil_LIB_FLAG}"
tclutil_LIB_SPEC="-L${pkglibdir} ${tclutil_LIB_FLAG}"

for i in ${PKG_OBJECTS} ; do 
    tclutil_PKG_OBJECTS="$tclutil_PKG_OBJECTS ../tclutil/$i"
done

AC_SUBST(tclutil_LIB_FILE)
AC_SUBST(tclutil_BUILD_DIR)
AC_SUBST(tclutil_BUILD_LIB_SPEC)
AC_SUBST(tclutil_LIB_SPEC)
AC_SUBST(tclutil_PKG_OBJECTS)

# tclutil_SRC_DIR must be a fully qualified path
eval tclutil_SRC_DIR="$srcdir"
tclutil_SRC_DIR=`cd "${tclutil_SRC_DIR}"; pwd`
AC_SUBST(tclutil_SRC_DIR)

#--------------------------------------------------------------------
# Finally, substitute all of the various values into the Makefile.
# You may alternatively have a special pkgIndex.tcl.in or other files
# which require substituting th AC variables in.  Include these here.
#--------------------------------------------------------------------
AC_OUTPUT([Makefile pkgIndex.tcl tclutilConfig.sh tclutil.sh tclutil_version.tcl])
chmod ugo+x tclutil.sh


