diff options
Diffstat (limited to 'itcl/itcl/configure.in')
-rw-r--r-- | itcl/itcl/configure.in | 409 |
1 files changed, 409 insertions, 0 deletions
diff --git a/itcl/itcl/configure.in b/itcl/itcl/configure.in new file mode 100644 index 00000000000..c33a8ffa904 --- /dev/null +++ b/itcl/itcl/configure.in @@ -0,0 +1,409 @@ +#-------------------------------------------------------------------- +# Sample configure.in for Tcl Extensions. The only places you should +# need to modify this file are marked by the string __CHANGE__ +#-------------------------------------------------------------------- + +#-------------------------------------------------------------------- +# __CHANGE__ +# This very first macro is used to verify that the configure script can +# find the sources. The argument to AC_INIT should be a unique filename +# for this package, and can be a relative path, such as: +# +# AC_INIT(../generic/tcl.h) +#-------------------------------------------------------------------- + +AC_INIT(generic/itcl.h) +# CYGNUS LOCAL +AC_CONFIG_AUX_DIR(../..) +# END CYGNUS LOCAL + +#-------------------------------------------------------------------- +# __CHANGE__ +# Set your package name and version numbers here. The NODOT_VERSION is +# required for constructing the library name on systems that don't like +# dots in library names (Windows). The VERSION variable is used on the +# other systems. +#-------------------------------------------------------------------- + +PACKAGE=itcl + +MAJOR_VERSION=3 +MINOR_VERSION=2 +PATCHLEVEL=.0 + +VERSION=${MAJOR_VERSION}.${MINOR_VERSION} +NODOT_VERSION=${MAJOR_VERSION}${MINOR_VERSION} + + +AC_SUBST(PACKAGE) +AC_SUBST(VERSION) + +#-------------------------------------------------------------------- +# We put this here so that you can compile with -DVERSION="1.2" to +# encode the package version directly into the source files. +#-------------------------------------------------------------------- + +eval AC_DEFINE_UNQUOTED(VERSION, "${VERSION}") + +#------------------------------------------------------------------------ +# Handle the --prefix=... option +#------------------------------------------------------------------------ + +if test "${prefix}" = "NONE"; then + prefix=/usr/local +fi +if test "${exec_prefix}" = "NONE"; then + exec_prefix=$prefix +fi + +#-------------------------------------------------------------------- +# Check whether --enable-gcc or --disable-gcc was given. Do this +# before AC_CYGWIN is called so the compiler can +# be fully tested by built-in autoconf tools. +# This macro also calls AC_PROG_CC to set the compiler if --enable-gcc +# was not used. +#-------------------------------------------------------------------- + +# CYGNUS LOCAL +dnl SC_ENABLE_GCC +AC_PROG_CC +# END CYGNUS LOCAL +AC_PROG_INSTALL + +#-------------------------------------------------------------------- +# Checks to see if the make program sets the $MAKE variable. +#-------------------------------------------------------------------- + +AC_PROG_MAKE_SET + +#-------------------------------------------------------------------- +# Find ranlib +#-------------------------------------------------------------------- + +AC_PROG_RANLIB + +#-------------------------------------------------------------------- +# This macro performs additional compiler tests. +#-------------------------------------------------------------------- + +AC_CYGWIN + +#-------------------------------------------------------------------- +# Determines the correct binary file extension (.o, .obj, .exe etc.) +#-------------------------------------------------------------------- + +AC_OBJEXT +AC_EXEEXT + +#-------------------------------------------------------------------- +# "cygpath" is used on windows to generate native path names for include +# files. +# These variables should only be used with the compiler and linker since +# they generate native path names. +# +# Unix tclConfig.sh points SRC_DIR at the top-level directory of +# the Tcl sources, while the Windows tclConfig.sh points SRC_DIR at +# the win subdirectory. Hence the different usages of SRC_DIR below. +# +# This must be done before calling SC_PUBLIC_TCL_HEADERS +# +# RELPATH is used to locate binary extensions relative to the lib directory. +# It is only needed if mkIndex.tcl can't generate an installed pkgIndex.tcl +# file for you. +#-------------------------------------------------------------------- + +case "${host}" in + *mingw32* | *windows32*) + AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo) + RELPATH=".. .. bin" + ;; + *) + CYGPATH=echo + RELPATH=.. + ;; +esac + +AC_SUBST(CYGPATH) +AC_SUBST(RELPATH) + +#-------------------------------------------------------------------- +# Includes for this package +#-------------------------------------------------------------------- + +# CYGNUS LOCAL +srcdir=`cd ${srcdir} ; pwd` +ITCL_SRC_DIR_NATIVE=`${CYGPATH} ${srcdir}` +# END CYGNUS LOCAL +ITCL_GENERIC_DIR_NATIVE=`${CYGPATH} ${srcdir}/generic` +ITCL_WIN_DIR_NATIVE=`${CYGPATH} ${srcdir}/win` +ITCL_UNIX_DIR_NATIVE=`${CYGPATH} ${srcdir}/unix` + +case "${host}" in + *cygwin* | *mingw32* | *windows32*) + ITCL_PLATFORM_DIR_NATIVE=${ITCL_WIN_DIR_NATIVE} + ;; + *) + ITCL_PLATFORM_DIR_NATIVE=${ITCL_UNIX_DIR_NATIVE} + ;; +esac + +ITCL_INCLUDES="-I\"${ITCL_GENERIC_DIR_NATIVE}\" -I\"${ITCL_PLATFORM_DIR_NATIVE}\"" + +AC_SUBST(ITCL_GENERIC_DIR_NATIVE) +AC_SUBST(ITCL_WIN_DIR_NATIVE) +AC_SUBST(ITCL_UNIX_DIR_NATIVE) +AC_SUBST(ITCL_INCLUDES) + +#-------------------------------------------------------------------- +# Load the tclConfig.sh file +#-------------------------------------------------------------------- + +SC_PATH_TCLCONFIG +SC_LOAD_TCLCONFIG + +#-------------------------------------------------------------------- +# __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 done AFTER calling SC_PATH_TCLCONFIG/SC_LOAD_TCLCONFIG +# so that we can extract TCL_SRC_DIR from the config file (in the case +# of private headers +#-------------------------------------------------------------------- + +#SC_PUBLIC_TCL_HEADERS +SC_PRIVATE_TCL_HEADERS + +#-------------------------------------------------------------------- +# __CHANGE__ +# A few miscellaneous platform-specific items: +# +# Define a special symbol for Windows (BUILD_itcl in this case) so +# that we create the export library with the dll. See sha1.h on how +# to use this. +# +# 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. +# +# Define any extra compiler flags in the PACKAGE_CFLAGS variable. +# These will be appended to the current set of compiler flags for +# your system. +#-------------------------------------------------------------------- + +case "${host}" in + *cygwin*| *mingw32* | *windows32*) + AC_DEFINE(BUILD_itcl) + CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc50.pch" + PLATFORM_SOURCES='$(WIN_SOURCES)' + PLATFORM_OBJECTS='$(WIN_OBJECTS)' + PLATFORM_DIR='$(WIN_DIR)' + ;; + *) + CLEANFILES= + PLATFORM_SOURCES='$(UNIX_SOURCES)' + PLATFORM_OBJECTS='$(UNIX_OBJECTS)' + PLATFORM_DIR='$(UNIX_DIR)' + ;; +esac + +AC_SUBST(CLEANFILES) +AC_SUBST(PLATFORM_SOURCES) +AC_SUBST(PLATFORM_OBJECTS) +AC_SUBST(PLATFORM_DIR) + +#-------------------------------------------------------------------- +# Check whether --enable-threads or --disable-threads was given. +# So far only Tcl responds to this one. +#-------------------------------------------------------------------- + +SC_ENABLE_THREADS + +#-------------------------------------------------------------------- +# The statement below defines a collection of symbols related to +# building as a shared library instead of a static library. +#-------------------------------------------------------------------- + +SC_ENABLE_SHARED + +#-------------------------------------------------------------------- +# This macro figures out what flags to use with the compiler/linker +# when building shared/static debug/optimized objects. This information +# is all taken from the tclConfig.sh file. +#-------------------------------------------------------------------- + +CFLAGS_DEBUG=${TCL_CFLAGS_DEBUG} +CFLAGS_OPTIMIZE=${TCL_CFLAGS_OPTIMIZE} +LDFLAGS_DEBUG=${TCL_LDFLAGS_DEBUG} +LDFLAGS_OPTIMIZE=${TCL_LDFLAGS_OPTIMIZE} +SHLIB_LD=${TCL_SHLIB_LD} +STLIB_LD=${TCL_STLIB_LD} +SHLIB_CFLAGS=${TCL_SHLIB_CFLAGS} + +AC_SUBST(CFLAGS_DEBUG) +AC_SUBST(CFLAGS_OPTIMIZE) +AC_SUBST(STLIB_LD) +AC_SUBST(SHLIB_LD) +AC_SUBST(SHLIB_CFLAGS) +AC_SUBST(SHLIB_LDFLAGS) + +#-------------------------------------------------------------------- +# Set the default compiler switches based on the --enable-symbols +# option. +#-------------------------------------------------------------------- + +SC_ENABLE_SYMBOLS + +if test "${SHARED_BUILD}" = "1" ; then + CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING} ${SHLIB_CFLAGS}' +else + CFLAGS='${CFLAGS_DEFAULT} ${CFLAGS_WARNING}' +fi + +#-------------------------------------------------------------------- +# 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. +#-------------------------------------------------------------------- + +if test "${SHARED_BUILD}" = "1" ; then + AC_DEFINE(USE_TCL_STUBS) +fi + +#-------------------------------------------------------------------- +# This macro generates a line to use when building a library. It +# depends on values set by the SC_ENABLE_SHARED, SC_ENABLE_SYMBOLS, +# and SC_LOAD_TCLCONFIG macros above. +#-------------------------------------------------------------------- + +SC_MAKE_LIB + +#-------------------------------------------------------------------- +# eval these two values to dereference the ${DBGX} variable. +#-------------------------------------------------------------------- + +eval "SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}" +eval "UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}" + +#-------------------------------------------------------------------- +# Shared libraries and static libraries have different names. +#-------------------------------------------------------------------- + +# CYGNUS LOCAL + +if test "${SHARED_BUILD}" = "1" ; then + # FIXME: Need to devise a TCL_TOOL macro to deal with this! + case "${host}" in + *cygwin* | *mingw32* | *windows32*) + SHLIB_LD_LIBS="${TCL_BUILD_STUB_LIB_SPEC} ${TCL_SHLIB_LD_LIBS}" + # Need to link to the .a or .lib not the .dll! + TCL_TOOL_SHARED_LIB_LONGNAME(ITCL_SHLIB_FILE, ${PACKAGE}, ${SHARED_LIB_SUFFIX}) + TCL_TOOL_STATIC_LIB_LONGNAME(ITCL_LIB_FILE, ${PACKAGE}, ${UNSHARED_LIB_SUFFIX}) + ITCL_TARGET_FILE=${ITCL_SHLIB_FILE} + ;; + *) + SHLIB_LD_LIBS="${TCL_BUILD_LIB_SPEC}" + TCL_TOOL_SHARED_LIB_LONGNAME(ITCL_LIB_FILE, ${PACKAGE}, ${SHARED_LIB_SUFFIX}) + ITCL_TARGET_FILE=${ITCL_LIB_FILE} + ;; + esac +else + TCL_TOOL_STATIC_LIB_LONGNAME(ITCL_LIB_FILE, ${PACKAGE}, ${UNSHARED_LIB_SUFFIX}) + ITCL_TARGET_FILE=${ITCL_LIB_FILE} +fi + +TCL_TOOL_STATIC_LIB_LONGNAME(ITCL_STUB_LIB_FILE, ${PACKAGE}stub, ${UNSHARED_LIB_SUFFIX}) + +AC_SUBST(ITCL_LIB_FILE) +AC_SUBST(ITCL_STUB_LIB_FILE) + +TCL_TOOL_LIB_SHORTNAME(ITCL_LIB_FLAG, ${PACKAGE}, ${VERSION}) +TCL_TOOL_LIB_SHORTNAME(ITCL_STUB_LIB_FLAG, ${PACKAGE}stub, ${VERSION}) + +TCL_TOOL_LIB_SPEC(ITCL_BUILD_LIB_SPEC, `pwd`, ${ITCL_LIB_FLAG}) +TCL_TOOL_LIB_SPEC(ITCL_BUILD_STUB_LIB_SPEC, `pwd`, ${ITCL_STUB_LIB_FLAG}) +AC_SUBST(ITCL_BUILD_LIB_SPEC) +AC_SUBST(ITCL_BUILD_STUB_LIB_SPEC) + +TCL_TOOL_LIB_SPEC(ITCL_LIB_SPEC, ${exec_prefix}/lib, ${ITCL_LIB_FLAG}) +TCL_TOOL_LIB_SPEC(ITCL_STUB_LIB_SPEC, ${exec_prefix}/lib, ${ITCL_STUB_LIB_FLAG}) +AC_SUBST(ITCL_LIB_SPEC) +AC_SUBST(ITCL_STUB_LIB_SPEC) + +TCL_TOOL_LIB_PATH(ITCL_LIB_FULL_PATH, `pwd`, ${ITCL_LIB_FILE}) +TCL_TOOL_LIB_PATH(ITCL_STUB_LIB_FULL_PATH, `pwd`, ${ITCL_STUB_LIB_FILE}) +AC_SUBST(ITCL_LIB_FULL_PATH) +AC_SUBST(ITCL_STUB_LIB_FULL_PATH) + +itclstub_LIB_FILE=${ITCL_STUB_LIB_FILE} +itcl_LIB_FILE=${ITCL_TARGET_FILE} + +# END CYGNUS LOCAL + +#-------------------------------------------------------------------- +# __CHANGE__ +# Change the name from exampeA_LIB_FILE to match your package name. +# Use the stub_LIB_FILE substitution if your package creates a stub +# library. +#-------------------------------------------------------------------- + +AC_SUBST(itclstub_LIB_FILE) +AC_SUBST(itcl_LIB_FILE) +AC_SUBST(SHLIB_LD_LIBS) + +#-------------------------------------------------------------------- +# Cache the stub library name so that the itk configure script can pick +# it up. +#-------------------------------------------------------------------- + +AC_CACHE_VAL(ac_cv_itclstub_LIB_FILE, ac_cv_itclstub_LIB_FILE=${itclstub_LIB_FILE}) + +#-------------------------------------------------------------------- +# 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. +#-------------------------------------------------------------------- + +# CYGNUS LOCAL +# A Tcl shell is not available when bootstrapping! +dnl SC_PROG_TCLSH +# END CYGNUS LOCAL + +#-------------------------------------------------------------------- +# Finally, substitute all of the various values into the Makefile. +#-------------------------------------------------------------------- + +# CYGNUS LOCAL + +# Note: The itclConfig.sh file below is not included in the net release. +# We subst these variables to retain compatibility with the previous +# version of itclConfig.sh. + +ITCL_VERSION=${VERSION} +AC_SUBST(ITCL_VERSION) + +ITCL_MAJOR_VERSION=${MAJOR_VERSION} +AC_SUBST(ITCL_MAJOR_VERSION) + +ITCL_MINOR_VERSION=${MINOR_VERSION} +AC_SUBST(ITCL_MINOR_VERSION) + +ITCL_RELEASE_LEVEL=${PATCHLEVEL} +AC_SUBST(ITCL_RELEASE_LEVEL) + +ITCL_SRC_DIR=${ITCL_SRC_DIR_NATIVE} +AC_SUBST(ITCL_SRC_DIR) + +ITCL_SH=NONE +AC_SUBST(ITCL_SH) + + +AC_OUTPUT([Makefile \ + itclConfig.sh \ + pkgIndex.tcl]) + +# END CYGNUS LOCAL |