Tcl-Tk-Tkwidget-treectrl
view release on metacpan or search on metacpan
shellicon/tclconfig/tcl.m4 view on Meta::CPAN
# Results:
#
# Sets up CC var and other standard bits we need to make executables.
#------------------------------------------------------------------------
AC_DEFUN([TEA_SETUP_COMPILER], [
# Any macros that use the compiler (e.g. AC_TRY_COMPILE) have to go here.
AC_REQUIRE([TEA_SETUP_COMPILER_CC])
#------------------------------------------------------------------------
# If we're using GCC, see if the compiler understands -pipe. If so, use it.
# It makes compiling go faster. (This is only a performance feature.)
#------------------------------------------------------------------------
if test -z "$no_pipe" -a -n "$GCC"; then
AC_CACHE_CHECK([if the compiler understands -pipe],
tcl_cv_cc_pipe, [
hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe"
AC_TRY_COMPILE(,, tcl_cv_cc_pipe=yes, tcl_cv_cc_pipe=no)
CFLAGS=$hold_cflags])
if test $tcl_cv_cc_pipe = yes; then
CFLAGS="$CFLAGS -pipe"
fi
fi
#--------------------------------------------------------------------
# Common compiler flag setup
#--------------------------------------------------------------------
AC_C_BIGENDIAN
if test "${TEA_PLATFORM}" = "unix" ; then
TEA_TCL_LINK_LIBS
TEA_MISSING_POSIX_HEADERS
# Let the user call this, because if it triggers, they will
# need a compat/strtod.c that is correct. Users can also
# use Tcl_GetDouble(FromObj) instead.
#TEA_BUGGY_STRTOD
fi
])
#------------------------------------------------------------------------
# TEA_MAKE_LIB --
#
# Generate a line that can be used to build a shared/unshared library
# in a platform independent manner.
#
# Arguments:
# none
#
# Requires:
#
# Results:
#
# Defines the following vars:
# CFLAGS - Done late here to note disturb other AC macros
# MAKE_LIB - Command to execute to build the Tcl library;
# differs depending on whether or not Tcl is being
# compiled as a shared library.
# MAKE_SHARED_LIB Makefile rule for building a shared library
# MAKE_STATIC_LIB Makefile rule for building a static library
# MAKE_STUB_LIB Makefile rule for building a stub library
# VC_MANIFEST_EMBED_DLL Makefile rule for embedded VC manifest in DLL
# VC_MANIFEST_EMBED_EXE Makefile rule for embedded VC manifest in EXE
#------------------------------------------------------------------------
AC_DEFUN([TEA_MAKE_LIB], [
if test "${TEA_PLATFORM}" = "windows" -a "$GCC" != "yes"; then
MAKE_STATIC_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_OBJECTS)"
MAKE_SHARED_LIB="\${SHLIB_LD} \${SHLIB_LD_LIBS} \${LDFLAGS_DEFAULT} -out:\[$]@ \$(PKG_OBJECTS)"
AC_EGREP_CPP([manifest needed], [
#if defined(_MSC_VER) && _MSC_VER >= 1400
print("manifest needed")
#endif
], [
# Could do a CHECK_PROG for mt, but should always be with MSVC8+
VC_MANIFEST_EMBED_DLL="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest \$(PKG_MANIFEST) -outputresource:\[$]@\;2 ; fi"
VC_MANIFEST_EMBED_EXE="if test -f \[$]@.manifest ; then mt.exe -nologo -manifest \[$]@.manifest \$(PKG_MANIFEST) -outputresource:\[$]@\;1 ; fi"
MAKE_SHARED_LIB="${MAKE_SHARED_LIB} ; ${VC_MANIFEST_EMBED_DLL}"
# Don't clean .manifest provided by the package (see TEA_ADD_MANIFEST)
# or one created by Makefile or configure. Could use the /manifest:filename
# linker option to explicitly set the linker-generated filename.
eval eval "manifest=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}.manifest"
TEA_ADD_CLEANFILES([$manifest])
])
MAKE_STUB_LIB="\${STLIB_LD} -out:\[$]@ \$(PKG_STUB_OBJECTS)"
else
MAKE_STATIC_LIB="\${STLIB_LD} \[$]@ \$(PKG_OBJECTS)"
MAKE_SHARED_LIB="\${SHLIB_LD} -o \[$]@ \$(PKG_OBJECTS) \${SHLIB_LD_LIBS}"
MAKE_STUB_LIB="\${STLIB_LD} \[$]@ \$(PKG_STUB_OBJECTS)"
fi
if test "${SHARED_BUILD}" = "1" ; then
MAKE_LIB="${MAKE_SHARED_LIB} "
else
MAKE_LIB="${MAKE_STATIC_LIB} "
fi
#--------------------------------------------------------------------
# Shared libraries and static libraries have different names.
# Use the double eval to make sure any variables in the suffix is
# substituted. (@@@ Might not be necessary anymore)
#--------------------------------------------------------------------
if test "${TEA_PLATFORM}" = "windows" ; then
if test "${SHARED_BUILD}" = "1" ; then
# We force the unresolved linking of symbols that are really in
# the private libraries of Tcl and Tk.
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\""
if test x"${TK_BIN_DIR}" != x ; then
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \"`${CYGPATH} ${TK_BIN_DIR}/${TK_STUB_LIB_FILE}`\""
fi
eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
else
eval eval "PKG_LIB_FILE=${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
fi
# Some packages build their own stubs libraries
eval eval "PKG_STUB_LIB_FILE=${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
if test "$GCC" = "yes"; then
PKG_STUB_LIB_FILE=lib${PKG_STUB_LIB_FILE}
fi
# These aren't needed on Windows (either MSVC or gcc)
RANLIB=:
RANLIB_STUB=:
else
RANLIB_STUB="${RANLIB}"
if test "${SHARED_BUILD}" = "1" ; then
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TCL_STUB_LIB_SPEC}"
if test x"${TK_BIN_DIR}" != x ; then
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} ${TK_STUB_LIB_SPEC}"
fi
eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${SHARED_LIB_SUFFIX}"
RANLIB=:
else
eval eval "PKG_LIB_FILE=lib${PACKAGE_NAME}${UNSHARED_LIB_SUFFIX}"
fi
# Some packages build their own stubs libraries
eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
fi
# These are escaped so that only CFLAGS is picked up at configure time.
# The other values will be substituted at make time.
CFLAGS="${CFLAGS} \${CFLAGS_DEFAULT} \${CFLAGS_WARNING}"
if test "${SHARED_BUILD}" = "1" ; then
CFLAGS="${CFLAGS} \${SHLIB_CFLAGS}"
fi
AC_SUBST(MAKE_LIB)
AC_SUBST(MAKE_SHARED_LIB)
AC_SUBST(MAKE_STATIC_LIB)
AC_SUBST(MAKE_STUB_LIB)
AC_SUBST(RANLIB_STUB)
AC_SUBST(VC_MANIFEST_EMBED_DLL)
AC_SUBST(VC_MANIFEST_EMBED_EXE)
])
#------------------------------------------------------------------------
# TEA_LIB_SPEC --
#
# Compute the name of an existing object library located in libdir
# from the given base name and produce the appropriate linker flags.
#
# Arguments:
# basename The base name of the library without version
# numbers, extensions, or "lib" prefixes.
# extra_dir Extra directory in which to search for the
# library. This location is used first, then
# $prefix/$exec-prefix, then some defaults.
#
# Requires:
# TEA_INIT and TEA_PREFIX must be called first.
#
# Results:
#
# Defines the following vars:
# ${basename}_LIB_NAME The computed library name.
# ${basename}_LIB_SPEC The computed linker flags.
#------------------------------------------------------------------------
AC_DEFUN([TEA_LIB_SPEC], [
AC_MSG_CHECKING([for $1 library])
# Look in exec-prefix for the library (defined by TEA_PREFIX).
tea_lib_name_dir="${exec_prefix}/lib"
# Or in a user-specified location.
if test x"$2" != x ; then
tea_extra_lib_dir=$2
else
tea_extra_lib_dir=NONE
fi
for i in \
`ls -dr ${tea_extra_lib_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
`ls -dr ${tea_extra_lib_dir}/lib$1[[0-9]]* 2>/dev/null ` \
`ls -dr ${tea_lib_name_dir}/$1[[0-9]]*.lib 2>/dev/null ` \
`ls -dr ${tea_lib_name_dir}/lib$1[[0-9]]* 2>/dev/null ` \
`ls -dr /usr/lib/$1[[0-9]]*.lib 2>/dev/null ` \
`ls -dr /usr/lib/lib$1[[0-9]]* 2>/dev/null ` \
`ls -dr /usr/lib64/$1[[0-9]]*.lib 2>/dev/null ` \
`ls -dr /usr/lib64/lib$1[[0-9]]* 2>/dev/null ` \
`ls -dr /usr/local/lib/$1[[0-9]]*.lib 2>/dev/null ` \
`ls -dr /usr/local/lib/lib$1[[0-9]]* 2>/dev/null ` ; do
if test -f "$i" ; then
tea_lib_name_dir=`dirname $i`
$1_LIB_NAME=`basename $i`
$1_LIB_PATH_NAME=$i
break
fi
done
if test "${TEA_PLATFORM}" = "windows"; then
( run in 0.613 second using v1.01-cache-2.11-cpan-71847e10f99 )