You are viewing a plain text version of this content. The canonical link for it is here.
Posted to websh-cvs@tcl.apache.org by da...@apache.org on 2001/11/05 12:42:02 UTC

cvs commit: tcl-websh/src/unix configure.in

davidw      01/11/05 03:42:02

  Added:       src/unix configure.in
  Removed:     src      configure.in
  Log:
  Moved configure.in to src/unix directory.
  
  Revision  Changes    Path
  1.1                  tcl-websh/src/unix/configure.in
  
  Index: configure.in
  ===================================================================
  #
  # configure.in -- configure def for websh
  # nca-073-9
  #
  # (adapted from sampleextension-0.2)
  #
  # See the file "license.terms" for information on usage and
  # redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  #
  # @(#) $Id: configure.in,v 1.1 2001/11/05 11:42:02 davidw Exp $
  #
  
  #--------------------------------------------------------------------
  # 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/web.c)
  
  #--------------------------------------------------------------------
  # 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=web
  
  MAJOR_VERSION=%%MAJOR_VERSION%%
  MINOR_VERSION=%%MINOR_VERSION%%
  PATCHLEVEL=%%PATCHLEVEL%%
  
  VERSION=${MAJOR_VERSION}.${MINOR_VERSION}${PATCHLEVEL}
  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}")
  
  #--------------------------------------------------------------------
  # 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.
  #--------------------------------------------------------------------
  
  SC_ENABLE_GCC
  AC_PROG_INSTALL
  
  AC_EGREP_HEADER(strcasecmp, string.h, tcl_ok=1, tcl_ok=0)
  if test $tcl_ok = 0; then
  	AC_EGREP_HEADER(strcasecmp, strings.h, tcl_ok=1, tcl_ok=0)
  	if test $tcl_ok = 0; then
  		AC_ERROR(needed function strcasecmp not found on this system)
  	fi
  fi
  
  #--------------------------------------------------------------------
  # 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
  #--------------------------------------------------------------------
  
  case "`uname -s`" in
      *win32* | *WIN32* | *CYGWIN_NT*)
  	CYGPATH="cygpath -w"
      ;;
      *)
  	CYGPATH=echo
      ;;
  esac
  
  AC_SUBST(CYGPATH)
  
  #--------------------------------------------------------------------
  # 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 before SC_PATH_TCLCONFIG/SC_LOAD_TCLCONFIG
  #--------------------------------------------------------------------
  
  SC_PUBLIC_TCL_HEADERS
  #SC_PRIVATE_TCL_HEADERS
  
  #--------------------------------------------------------------------
  # Load the tclConfig.sh file
  #--------------------------------------------------------------------
  
  SC_PATH_TCLCONFIG
  SC_LOAD_TCLCONFIG
  
  
  #--------------------------------------------------------------------
  # --with-httpd-include
  #--------------------------------------------------------------------
  AC_ARG_WITH(httpdinclude, [  --with-httpdinclude     directory containing the apache header files.], with_httpdinclude=${withval})
  
  if test x"${with_httpdinclude}" != x ; then
    if test -f "${with_httpdinclude}/httpd.h" ; then
        echo "httpd header files found"
        HTTPD_INCLUDES=-I\"${with_httpdinclude}\"
        AC_SUBST(HTTPD_INCLUDES)
    else
        AC_MSG_ERROR([${with_httpdinclude}: directory does not contain httpd.h])
    fi
  fi
  
  #--------------------------------------------------------------------
  # A few miscellaneous platform-specific items:
  #
  # Define a special symbol for Windows (BUILD_exampleA 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 "`uname -s`" in
      *win32* | *WIN32* | *CYGWIN_NT*)
  	AC_DEFINE(BUILD_web)
  	CLEANFILES="*.lib *.dll *.exp *.ilk *.pdb vc50.pch"
  	AC_SUBST(CLEANFILES)
      ;;
      *)
  	CLEANFILES="initcode websh3* *pure* *.cov* ../tests/webtest.log ../tests/*.dat"
      ;;
  esac
  
  
  #--------------------------------------------------------------------
  # set SYSV or WIN32 or AIX
  #--------------------------------------------------------------------
  case "`uname -s`" in
      *win32* | *WIN32* | *CYGWIN_NT*)
  	AC_DEFINE(WIN32)
      ;;
      *aix* | *AIX* )
  	AC_DEFINE(AIX)
      ;;
      *freebsd* | *FreeBSD* )
  	AC_DEFINE(FREEBSD)
      ;;
      *bsd/os* | *BSD/OS* )
  	AC_DEFINE(BSDI)
      ;;
      *)
  	AC_DEFINE(SYSV)
      ;;
  esac
  
  #--------------------------------------------------------------------
  # 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.
  #--------------------------------------------------------------------
  
  AC_DEFINE(USE_TCL_STUBS)
  
  #--------------------------------------------------------------------
  # 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}"
  
  AC_SUBST(SHARED_LIB_SUFFIX)
  AC_SUBST(UNSHARED_LIB_SUFFIX)
  
  #--------------------------------------------------------------------
  # Shared libraries and static libraries have different names.
  #--------------------------------------------------------------------
  
  case "`uname -s`" in
      *win32* | *WIN32* | *CYGWIN_NT*)
  	if test "${SHARED_BUILD}" = "1" ; then
  	    SHLIB_LD_LIBS="\"`cygpath -w ${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}`\" ${TCL_SHLIB_LD_LIBS}"
  	    eval "${PACKAGE}_LIB_FILE=${PACKAGE}sh${SHARED_LIB_SUFFIX}"
  	    RANLIB=:
  	else
  	    eval "${PACKAGE}_LIB_FILE=${PACKAGE}sh${UNSHARED_LIB_SUFFIX}"
  	fi
  	;;
      *)
  	if test "${SHARED_BUILD}" = "1" ; then
  	    SHLIB_LD_LIBS="${TCL_STUB_LIB_SPEC}"
  	    eval "${PACKAGE}_LIB_FILE=lib${PACKAGE}sh${SHARED_LIB_SUFFIX}"
  	    RANLIB=:
  	else
  	    eval "${PACKAGE}_LIB_FILE=lib${PACKAGE}sh${UNSHARED_LIB_SUFFIX}"
  	fi
  	;;
  esac
  
  #--------------------------------------------------------------------
  # Change the name from exampeA_LIB_FILE to match your package name.
  #--------------------------------------------------------------------
  
  AC_SUBST(web_LIB_FILE)
  AC_SUBST(SHLIB_LD_LIBS)
  
  #--------------------------------------------------------------------
  # 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.
  #--------------------------------------------------------------------
  
  #AC_PATH_PROGS (VARIABLE, PROGS-TO-CHECK-FOR [,
  #          VALUE-IF-NOT-FOUND [, PATH]])
  #     Like `AC_CHECK_PROGS', but if any of PROGS-TO-CHECK-FOR are found,
  #     set VARIABLE to the entire path of the program found.
  
  AC_PATH_PROGS(TCLSH_PROG, \
    tclsh8.3${EXEEXT} tclsh83${EXEEXT} tclsh8.2${EXEEXT} tclsh82${EXEEXT}, :, \
    :${TCL_PACKAGE_PATH}/../bin:.:${prefix}:${exec_prefix}:${PATH})
  
  if test "x${TCLSH_PROG}" = "x:" ; then
      AC_ERROR(needed tclsh 8.3 not found)
  fi
  
  AC_SUBST(TCL_LIB_SPEC)
  AC_SUBST(TCLSH_PROG)
  AC_SUBST(TCL_PACKAGE_PATH)
  
  #--------------------------------------------------------------------
  # Finally, substitute all of the various values into the Makefile.
  #--------------------------------------------------------------------
  
  AC_OUTPUT([Makefile])