Version 4 of configure

Updated 2007-06-11 13:13:37 by LV

On Unix and related systems, a file that is run before make and make install. Often, but not always, this file is a sh shell script generated by autoconf.

If you obtain code from a CVS repository (or a file built from the CVS repository), you may find that while the instructions talk about running a command called configure, there isn't such a file. If, however, there is a configure.in file, that means that the configure.in and autoconf, together, may generate the configure. I say may because there often are several programs that one ends up needing to have to be able to build configure. For instance, one frequently needs the m4 command (a macro preprocessor). [fill in the names of the rest of the suite of programs needed as a part of configure]


configure has a number of flags from which one can choose.

        --with-tcl=DIR          Specifies the directory containing the Tcl
                                binaries and Tcl's platform-dependent
                                configuration information.  By default
                                the Tcl directory is assumed to be in the
                                location given by (a) above.
        --enable-threads        If this switch is set, Tcl will compile
                                itself with multithreading support.
        --enable-shared         If this switch is specified, Tk will compile
                                itself as a shared library if it can figure
                                out how to do that on this platform.  This
                                is the default on platforms where we know
                                how to build shared libraries.
        --disable-shared        If this switch is specified, Tk will compile
                                itself as a static library.
        --enable-symbols        build with debugging symbols  By default
                                standard debugging symbols are used.  You
                                can specify the value "mem" to include
                                TCL_MEM_DEBUG memory debugging.
        --disable-symbols       build without debugging symbols
        --enable-64bit          enable 64bit support (where applicable)
        --disable-64bit         disable 64bit support (where applicable)
        --enable-64bit-vis      enable 64bit Sparc VIS support
        --disable-64bit-vis     disable 64bit Sparc VIS support
        --enable-man-symlinks   Use symlinks for linking the manpages that
                                should be reachable under several names.
        --enable-man-compression=PROG
                                Compress the manpages using PROG.
    Mac OS X only: 
        --enable-framework      package Tk as a framework.
        --disable-corefoundation disable use of CoreFoundation API.
        --enable-aqua           use Aqua windowingsystem rather than X11,
                                requires --enable-corefoundation with tcl & tk.

    Note: by default gcc will be used if it can be located on the PATH.
    if you want to use cc instead of gcc, set the CC environment variable
    to "cc" before running configure. It is not safe to change the Makefile
    to use gcc after configure is run.

    Note: be sure to use only absolute path names (those starting with "/")
    in the --prefix and --exec-prefix options.

LV Can someone provide an example of how the --enable-symbols flag should be used to specify the "mem" value? Also, apparently configure for Tcl also supports the values "compile" or "all".


When building older Tcl versions or Tcl extensions based on TEA, ./configure might fail with an error resembling:

 ./configure: line 7624: syntax error near unexpected token `)'

See bash for explanation and the simple solution.


Category Glossary | Category Deployment