aboutsummaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorlecoanet2003-04-16 10:30:25 +0000
committerlecoanet2003-04-16 10:30:25 +0000
commit4deef84e6a3c5ba71e3ec2d7429fc347edbbc098 (patch)
tree4bc5bfa6f6ad34b1cc99aece84fb8185b147fcc5 /configure.in
parent2e434e0a9aa6ca4f249b599191264f76943dd013 (diff)
downloadtkzinc-4deef84e6a3c5ba71e3ec2d7429fc347edbbc098.zip
tkzinc-4deef84e6a3c5ba71e3ec2d7429fc347edbbc098.tar.gz
tkzinc-4deef84e6a3c5ba71e3ec2d7429fc347edbbc098.tar.bz2
tkzinc-4deef84e6a3c5ba71e3ec2d7429fc347edbbc098.tar.xz
Update for the new make tool chain
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in325
1 files changed, 233 insertions, 92 deletions
diff --git a/configure.in b/configure.in
index 1e046f5..c08e040 100644
--- a/configure.in
+++ b/configure.in
@@ -1,99 +1,240 @@
+>dnl
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(tkZinc.c)
-
-dnl builtin([include],acplcaux.m4)
-#
-# This one is for testing purposes
+dnl autoconf 2.13 should work fine. However autoconf >= 2.53 and
+dnl perhaps versions in between (2.50 and 2.52) are not directly usuable.
+dnl
+dnl
+dnl This configure.in is derived from the Sample TEA template which is:
+dnl
+dnl Copyright (c) 1999 Scriptics Corporation.
+dnl Copyright (c) 2002 ActiveState SRL.
+dnl
+dnl
+dnl $Id$
+
+#-----------------------------------------------------------------------
+# Check the source path of the package
+#-----------------------------------------------------------------------
+AC_INIT
+
+#-----------------------------------------------------------------------
+# Setup the CONFIGDIR to the path of the directory containing the
+# configuration files
+#-----------------------------------------------------------------------
+AC_CONFIG_AUX_DIR(tclconfig)
+CONFIGDIR=${srcdir}/tclconfig
+AC_SUBST(CONFIGDIR)
+
+#-----------------------------------------------------------------------
+# Define the PACKAGE variable
+#--------------------------------------------------------------------
+PACKAGE=Tkzinc
+
+#--------------------------------------------------------------------
+# Call TEA_INIT as the first TEA_ macro to set up initial vars.
+# This will define a ${TEA_PLATFORM} variable == "unix" or "windows".
#
-dnl ac_compile='echo ${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS; ${CC-cc} $CFLAGS $LDFLAGS conftest.${ac_ext} -o conftest $LIBS'
-dnl ac_link='echo ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS; ${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS'
-
-AC_CONFIG_HEADER(config.h)
-
-AC_PROG_CC
-AC_CHECK_PROGS(PERL, perl, error)
-changequote()
-INSTALLARCHLIB=`perl -MConfig -e 'print $Config{installarchlib}'`
-TKLIB=`perl -MTk -e 'print $Tk::library'`
-INSTALLPRIVLIB=`perl -MConfig -e 'print $Config{installprivlib}'`
-INSTALLMAN1DIR=`perl -MConfig -e 'print $Config{installman1dir}'`
-INSTALLMAN3DIR=`perl -MConfig -e 'print $Config{installman3dir}'`
-changequote([, ])
-
-AC_SUBST(INSTALLARCHLIB)
-AC_SUBST(TKLIB)
-AC_SUBST(INSTALLPRIVLIB)
-AC_SUBST(INSTALLMAN1DIR)
-AC_SUBST(INSTALLMAN3DIR)
-
-
-dnl for shared library stuff
-# extract version information
-changequote()
-ZINC_VER=`sed -n -e 's/#define ZINCVER.*\([0-9]\)$/\1/p' patchlvl.h`
-ZINC_MAJOR=`sed -n -e 's/#define ZINCREV.*\([0-9]\)$/\1/p' patchlvl.h`
-ZINC_VERSION=`sed -n -e 's/#define ZINCVERSION.*\([0-9][a-z][0-9]\).*/\1/p' patchlvl.h`
-changequote([, ])
-AC_SUBST(ZINC_VER)
-AC_SUBST(ZINC_MAJOR)
-AC_SUBST(ZINC_VERSION)
-
-builtin([include],acaux.m4)
-AC_SYS_SHAREDLIB
-
-AC_PROG_INSTALL
-AC_PROG_CPP
-AC_PROG_RANLIB
-AC_ISC_POSIX
-AC_STDC_HEADERS
-AC_CHECK_HEADERS(values.h stddef.h stdarg.h limits.h strings.h string.h)
-AC_CHECK_HEADERS(unistd.h memory.h stdlib.h)
-AC_CHECK_HEADERS(sys/types.h sys/time.h sys/timeb.h sys/times.h)
-AC_CHECK_FUNCS(gettimeofday)
-
-
-AC_PATH_XTRA
+# Keep it here we will need ${TEA_PLATFORM} soon.
+#--------------------------------------------------------------------
+TEA_INIT
+#-----------------------------------------------------------------------
+# Define the VERSION variable
#
-# Add any user supplied library directories to the X flags
+# VERSION is constructed from MAJOR_VERSION, MINOR_VERSION and
+# PATCHLEVEL. The windows variant does not containt a dot.
+#-----------------------------------------------------------------------
+MAJOR_VERSION=3
+MINOR_VERSION=2
+PATCHLEVEL=90
+
+VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${PATCHLEVEL}
+
+AC_SUBST(VERSION)
+AC_SUBST(PACKAGE)
+AC_SUBST(Tkzinc_LIB_FILE)
+AC_SUBST(Tkzincstub_LIB_FILE)
+
+#--------------------------------------------------------------------
+# This define a preprocessor macro -DVERSION=3.2.6i to include
+# the package version in the sources.
+#--------------------------------------------------------------------
+eval AC_DEFINE_UNQUOTED(VERSION, "${VERSION}")
+
+#--------------------------------------------------------------------
+# Load the tclConfig.sh file
+#--------------------------------------------------------------------
+TEA_PATH_TCLCONFIG
+TEA_LOAD_TCLCONFIG
+
+#--------------------------------------------------------------------
+# Load the tkConfig.sh file
+#--------------------------------------------------------------------
+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
+AC_CYGWIN
+AC_MINGW32
+
+#--------------------------------------------------------------------
+# 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
#
-ac_setup_local_x_libs_msg="Add the correct path to LOCAL_X_LIBS,"
-ac_retry_msg="and run configure again."
-test -n "$LOCAL_X_LIBS" && LOCAL_X_LIBS="-L$LOCAL_X_LIBS"
-
+# Sorry but zinc needs the internal functionality provided by Tk
+# even if this is less convenient and secure.
+#--------------------------------------------------------------------
+TEA_PRIVATE_TCL_HEADERS
+TEA_PRIVATE_TK_HEADERS
+
+#--------------------------------------------------------------------
+# A few miscellaneous platform-specific items:
+#
+# Define the special symbol BUILD_Tkzinc for Windows so
+# that we create the export library with the dll.
#
-# We need to setup CFLAGS to suppress -g flags which will prevent the linker
-# from finding the libraries.
-# We need to setup LDFLAGS to add the libraries paths.
+# Windows creates a few extra files that need to be cleaned up.
#
-TMP_LDFLAGS=$LDFLAGS
-TMP_CFLAGS=$CFLAGS
-TMP_LIBS=$LIBS
-LDFLAGS="$LDFLAGS $X_LIBS $LOCAL_X_LIBS"
-CFLAGS=""
-LIBS="-lX11 $X_EXTRA_LIBS"
-this_is_not_ok=""
-XPM=""
-AC_CHECK_LIB(Xpm, main,
- [XPM="-lXpm"],
- [echo "-lXpm not found,"
- echo $ac_setup_local_x_libs_msg
- echo $ac_retry_msg
- this_is_not_ok="1"])
-TMP_CPPFLAGS=$CPPFLAGS
-CPPFLAGS="$CPPFLAGS -I $x_includes"
-AC_CHECK_HEADERS(X11/xpm.h)
-CPPFLAGS=$TMP_CPPFLAGS
-
-LIBS="-lXext -lX11 $X_EXTRA_LIBS"
-
-AC_CONST
-AC_MINUS_C_MINUS_O
-
-AC_SUBST(XPM)
-AC_SUBST(XMU)
-AC_SUBST(LOCAL_X_LIBS)
-AC_SUBST(CFLAGS)
-AC_SUBST(LDFLAGS)
-
-AC_OUTPUT(Makefile)
+# Define any extra compiler flags in the PACKAGE_CFLAGS variable.
+# These will be appended to the current set of compiler flags for
+# your system.
+#--------------------------------------------------------------------
+if test "${TEA_PLATFORM}" = "windows" ; then
+ AC_DEFINE(BUILD_Tkzinc)
+ CLEANFILES="pkgIndex.tcl *.lib *.dll *.exp *.ilk *.pdb vc*.pch"
+ EXTRA_SOURCES='$(WIN_SOURCES)'
+else
+ CLEANFILES="pkgIndex.tcl"
+ EXTRA_SOURCES='$(UNIX_SOURCES)'
+fi
+CLEANFILES="${CLEANFILES} doc/*.dvi doc/*.aux doc/*.idx doc/*.ilg doc/*.ind"
+CLEANFILES="${CLEANFILES} doc/*.lof doc/*.log doc/*.out doc/*.toc doc/*.tpt"
+CLEANFILES="${CLEANFILES} doc/refman doc/refman.pdf"
+CLEANFILES="${CLEANFILES} Perl/Zinc.o Perl/Zinc.c Perl/Zinc.bs Perl/blib"
+CLEANFILES="${CLEANFILES} Perl/pm_to_blib Perl/Makefile Perl/Makefile.PL"
+CLEANFILES="${CLEANFILES} Perl/debug/Makefile Perl/debug/pm_to_blib Perl/debug/blib"
+CLEANFILES="${CLEANFILES} Perl/demos/Makefile Perl/demos/pm_to_blib Perl/demos/blib"
+CLEANFILES="${CLEANFILES} Python/Zinc.py"
+
+AC_SUBST(CLEANFILES)
+AC_SUBST(EXTRA_SOURCES)
+
+#--------------------------------------------------------------------
+# Check whether --enable-threads or --disable-threads was given.
+# This call disable threading support as a default.
+#--------------------------------------------------------------------
+TEA_ENABLE_THREADS(no)
+
+#--------------------------------------------------------------------
+# 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
+
+#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols option.
+#--------------------------------------------------------------------
+TEA_ENABLE_SYMBOLS
+
+#--------------------------------------------------------------------
+# For Unix/Tk builds, make sure that the X libraries/headers are found.
+# This must be called after TEA_CONFIG_CFLAGS as it adjusts LIBS.
+#--------------------------------------------------------------------
+TEA_PATH_X
+
+#--------------------------------------------------------------------
+# This sets the tesselation library name and adjust LIBS to
+# include this library.
+#--------------------------------------------------------------------
+if test "${TEA_PLATFORM}" = "windows" ; then
+ Tess_LIB_FILE=tess.lib
+else
+ Tess_LIB_FILE=libtess.a
+fi
+LIBS="${LIBS} -L. -ltess"
+AC_SUBST(Tess_LIB_FILE)
+
+#--------------------------------------------------------------------
+# Tkzinc is always linked against the tcl and tk stubs libraries
+#--------------------------------------------------------------------
+AC_DEFINE(USE_TCL_STUBS)
+AC_DEFINE(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
+
+#--------------------------------------------------------------------
+# Add platform libs to LIBS or SHLIB_LD_LIBS as necessary.
+#--------------------------------------------------------------------
+if test "${TEA_PLATFORM}" = "windows" ; then
+ LIBS="${LIBS} -lgdi32 -luser32 -lwsock32"
+fi
+#SHLIB_LD_LIBS="${SHLIB_LD_LIBS} -lxxxx"
+
+#--------------------------------------------------------------------
+# Find tclsh so that we can run pkg_mkIndex to generate the pkgIndex.tcl
+# file during the install process. Don't run the TCLSH_PROG through
+# ${CYGPATH} because it's being used directly by make.
+# Require that we use a tclsh shell version 8.2 or later since earlier
+# versions have bugs in the pkg_mkIndex routine.
+# Add WISH as well since Tkzinc is a Tk extension.
+#--------------------------------------------------------------------
+TEA_PROG_TCLSH
+TEA_PROG_WISH
+
+#--------------------------------------------------------------------
+# Define the SHAPE symbol to control the X shape extension support.
+# This must be called after TEA_CONFIG_CFLAGS as it adjusts LIBS.
+#--------------------------------------------------------------------
+ZINC_ENABLE_SHAPE
+
+#--------------------------------------------------------------------
+# Adjust the library set based on --enable-gl option. Define also
+# the GL and GL_DAMAGE symbols to configure the code.
+# This must be called after TEA_CONFIG_CFLAGS as it adjusts LIBS.
+#--------------------------------------------------------------------
+ZINC_ENABLE_GL
+
+#--------------------------------------------------------------------
+# Define the OM symbol to control inclusion of the overlap manager
+# support.
+#--------------------------------------------------------------------
+ZINC_ENABLE_OM
+
+#--------------------------------------------------------------------
+# Define the PTK symbol to control whether zinc is built for Tk or
+# for perl/Tk.
+#--------------------------------------------------------------------
+ZINC_ENABLE_PTK
+
+#--------------------------------------------------------------------
+# Finally, substitute all of the various values into the Makefile.
+# Add other files needing substitution after Makefile.
+#--------------------------------------------------------------------
+AC_OUTPUT([Makefile Python/Zinc.py Perl/Makefile.PL])