1 dnl Process this file with autoconf 2.0 or later to make a configure script.
3 # Set VERSION so we only need to edit in one place (i.e., here)
4 m4_define(PYTHON_VERSION, 2.5)
6 AC_REVISION($Revision$)
8 AC_INIT(python, PYTHON_VERSION, http://www.python.org/python-bugs)
9 AC_CONFIG_SRCDIR([Include/object.h])
10 AC_CONFIG_HEADER(pyconfig.h)
12 dnl This is for stuff that absolutely must end up in pyconfig.h.
13 dnl Please use pyport.h instead, if possible.
19 /* Define the macros needed if on a UnixWare 7.x system. */
20 #if defined(__USLC__) && defined(__SCO_VERSION__)
21 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
24 #endif /*Py_PYCONFIG_H*/
27 # We don't use PACKAGE_ variables, and they cause conflicts
28 # with other autoconf-based packages that include Python.h
29 grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
31 mv confdefs.h.new confdefs.h
34 VERSION=PYTHON_VERSION
39 # The later defininition of _XOPEN_SOURCE disables certain features
40 # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
41 AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
43 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
44 # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
46 AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
48 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
49 # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
51 AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
53 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
54 # u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
55 AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
57 define_xopen_source=yes
59 # Arguments passed to configure.
61 CONFIG_ARGS="$ac_configure_args"
63 AC_ARG_ENABLE(universalsdk,
64 AC_HELP_STRING(--enable-universalsdk@<:@SDKDIR@:>@, Build agains Mac OS X 10.4u SDK (ppc/i386)),
68 enableval=/Developer/SDKs/MacOSX10.4u.sdk
77 UNIVERSALSDK=$enableval
84 AC_SUBST(UNIVERSALSDK)
86 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
87 AC_ARG_ENABLE(framework,
88 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
92 enableval=/Library/Frameworks
97 PYTHONFRAMEWORKDIR=no-framework
98 PYTHONFRAMEWORKPREFIX=
99 PYTHONFRAMEWORKINSTALLDIR=
103 PYTHONFRAMEWORK=Python
104 PYTHONFRAMEWORKDIR=Python.framework
105 PYTHONFRAMEWORKPREFIX=$enableval
106 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
107 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
109 # Add makefiles for Mac specific code to the list of output
111 AC_CONFIG_FILES(Mac/OSX/Makefile)
112 AC_CONFIG_FILES(Mac/OSX/PythonLauncher/Makefile)
113 AC_CONFIG_FILES(Mac/OSX/IDLE/Makefile)
117 PYTHONFRAMEWORKDIR=no-framework
118 PYTHONFRAMEWORKPREFIX=
119 PYTHONFRAMEWORKINSTALLDIR=
122 AC_SUBST(PYTHONFRAMEWORK)
123 AC_SUBST(PYTHONFRAMEWORKDIR)
124 AC_SUBST(PYTHONFRAMEWORKPREFIX)
125 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
128 ## AC_HELP_STRING(--with-dyld,
129 ## Use (OpenStep|Rhapsody) dynamic linker))
131 # Set name for machine-dependent library files
133 AC_MSG_CHECKING(MACHDEP)
134 if test -z "$MACHDEP"
136 ac_sys_system=`uname -s`
137 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
138 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
139 ac_sys_release=`uname -v`
141 ac_sys_release=`uname -r`
143 ac_md_system=`echo $ac_sys_system |
144 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
145 ac_md_release=`echo $ac_sys_release |
146 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
147 MACHDEP="$ac_md_system$ac_md_release"
150 cygwin*) MACHDEP="cygwin";;
151 darwin*) MACHDEP="darwin";;
152 atheos*) MACHDEP="atheos";;
153 irix646) MACHDEP="irix6";;
154 '') MACHDEP="unknown";;
158 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
159 # disable features if it is defined, without any means to access these
160 # features as extensions. For these systems, we skip the definition of
161 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
162 # some feature, make sure there is no alternative way to access this
163 # feature. Also, when using wildcards, make sure you have verified the
164 # need for not defining _XOPEN_SOURCE on all systems matching the
165 # wildcard, and that the wildcard does not include future systems
166 # (which may remove their limitations).
167 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
168 case $ac_sys_system/$ac_sys_release in
169 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
170 # even though select is a POSIX function. Reported by J. Ribbens.
171 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
172 OpenBSD/2.* | OpenBSD/3.@<:@012345678@:>@)
173 define_xopen_source=no;;
174 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
175 # of union __?sigval. Reported by Stuart Bishop.
177 define_xopen_source=no;;
178 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
179 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
180 # Reconfirmed for 7.1.4 by Martin v. Loewis.
181 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
182 define_xopen_source=no;;
183 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
184 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
186 define_xopen_source=no;;
187 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
188 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
189 # this is fixed in 10.3, which identifies itself as Darwin/7.*
190 # This should hopefully be fixed in FreeBSD 4.9
191 FreeBSD/4.8* | Darwin/6* )
192 define_xopen_source=no;;
193 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
194 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
195 # or has another value. By not (re)defining it, the defaults come in place.
197 define_xopen_source=no;;
199 if test `uname -r` -eq 1; then
200 define_xopen_source=no
203 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
204 # disables platform specific features beyond repair.
205 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
206 # has no effect, don't bother defineing them
208 define_xopen_source=no
213 if test $define_xopen_source = yes
215 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
216 # defined precisely as g++ defines it
217 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
219 case $ac_sys_system/$ac_sys_release in
220 SunOS/5.8|SunOS/5.9|SunOS/5.10)
221 AC_DEFINE(_XOPEN_SOURCE, 500,
222 Define to the level of X/Open that your system supports)
225 AC_DEFINE(_XOPEN_SOURCE, 600,
226 Define to the level of X/Open that your system supports)
230 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
231 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
232 # several APIs are not declared. Since this is also needed in some
233 # cases for HP-UX, we define it globally.
234 # except for Solaris 10, where it must not be defined,
235 # as it implies XPG4.2
236 case $ac_sys_system/$ac_sys_release in
240 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
241 Define to activate Unix95-and-earlier features)
245 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
250 # SGI compilers allow the specification of the both the ABI and the
251 # ISA on the command line. Depending on the values of these switches,
252 # different and often incompatable code will be generated.
254 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
255 # thus supply support for various ABI/ISA combinations. The MACHDEP
256 # variable is also adjusted.
259 if test ! -z "$SGI_ABI"
262 LDFLAGS="$SGI_ABI $LDFLAGS"
263 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
265 AC_MSG_RESULT($MACHDEP)
267 # And add extra plat-mac for darwin
268 AC_SUBST(EXTRAPLATDIR)
269 AC_SUBST(EXTRAMACHDEPPATH)
270 AC_MSG_CHECKING(EXTRAPLATDIR)
271 if test -z "$EXTRAPLATDIR"
275 EXTRAPLATDIR="\$(PLATMACDIRS)"
276 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
284 AC_MSG_RESULT($EXTRAPLATDIR)
286 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
287 # it may influence the way we can build extensions, so distutils
289 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
290 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
291 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
292 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
294 # checks for alternative programs
296 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
297 # for debug/optimization stuff. BASECFLAGS is for flags that are required
298 # just to get things to compile and link. Users are free to override OPT
299 # when running configure or make. The build should not break if they do.
300 # BASECFLAGS should generally not be messed with, however.
302 # XXX shouldn't some/most/all of this code be merged with the stuff later
303 # on that fiddles with OPT and BASECFLAGS?
304 AC_MSG_CHECKING(for --without-gcc)
306 AC_HELP_STRING(--without-gcc,never use gcc),
314 without_gcc=$withval;;
316 case $ac_sys_system in
324 BASECFLAGS="$BASECFLAGS -export pragma"
326 LDFLAGS="$LDFLAGS -nodup"
334 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
337 AR="\$(srcdir)/Modules/ar_beos"
345 AC_MSG_RESULT($without_gcc)
347 # If the user switches compilers, we can't believe the cache
348 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
350 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
351 (it is also a good idea to do 'make clean' before compiling)])
358 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
359 AC_ARG_WITH(cxx_main,
360 AC_HELP_STRING([--with-cxx-main=<compiler>],
361 [compile main() and link python executable with C++ compiler]),
367 yes) with_cxx_main=yes
379 AC_MSG_RESULT($with_cxx_main)
385 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
386 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
388 if test "$CXX" = "notfound"
395 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
396 if test "$CXX" = "notfound"
401 if test "$preset_cxx" != "$CXX"
405 By default, distutils will build C++ extension modules with "$CXX".
406 If this is not intended, then set CXX on the configure command line.
411 # checks for UNIX variants that set C preprocessor variables
414 # Check for unsupported systems
415 case $ac_sys_system/$ac_sys_release in
417 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
418 echo See README for details.
423 AC_MSG_CHECKING(for --with-suffix)
425 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
432 AC_MSG_RESULT($EXEEXT)
434 # Test whether we're running on a non-case-sensitive system, in which
435 # case we give a warning if no ext is given
436 AC_SUBST(BUILDEXEEXT)
437 AC_MSG_CHECKING(for case-insensitive build directory)
438 if test ! -d CaseSensitiveTestDir; then
439 mkdir CaseSensitiveTestDir
442 if test -d casesensitivetestdir
450 rmdir CaseSensitiveTestDir
455 gcc) CC="$CC -D_HAVE_BSDI";;
459 case $ac_sys_system in
462 cc|*/cc) CC="$CC -Ae";;
466 cc) CC="$CC -Wl,-Bexport";;
469 # Some functions have a prototype only with that define, e.g. confstr
470 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
476 AC_MSG_CHECKING(LIBRARY)
477 if test -z "$LIBRARY"
479 LIBRARY='libpython$(VERSION).a'
481 AC_MSG_RESULT($LIBRARY)
483 # LDLIBRARY is the name of the library to link against (as opposed to the
484 # name of the library into which to insert object files). BLDLIBRARY is also
485 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
486 # is blank as the main program is not linked directly against LDLIBRARY.
487 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
488 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
489 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
490 # DLLLIBRARY is the shared (i.e., DLL) library.
492 # RUNSHARED is used to run shared python without installed libraries
494 # INSTSONAME is the name of the shared library that will be use to install
495 # on the system - some systems like version suffix, others don't
499 AC_SUBST(LDLIBRARYDIR)
503 BLDLIBRARY='$(LDLIBRARY)'
504 INSTSONAME='$(LDLIBRARY)'
509 # LINKCC is the command that links the python executable -- default is $(CC).
510 # If CXX is set, and if it is needed to link a main function that was
511 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
512 # python might then depend on the C++ runtime
513 # This is altered for AIX in order to build the export list before
516 AC_MSG_CHECKING(LINKCC)
519 LINKCC='$(PURIFY) $(MAINCC)'
520 case $ac_sys_system in
523 if test $ac_sys_release -ge 5 -o \
524 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
527 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
529 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
532 AC_MSG_RESULT($LINKCC)
534 AC_MSG_CHECKING(for --enable-shared)
535 AC_ARG_ENABLE(shared,
536 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
538 if test -z "$enable_shared"
540 case $ac_sys_system in
542 enable_shared="yes";;
547 AC_MSG_RESULT($enable_shared)
549 AC_MSG_CHECKING(for --enable-profiling)
550 AC_ARG_ENABLE(profiling,
551 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
554 AC_TRY_RUN([int main() { return 0; }],
555 ac_enable_profiling="yes",
556 ac_enable_profiling="no",
557 ac_enable_profiling="no")
559 AC_MSG_RESULT($ac_enable_profiling)
561 case "$ac_enable_profiling" in
563 BASECFLAGS="-pg $BASECFLAGS"
564 LDFLAGS="-pg $LDFLAGS"
568 AC_MSG_CHECKING(LDLIBRARY)
570 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
571 # library that we build, but we do not want to link against it (we
572 # will find it with a -framework option). For this reason there is an
573 # extra variable BLDLIBRARY against which Python and the extension
574 # modules are linked, BLDLIBRARY. This is normally the same as
575 # LDLIBRARY, but empty for MacOSX framework builds.
576 if test "$enable_framework"
578 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
579 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
582 BLDLIBRARY='$(LDLIBRARY)'
585 # Other platforms follow
586 if test $enable_shared = "yes"; then
587 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
588 case $ac_sys_system in
590 LDLIBRARY='libpython$(VERSION).so'
593 LDLIBRARY='libpython$(VERSION).dll.a'
594 DLLLIBRARY='libpython$(VERSION).dll'
597 LDLIBRARY='libpython$(VERSION).so'
598 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
599 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
600 INSTSONAME="$LDLIBRARY".$SOVERSION
602 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
603 LDLIBRARY='libpython$(VERSION).so'
604 BLDLIBRARY='-L. -lpython$(VERSION)'
605 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
606 case $ac_sys_system in
608 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
611 INSTSONAME="$LDLIBRARY".$SOVERSION
616 LDLIBRARY='libpython$(VERSION).so'
619 LDLIBRARY='libpython$(VERSION).sl'
622 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
623 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
626 LDLIBRARY='libpython$(VERSION).so'
627 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
628 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
631 LDLIBRARY='libpython$(VERSION).so'
632 BLDLIBRARY='-L. -lpython$(VERSION)'
633 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
636 else # shared is disabled
637 case $ac_sys_system in
639 BLDLIBRARY='$(LIBRARY)'
640 LDLIBRARY='libpython$(VERSION).dll.a'
645 AC_MSG_RESULT($LDLIBRARY)
649 AC_CHECK_PROGS(AR, ar aal, ar)
652 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
653 if test $SVNVERSION = found
655 SVNVERSION="svnversion \$(srcdir)"
657 SVNVERSION="echo exported"
662 # install -d does not work on BSDI or HP-UX
663 if test -z "$INSTALL"
665 INSTALL="${srcdir}/install-sh -c"
670 # Not every filesystem supports hard links
672 if test -z "$LN" ; then
673 case $ac_sys_system in
675 CYGWIN*) LN="ln -s";;
676 atheos*) LN="ln -s";;
681 # Check for --with-pydebug
682 AC_MSG_CHECKING(for --with-pydebug)
684 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
686 if test "$withval" != no
688 AC_DEFINE(Py_DEBUG, 1,
689 [Define if you want to build an interpreter with many run-time checks.])
692 else AC_MSG_RESULT(no); Py_DEBUG='false'
696 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
697 # merged with this chunk of code?
699 # Optimizer/debugger flags
700 # ------------------------
701 # (The following bit of code is complicated enough - please keep things
702 # indented properly. Just pretend you're editing Python code. ;-)
704 # There are two parallel sets of case statements below, one that checks to
705 # see if OPT was set and one that does BASECFLAGS setting based upon
706 # compiler and platform. BASECFLAGS tweaks need to be made even if the
709 # tweak OPT based on compiler and platform, only if the user didn't set
710 # it on the command line
716 if test "$CC" != 'g++' ; then
717 STRICT_PROTO="-Wstrict-prototypes"
719 case $ac_cv_prog_cc_g in
721 if test "$Py_DEBUG" = 'true' ; then
722 # Optimization messes up debuggers, so turn it off for
724 OPT="-g -Wall $STRICT_PROTO"
726 OPT="-g -O3 -Wall $STRICT_PROTO"
730 OPT="-O3 -Wall $STRICT_PROTO"
733 case $ac_sys_system in
734 SCO_SV*) OPT="$OPT -m486 -DSCO5"
744 # The current (beta) Monterey compiler dies with optimizations
745 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
746 case $ac_sys_system in
755 # tweak BASECFLAGS based on compiler and platform
758 # Python violates C99 rules, by casting between incompatible
759 # pointer types. GCC may generate bad code as a result of that,
760 # so use -fno-strict-aliasing if supported.
761 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
763 CC="$CC -fno-strict-aliasing"
764 AC_TRY_RUN([int main() { return 0; }],
765 ac_cv_no_strict_aliasing_ok=yes,
766 ac_cv_no_strict_aliasing_ok=no,
767 ac_cv_no_strict_aliasing_ok=no)
769 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
770 if test $ac_cv_no_strict_aliasing_ok = yes
772 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
774 case $ac_sys_system in
776 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
778 # is there any other compiler on Darwin besides gcc?
780 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
781 if test "${enable_universalsdk}"; then
782 BASECFLAGS="-arch ppc -arch i386 -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
787 BASECFLAGS="$BASECFLAGS -mieee"
793 case $ac_sys_system in
795 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
798 BASECFLAGS="$BASECFLAGS -ieee -std"
801 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
807 if test "$Py_DEBUG" = 'true'; then
813 if test "$ac_arch_flags"
815 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
818 # disable check for icc since it seems to pass, but generates a warning
821 ac_cv_opt_olimit_ok=no
824 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
825 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
827 CC="$CC -OPT:Olimit=0"
828 AC_TRY_RUN([int main() { return 0; }],
829 ac_cv_opt_olimit_ok=yes,
830 ac_cv_opt_olimit_ok=no,
831 ac_cv_opt_olimit_ok=no)
833 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
834 if test $ac_cv_opt_olimit_ok = yes; then
835 case $ac_sys_system in
836 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
837 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
842 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
846 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
847 AC_CACHE_VAL(ac_cv_olimit_ok,
849 CC="$CC -Olimit 1500"
850 AC_TRY_RUN([int main() { return 0; }],
855 AC_MSG_RESULT($ac_cv_olimit_ok)
856 if test $ac_cv_olimit_ok = yes; then
857 BASECFLAGS="$BASECFLAGS -Olimit 1500"
861 # On some compilers, pthreads are available without further options
862 # (e.g. MacOS X). On some of these systems, the compiler will not
863 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
864 # So we have to see first whether pthreads are available without
865 # options before we can check whether -Kpthread improves anything.
866 AC_MSG_CHECKING(whether pthreads are available without options)
867 AC_CACHE_VAL(ac_cv_pthread_is_default,
871 void* routine(void* p){return NULL;}
875 if(pthread_create(&p,NULL,routine,NULL)!=0)
877 (void)pthread_detach(p);
882 ac_cv_pthread_is_default=yes
886 ac_cv_pthread_is_default=no,
887 ac_cv_pthread_is_default=no)
889 AC_MSG_RESULT($ac_cv_pthread_is_default)
892 if test $ac_cv_pthread_is_default = yes
896 # -Kpthread, if available, provides the right #defines
897 # and linker options to make pthread_create available
898 # Some compilers won't report that they do not support -Kpthread,
899 # so we need to run a program to see whether it really made the
900 # function available.
901 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
902 AC_CACHE_VAL(ac_cv_kpthread,
908 void* routine(void* p){return NULL;}
912 if(pthread_create(&p,NULL,routine,NULL)!=0)
914 (void)pthread_detach(p);
922 AC_MSG_RESULT($ac_cv_kpthread)
925 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
927 # -Kthread, if available, provides the right #defines
928 # and linker options to make pthread_create available
929 # Some compilers won't report that they do not support -Kthread,
930 # so we need to run a program to see whether it really made the
931 # function available.
932 AC_MSG_CHECKING(whether $CC accepts -Kthread)
933 AC_CACHE_VAL(ac_cv_kthread,
939 void* routine(void* p){return NULL;}
943 if(pthread_create(&p,NULL,routine,NULL)!=0)
945 (void)pthread_detach(p);
953 AC_MSG_RESULT($ac_cv_kthread)
956 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
958 # -pthread, if available, provides the right #defines
959 # and linker options to make pthread_create available
960 # Some compilers won't report that they do not support -pthread,
961 # so we need to run a program to see whether it really made the
962 # function available.
963 AC_MSG_CHECKING(whether $CC accepts -pthread)
964 AC_CACHE_VAL(ac_cv_thread,
970 void* routine(void* p){return NULL;}
974 if(pthread_create(&p,NULL,routine,NULL)!=0)
976 (void)pthread_detach(p);
984 AC_MSG_RESULT($ac_cv_pthread)
987 # If we have set a CC compiler flag for thread support then
988 # check if it works for CXX, too.
992 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
995 if test "$ac_cv_kpthread" = "yes"
999 elif test "$ac_cv_kthread" = "yes"
1002 ac_cv_cxx_thread=yes
1003 elif test "$ac_cv_pthread" = "yes"
1006 ac_cv_cxx_thread=yes
1009 if test $ac_cv_cxx_thread = yes
1011 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1012 $CXX -c conftest.$ac_ext 2>&5
1013 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1014 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1016 ac_cv_cxx_thread=yes
1022 AC_MSG_RESULT($ac_cv_cxx_thread)
1026 dnl # check for ANSI or K&R ("traditional") preprocessor
1027 dnl AC_MSG_CHECKING(for C preprocessor type)
1028 dnl AC_TRY_COMPILE([
1029 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1031 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1032 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1033 dnl AC_MSG_RESULT($cpp_type)
1035 # checks for header files
1037 AC_CHECK_HEADERS(asm/types.h curses.h dlfcn.h fcntl.h grp.h \
1038 shadow.h langinfo.h libintl.h ncurses.h poll.h pthread.h \
1039 stropts.h termios.h thread.h \
1041 sys/audioio.h sys/bsdtty.h sys/file.h sys/loadavg.h sys/lock.h sys/mkdev.h \
1043 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/time.h \
1044 sys/times.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1045 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1046 bluetooth/bluetooth.h)
1050 # On Solaris, term.h requires curses.h
1051 AC_CHECK_HEADERS(term.h,,,[
1052 #ifdef HAVE_CURSES_H
1057 # On Linux, netlink.h requires asm/types.h
1058 AC_CHECK_HEADERS(linux/netlink.h,,,[
1059 #ifdef HAVE_ASM_TYPES_H
1060 #include <asm/types.h>
1062 #ifdef HAVE_SYS_SOCKET_H
1063 #include <sys/socket.h>
1067 # checks for typedefs
1069 AC_MSG_CHECKING(for clock_t in time.h)
1070 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1071 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1073 AC_MSG_RESULT($was_it_defined)
1075 # Check whether using makedev requires defining _OSF_SOURCE
1076 AC_MSG_CHECKING(for makedev)
1077 AC_TRY_LINK([#include <sys/types.h> ],
1079 ac_cv_has_makedev=yes,
1080 ac_cv_has_makedev=no)
1081 if test "$ac_cv_has_makedev" = "no"; then
1082 # we didn't link, try if _OSF_SOURCE will allow us to link
1084 #define _OSF_SOURCE 1
1085 #include <sys/types.h>
1088 ac_cv_has_makedev=yes,
1089 ac_cv_has_makedev=no)
1090 if test "$ac_cv_has_makedev" = "yes"; then
1091 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1094 AC_MSG_RESULT($ac_cv_has_makedev)
1095 if test "$ac_cv_has_makedev" = "yes"; then
1096 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1099 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1100 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1101 # defined, but the compiler does not support pragma redefine_extname,
1102 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1103 # structures (such as rlimit64) without declaring them. As a
1104 # work-around, disable LFS on such configurations
1107 AC_MSG_CHECKING(Solaris LFS bug)
1109 #define _LARGEFILE_SOURCE 1
1110 #define _FILE_OFFSET_BITS 64
1111 #include <sys/resource.h>
1112 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1113 AC_MSG_RESULT($sol_lfs_bug)
1114 if test "$sol_lfs_bug" = "yes"; then
1118 if test "$use_lfs" = "yes"; then
1119 # Two defines needed to enable largefile support on various platforms
1120 # These may affect some typedefs
1121 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1122 [This must be defined on some systems to enable large file support.])
1123 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1124 [This must be set to 64 on some systems to enable large file support.])
1127 # Add some code to confdefs.h so that the test for off_t works on SCO
1128 cat >> confdefs.h <<\EOF
1134 # Type availability checks
1141 AC_CHECK_TYPE(ssize_t,
1142 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1144 # Sizes of various common basic types
1145 # ANSI C requires sizeof(char) == 1, so no need to check it
1146 AC_CHECK_SIZEOF(int, 4)
1147 AC_CHECK_SIZEOF(long, 4)
1148 AC_CHECK_SIZEOF(void *, 4)
1149 AC_CHECK_SIZEOF(short, 2)
1150 AC_CHECK_SIZEOF(float, 4)
1151 AC_CHECK_SIZEOF(double, 8)
1152 AC_CHECK_SIZEOF(fpos_t, 4)
1153 AC_CHECK_SIZEOF(size_t, 4)
1155 AC_MSG_CHECKING(for long long support)
1157 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1158 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1161 AC_MSG_RESULT($have_long_long)
1162 if test "$have_long_long" = yes ; then
1163 AC_CHECK_SIZEOF(long long, 8)
1166 AC_MSG_CHECKING(for uintptr_t support)
1168 AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1169 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1172 AC_MSG_RESULT($have_uintptr_t)
1173 if test "$have_uintptr_t" = yes ; then
1174 AC_CHECK_SIZEOF(uintptr_t, 4)
1177 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1178 AC_MSG_CHECKING(size of off_t)
1179 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1180 [AC_TRY_RUN([#include <stdio.h>
1181 #include <sys/types.h>
1184 FILE *f=fopen("conftestval", "w");
1186 fprintf(f, "%d\n", sizeof(off_t));
1189 ac_cv_sizeof_off_t=`cat conftestval`,
1190 ac_cv_sizeof_off_t=0,
1191 ac_cv_sizeof_off_t=4)
1193 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1194 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1195 [The number of bytes in an off_t.])
1197 AC_MSG_CHECKING(whether to enable large file support)
1198 if test "$have_long_long" = yes -a \
1199 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1200 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1201 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1202 [Defined to enable large file support when an off_t is bigger than a long
1203 and long long is available and at least as big as an off_t. You may need
1204 to add some flags for configuration and compilation to enable this mode.
1205 (For Solaris and Linux, the necessary defines are already defined.)])
1211 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1212 AC_MSG_CHECKING(size of time_t)
1213 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1214 [AC_TRY_RUN([#include <stdio.h>
1218 FILE *f=fopen("conftestval", "w");
1220 fprintf(f, "%d\n", sizeof(time_t));
1223 ac_cv_sizeof_time_t=`cat conftestval`,
1224 ac_cv_sizeof_time_t=0,
1225 ac_cv_sizeof_time_t=4)
1227 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1228 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1229 [The number of bytes in a time_t.])
1232 # if have pthread_t then define SIZEOF_PTHREAD_T
1234 if test "$ac_cv_kpthread" = "yes"
1235 then CC="$CC -Kpthread"
1236 elif test "$ac_cv_kthread" = "yes"
1237 then CC="$CC -Kthread"
1238 elif test "$ac_cv_pthread" = "yes"
1239 then CC="$CC -pthread"
1241 AC_MSG_CHECKING(for pthread_t)
1243 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1244 AC_MSG_RESULT($have_pthread_t)
1245 if test "$have_pthread_t" = yes ; then
1246 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1247 AC_MSG_CHECKING(size of pthread_t)
1248 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1249 [AC_TRY_RUN([#include <stdio.h>
1250 #include <pthread.h>
1253 FILE *f=fopen("conftestval", "w");
1255 fprintf(f, "%d\n", sizeof(pthread_t));
1258 ac_cv_sizeof_pthread_t=`cat conftestval`,
1259 ac_cv_sizeof_pthread_t=0,
1260 ac_cv_sizeof_pthread_t=4)
1262 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1263 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1264 [The number of bytes in a pthread_t.])
1268 AC_MSG_CHECKING(for --enable-toolbox-glue)
1269 AC_ARG_ENABLE(toolbox-glue,
1270 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
1272 if test -z "$enable_toolbox_glue"
1274 case $ac_sys_system/$ac_sys_release in
1276 enable_toolbox_glue="yes";;
1278 enable_toolbox_glue="no";;
1281 case "$enable_toolbox_glue" in
1283 extra_machdep_objs="Python/mactoolboxglue.o"
1284 extra_undefs="-u _PyMac_Error"
1285 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1286 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
1289 extra_machdep_objs=""
1293 AC_MSG_RESULT($enable_toolbox_glue)
1295 AC_SUBST(OTHER_LIBTOOL_OPT)
1296 case $ac_sys_system/$ac_sys_release in
1297 Darwin/@<:@01567@:>@\..*)
1298 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1301 OTHER_LIBTOOL_OPT=""
1305 AC_SUBST(LIBTOOL_CRUFT)
1306 case $ac_sys_system/$ac_sys_release in
1307 Darwin/@<:@01567@:>@\..*)
1308 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1309 if test "${enable_universalsdk}"; then
1312 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
1314 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1315 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1317 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1318 if test ${gcc_version} '<' 4.0
1320 LIBTOOL_CRUFT="-lcc_dynamic"
1324 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1325 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1326 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1329 AC_MSG_CHECKING(for --enable-framework)
1330 if test "$enable_framework"
1332 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1333 # -F. is needed to allow linking to the framework while
1334 # in the build location.
1335 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1336 [Define if you want to produce an OpenStep/Rhapsody framework
1337 (shared library plus accessory files).])
1343 AC_MSG_CHECKING(for dyld)
1344 case $ac_sys_system/$ac_sys_release in
1346 AC_DEFINE(WITH_DYLD, 1,
1347 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1348 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1349 linker (rld). Dyld is necessary to support frameworks.])
1350 AC_MSG_RESULT(always on for Darwin)
1357 # Set info about shared libraries.
1362 AC_SUBST(LINKFORSHARED)
1363 # SO is the extension of shared libraries `(including the dot!)
1364 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1368 case $ac_sys_system in
1379 # this might also be a termcap variable, see #610332
1381 echo '====================================================================='
1383 echo '+ WARNING: You have set SO in your environment. +'
1384 echo '+ Do you really mean to change the extension for shared libraries? +'
1385 echo '+ Continuing in 10 seconds to let you to ponder. +'
1387 echo '====================================================================='
1391 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1392 # LDSHARED is the ld *command* used to create shared library
1393 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1394 # (Shared libraries in this instance are shared modules to be loaded into
1395 # Python, as opposed to building Python itself as a shared library.)
1396 AC_MSG_CHECKING(LDSHARED)
1397 if test -z "$LDSHARED"
1399 case $ac_sys_system/$ac_sys_release in
1401 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1402 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1405 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
1406 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
1408 IRIX/5*) LDSHARED="ld -shared";;
1409 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1411 if test "$GCC" = "yes"
1412 then LDSHARED='$(CC) -shared'
1413 else LDSHARED='$(CC) -G';
1415 hp*|HP*) LDSHARED="ld -b";;
1416 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1418 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1419 if test "$enable_framework" ; then
1420 # Link against the framework. All externals should be defined.
1421 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1422 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1424 # No framework. Ignore undefined symbols, assuming they come from Python
1425 LDSHARED="$LDSHARED -undefined suppress"
1427 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1428 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1429 if test "$enable_framework" ; then
1430 # Link against the framework. All externals should be defined.
1431 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1432 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1434 # No framework, use the Python app as bundle-loader
1435 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1436 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1439 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1440 # This allows an extension to be used in any Python
1441 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
1442 if test ${cur_target} '>' 10.2; then
1445 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
1446 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
1447 if test ${MACOSX_DEPLOYMENT_TARGET-${cur_target}} '>' 10.2
1449 if test "${enable_universalsdk}"; then
1450 LDFLAGS="-arch i386 -arch ppc -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1452 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1453 BLDSHARED="$LDSHARED"
1455 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1456 if test "$enable_framework" ; then
1457 # Link against the framework. All externals should be defined.
1458 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1459 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1461 # No framework, use the Python app as bundle-loader
1462 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1463 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1467 Linux*|GNU*) LDSHARED='$(CC) -shared';;
1468 BSD/OS*/4*) LDSHARED="gcc -shared";;
1470 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1472 LDSHARED="$CC -shared ${LDFLAGS}"
1474 LDSHARED="ld -Bshareable ${LDFLAGS}"
1476 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1477 OpenUNIX*|UnixWare*)
1478 if test "$GCC" = "yes"
1479 then LDSHARED='$(CC) -shared'
1480 else LDSHARED='$(CC) -G'
1482 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1483 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1484 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1485 atheos*) LDSHARED="gcc -shared";;
1489 AC_MSG_RESULT($LDSHARED)
1490 BLDSHARED=${BLDSHARED-$LDSHARED}
1491 # CCSHARED are the C *flags* used to create objects to go into a shared
1492 # library (module) -- this is only needed for a few systems
1493 AC_MSG_CHECKING(CCSHARED)
1494 if test -z "$CCSHARED"
1496 case $ac_sys_system/$ac_sys_release in
1497 SunOS*) if test "$GCC" = yes;
1498 then CCSHARED="-fPIC";
1499 else CCSHARED="-xcode=pic32";
1501 hp*|HP*) if test "$GCC" = yes;
1502 then CCSHARED="-fPIC";
1505 Linux*|GNU*) CCSHARED="-fPIC";;
1506 BSD/OS*/4*) CCSHARED="-fpic";;
1507 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1508 OpenUNIX*|UnixWare*)
1509 if test "$GCC" = "yes"
1510 then CCSHARED="-fPIC"
1511 else CCSHARED="-KPIC"
1514 if test "$GCC" = "yes"
1515 then CCSHARED="-fPIC"
1516 else CCSHARED="-Kpic -belf"
1518 Monterey*) CCSHARED="-G";;
1519 IRIX*/6*) case $CC in
1520 *gcc*) CCSHARED="-shared";;
1523 atheos*) CCSHARED="-fPIC";;
1526 AC_MSG_RESULT($CCSHARED)
1527 # LINKFORSHARED are the flags passed to the $(CC) command that links
1528 # the python executable -- this is only needed for a few systems
1529 AC_MSG_CHECKING(LINKFORSHARED)
1530 if test -z "$LINKFORSHARED"
1532 case $ac_sys_system/$ac_sys_release in
1533 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1535 LINKFORSHARED="-Wl,-E -Wl,+s";;
1536 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1537 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1538 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1539 # -u libsys_s pulls in all symbols in libsys
1541 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1543 # not used by the core itself but which needs to be in the core so
1544 # that dynamically loaded extension modules have access to it.
1545 # -prebind is no longer used, because it actually seems to give a
1546 # slowdown in stead of a speedup, maybe due to the large number of
1547 # dynamic loads Python does.
1549 LINKFORSHARED="$extra_undefs"
1550 if test "$enable_framework"
1552 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1554 LINKFORSHARED="$LINKFORSHARED";;
1555 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1556 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1557 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1558 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1559 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1561 LINKFORSHARED="-Wl,--export-dynamic"
1563 SunOS/5*) case $CC in
1565 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1567 LINKFORSHARED="-Xlinker --export-dynamic"
1571 if test $enable_shared = "no"
1573 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1577 AC_MSG_RESULT($LINKFORSHARED)
1579 AC_SUBST(CFLAGSFORSHARED)
1580 AC_MSG_CHECKING(CFLAGSFORSHARED)
1581 if test ! "$LIBRARY" = "$LDLIBRARY"
1583 case $ac_sys_system in
1585 # Cygwin needs CCSHARED when building extension DLLs
1586 # but not when building the interpreter DLL.
1587 CFLAGSFORSHARED='';;
1589 CFLAGSFORSHARED='$(CCSHARED)'
1592 AC_MSG_RESULT($CFLAGSFORSHARED)
1594 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1595 # library (with --enable-shared).
1596 # For platforms on which shared libraries are not allowed to have unresolved
1597 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1598 # if it is not required, since it creates a dependency of the shared library
1599 # to LIBS. This, in turn, means that applications linking the shared libpython
1600 # don't need to link LIBS explicitly. The default should be only changed
1601 # on systems where this approach causes problems.
1603 AC_MSG_CHECKING(SHLIBS)
1604 case "$ac_sys_system" in
1608 AC_MSG_RESULT($SHLIBS)
1611 # checks for libraries
1612 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1613 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1615 # only check for sem_ini if thread support is requested
1616 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1617 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1618 # posix4 on Solaris 2.6
1619 # pthread (first!) on Linux
1622 # check if we need libintl for locale functions
1623 AC_CHECK_LIB(intl, textdomain,
1624 AC_DEFINE(WITH_LIBINTL, 1,
1625 [Define to 1 if libintl is needed for locale functions.]))
1627 # checks for system dependent C++ extensions support
1628 case "$ac_sys_system" in
1629 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1630 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1631 [loadAndInit("", 0, "")],
1632 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1633 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1634 and you want support for AIX C++ shared extension modules.])
1635 AC_MSG_RESULT(yes)],
1636 [AC_MSG_RESULT(no)]);;
1640 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1641 # BeOS' sockets are stashed in libnet.
1642 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1643 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1645 case "$ac_sys_system" in
1647 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1651 AC_MSG_CHECKING(for --with-libs)
1653 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1655 AC_MSG_RESULT($withval)
1656 LIBS="$withval $LIBS"
1658 [AC_MSG_RESULT(no)])
1660 # Check for use of the system libffi library
1661 AC_MSG_CHECKING(for --with-system-ffi)
1662 AC_ARG_WITH(system_ffi,
1663 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1665 if test -z "$with_system_ffi"
1666 then with_system_ffi="no"
1668 AC_MSG_RESULT($with_system_ffi)
1670 # Determine if signalmodule should be used.
1671 AC_SUBST(USE_SIGNAL_MODULE)
1672 AC_SUBST(SIGNAL_OBJS)
1673 AC_MSG_CHECKING(for --with-signal-module)
1674 AC_ARG_WITH(signal-module,
1675 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1677 if test -z "$with_signal_module"
1678 then with_signal_module="yes"
1680 AC_MSG_RESULT($with_signal_module)
1682 if test "${with_signal_module}" = "yes"; then
1683 USE_SIGNAL_MODULE=""
1686 USE_SIGNAL_MODULE="#"
1687 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1690 # This is used to generate Setup.config
1691 AC_SUBST(USE_THREAD_MODULE)
1692 USE_THREAD_MODULE=""
1694 AC_MSG_CHECKING(for --with-dec-threads)
1696 AC_ARG_WITH(dec-threads,
1697 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1699 AC_MSG_RESULT($withval)
1701 if test "${with_thread+set}" != set; then
1702 with_thread="$withval";
1704 [AC_MSG_RESULT(no)])
1706 # Templates for things AC_DEFINEd more than once.
1707 # For a single AC_DEFINE, no template is needed.
1708 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1709 AH_TEMPLATE(_REENTRANT,
1710 [Define to force use of thread-safe errno, h_errno, and other functions])
1711 AH_TEMPLATE(WITH_THREAD,
1712 [Define if you want to compile in rudimentary thread support])
1714 AC_MSG_CHECKING(for --with-threads)
1715 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1716 AC_ARG_WITH(threads,
1717 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1719 # --with-thread is deprecated, but check for it anyway
1720 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1722 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1723 [with_threads=$with_thread])
1725 if test -z "$with_threads"
1726 then with_threads="yes"
1728 AC_MSG_RESULT($with_threads)
1731 if test "$with_threads" = "no"
1733 USE_THREAD_MODULE="#"
1734 elif test "$ac_cv_pthread_is_default" = yes
1736 AC_DEFINE(WITH_THREAD)
1737 # Defining _REENTRANT on system with POSIX threads should not hurt.
1738 AC_DEFINE(_REENTRANT)
1740 THREADOBJ="Python/thread.o"
1741 elif test "$ac_cv_kpthread" = "yes"
1744 if test "$ac_cv_cxx_thread" = "yes"; then
1745 CXX="$CXX -Kpthread"
1747 AC_DEFINE(WITH_THREAD)
1749 THREADOBJ="Python/thread.o"
1750 elif test "$ac_cv_kthread" = "yes"
1753 if test "$ac_cv_cxx_thread" = "yes"; then
1756 AC_DEFINE(WITH_THREAD)
1758 THREADOBJ="Python/thread.o"
1759 elif test "$ac_cv_pthread" = "yes"
1762 if test "$ac_cv_cxx_thread" = "yes"; then
1765 AC_DEFINE(WITH_THREAD)
1767 THREADOBJ="Python/thread.o"
1769 if test ! -z "$with_threads" -a -d "$with_threads"
1770 then LDFLAGS="$LDFLAGS -L$with_threads"
1772 if test ! -z "$withval" -a -d "$withval"
1773 then LDFLAGS="$LDFLAGS -L$withval"
1776 # According to the POSIX spec, a pthreads implementation must
1777 # define _POSIX_THREADS in unistd.h. Some apparently don't
1778 # (e.g. gnu pth with pthread emulation)
1779 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1783 #ifdef _POSIX_THREADS
1786 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1787 AC_MSG_RESULT($unistd_defines_pthreads)
1789 AC_DEFINE(_REENTRANT)
1790 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1791 AC_DEFINE(C_THREADS)
1792 AC_DEFINE(HURD_C_THREADS, 1,
1793 [Define if you are using Mach cthreads directly under /include])
1794 LIBS="$LIBS -lthreads"
1795 THREADOBJ="Python/thread.o"],[
1796 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1797 AC_DEFINE(C_THREADS)
1798 AC_DEFINE(MACH_C_THREADS, 1,
1799 [Define if you are using Mach cthreads under mach /])
1800 THREADOBJ="Python/thread.o"],[
1801 AC_MSG_CHECKING(for --with-pth)
1803 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1804 [AC_MSG_RESULT($withval)
1805 AC_DEFINE([WITH_THREAD])
1806 AC_DEFINE([HAVE_PTH], 1,
1807 [Define if you have GNU PTH threads.])
1809 THREADOBJ="Python/thread.o"],
1812 # Just looking for pthread_create in libpthread is not enough:
1813 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1814 # So we really have to include pthread.h, and then link.
1816 LIBS="$LIBS -lpthread"
1817 AC_MSG_CHECKING([for pthread_create in -lpthread])
1818 AC_TRY_LINK([#include <pthread.h>
1820 void * start_routine (void *arg) { exit (0); }], [
1821 pthread_create (NULL, NULL, start_routine, NULL)], [
1823 AC_DEFINE(WITH_THREAD)
1825 THREADOBJ="Python/thread.o"],[
1827 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
1829 THREADOBJ="Python/thread.o"],[
1830 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1831 AC_DEFINE(ATHEOS_THREADS, 1,
1832 [Define this if you have AtheOS threads.])
1833 THREADOBJ="Python/thread.o"],[
1834 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
1835 AC_DEFINE(BEOS_THREADS, 1,
1836 [Define this if you have BeOS threads.])
1837 THREADOBJ="Python/thread.o"],[
1838 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
1840 LIBS="$LIBS -lpthreads"
1841 THREADOBJ="Python/thread.o"], [
1842 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
1845 THREADOBJ="Python/thread.o"], [
1846 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
1848 LIBS="$LIBS -lpthread"
1849 THREADOBJ="Python/thread.o"], [
1850 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
1853 THREADOBJ="Python/thread.o"],[
1854 USE_THREAD_MODULE="#"])
1855 ])])])])])])])])])])
1857 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1859 THREADOBJ="Python/thread.o"
1860 USE_THREAD_MODULE=""])
1862 if test "$posix_threads" != "yes"; then
1863 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1864 LIBS="$LIBS -lthread"
1865 THREADOBJ="Python/thread.o"
1866 USE_THREAD_MODULE=""])
1869 if test "$USE_THREAD_MODULE" != "#"
1871 # If the above checks didn't disable threads, (at least) OSF1
1872 # needs this '-threads' argument during linking.
1873 case $ac_sys_system in
1874 OSF1) LDLAST=-threads;;
1879 if test "$posix_threads" = "yes"; then
1880 if test "$unistd_defines_pthreads" = "no"; then
1881 AC_DEFINE(_POSIX_THREADS, 1,
1882 [Define if you have POSIX threads,
1883 and your system does not define that.])
1886 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1887 case $ac_sys_system/$ac_sys_release in
1888 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1889 Defined for Solaris 2.6 bug in pthread header.)
1891 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
1892 Define if the Posix semaphores do not work on your system)
1896 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1897 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1898 [AC_TRY_RUN([#include <pthread.h>
1899 void *foo(void *parm) {
1903 pthread_attr_t attr;
1905 if (pthread_attr_init(&attr)) exit(-1);
1906 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
1907 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
1910 ac_cv_pthread_system_supported=yes,
1911 ac_cv_pthread_system_supported=no,
1912 ac_cv_pthread_system_supported=no)
1914 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1915 if test "$ac_cv_pthread_system_supported" = "yes"; then
1916 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
1918 AC_CHECK_FUNCS(pthread_sigmask,
1919 [case $ac_sys_system in
1921 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1922 [Define if pthread_sigmask() does not work on your system.])
1928 # Check for enable-ipv6
1929 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
1930 AC_MSG_CHECKING([if --enable-ipv6 is specified])
1932 [ --enable-ipv6 Enable ipv6 (with ipv4) support
1933 --disable-ipv6 Disable ipv6 support],
1934 [ case "$enableval" in
1939 *) AC_MSG_RESULT(yes)
1940 AC_DEFINE(ENABLE_IPV6)
1946 dnl the check does not work on cross compilation case...
1947 AC_TRY_RUN([ /* AF_INET6 available check */
1948 #include <sys/types.h>
1949 #include <sys/socket.h>
1952 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1966 if test "$ipv6" = "yes"; then
1967 AC_MSG_CHECKING(if RFC2553 API is available)
1968 AC_TRY_COMPILE([#include <sys/types.h>
1969 #include <netinet/in.h>],
1970 [struct sockaddr_in6 x;
1974 AC_MSG_RESULT(no, IPv6 disabled)
1978 if test "$ipv6" = "yes"; then
1979 AC_DEFINE(ENABLE_IPV6)
1987 if test "$ipv6" = "yes"; then
1988 AC_MSG_CHECKING([ipv6 stack type])
1989 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1993 dnl http://www.kame.net/
1995 #include <netinet/in.h>
1996 #ifdef IPV6_INRIA_VERSION
2002 dnl http://www.kame.net/
2004 #include <netinet/in.h>
2010 ipv6libdir=/usr/local/v6/lib
2014 dnl http://www.v6.linux.or.jp/
2016 #include <features.h>
2017 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2024 dnl http://www.v6.linux.or.jp/
2025 if test -d /usr/inet6; then
2028 ipv6libdir=/usr/inet6/lib
2029 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2033 if test -f /etc/netconfig; then
2034 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2042 #include <sys/param.h>
2043 #ifdef _TOSHIBA_INET6
2048 ipv6libdir=/usr/local/v6/lib])
2052 #include </usr/local/v6/include/sys/v6config.h>
2058 ipv6libdir=/usr/local/v6/lib;
2059 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2063 #include <sys/param.h>
2064 #ifdef _ZETA_MINAMI_INET6
2069 ipv6libdir=/usr/local/v6/lib])
2072 if test "$ipv6type" != "unknown"; then
2076 AC_MSG_RESULT($ipv6type)
2079 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2080 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2081 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2082 echo "using lib$ipv6lib"
2084 if test $ipv6trylibc = "yes"; then
2087 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2088 echo "You need to fetch lib$ipv6lib.a from appropriate"
2089 echo 'ipv6 kit and compile beforehand.'
2095 # Check for --with-doc-strings
2096 AC_MSG_CHECKING(for --with-doc-strings)
2097 AC_ARG_WITH(doc-strings,
2098 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2100 if test -z "$with_doc_strings"
2101 then with_doc_strings="yes"
2103 if test "$with_doc_strings" != "no"
2105 AC_DEFINE(WITH_DOC_STRINGS, 1,
2106 [Define if you want documentation strings in extension modules])
2108 AC_MSG_RESULT($with_doc_strings)
2110 # Check for Python-specific malloc support
2111 AC_MSG_CHECKING(for --with-tsc)
2113 [ --with(out)-tsc enable/disable timestamp counter profile], [
2114 if test "$withval" != no
2116 AC_DEFINE(WITH_TSC, 1,
2117 [Define to profile with the Pentium timestamp counter])
2119 else AC_MSG_RESULT(no)
2121 [AC_MSG_RESULT(no)])
2123 # Check for Python-specific malloc support
2124 AC_MSG_CHECKING(for --with-pymalloc)
2125 AC_ARG_WITH(pymalloc,
2126 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2128 if test -z "$with_pymalloc"
2129 then with_pymalloc="yes"
2131 if test "$with_pymalloc" != "no"
2133 AC_DEFINE(WITH_PYMALLOC, 1,
2134 [Define if you want to compile in Python-specific mallocs])
2136 AC_MSG_RESULT($with_pymalloc)
2138 # Check for --with-wctype-functions
2139 AC_MSG_CHECKING(for --with-wctype-functions)
2140 AC_ARG_WITH(wctype-functions,
2141 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2143 if test "$withval" != no
2145 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2146 [Define if you want wctype.h functions to be used instead of the
2147 one supplied by Python itself. (see Include/unicodectype.h).])
2149 else AC_MSG_RESULT(no)
2151 [AC_MSG_RESULT(no)])
2153 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2157 # the dlopen() function means we might want to use dynload_shlib.o. some
2158 # platforms, such as AIX, have dlopen(), but don't want to use it.
2159 AC_CHECK_FUNCS(dlopen)
2161 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2162 # loading of modules.
2163 AC_SUBST(DYNLOADFILE)
2164 AC_MSG_CHECKING(DYNLOADFILE)
2165 if test -z "$DYNLOADFILE"
2167 case $ac_sys_system/$ac_sys_release in
2168 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2169 if test "$ac_cv_func_dlopen" = yes
2170 then DYNLOADFILE="dynload_shlib.o"
2171 else DYNLOADFILE="dynload_aix.o"
2174 BeOS*) DYNLOADFILE="dynload_beos.o";;
2175 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2176 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2177 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2178 atheos*) DYNLOADFILE="dynload_atheos.o";;
2180 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2181 # out any dynamic loading
2182 if test "$ac_cv_func_dlopen" = yes
2183 then DYNLOADFILE="dynload_shlib.o"
2184 else DYNLOADFILE="dynload_stub.o"
2189 AC_MSG_RESULT($DYNLOADFILE)
2190 if test "$DYNLOADFILE" != "dynload_stub.o"
2192 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2193 [Defined when any dynamic module loading is enabled.])
2196 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2198 AC_SUBST(MACHDEP_OBJS)
2199 AC_MSG_CHECKING(MACHDEP_OBJS)
2200 if test -z "$MACHDEP_OBJS"
2202 MACHDEP_OBJS=$extra_machdep_objs
2204 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2206 AC_MSG_RESULT(MACHDEP_OBJS)
2208 # checks for library functions
2209 AC_CHECK_FUNCS(alarm bind_textdomain_codeset chown clock confstr ctermid \
2210 execv fork fpathconf ftime ftruncate \
2211 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2212 getpriority getpwent getspnam getspent getsid getwd \
2213 kill killpg lchown lstat mkfifo mknod mktime \
2214 mremap nice pathconf pause plock poll pthread_init \
2215 putenv readlink realpath \
2216 select setegid seteuid setgid \
2217 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2218 sigaction siginterrupt sigrelse strftime \
2219 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2220 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll _getpty)
2222 # For some functions, having a definition is not sufficient, since
2223 # we want to take their address.
2224 AC_MSG_CHECKING(for chroot)
2225 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2226 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2230 AC_MSG_CHECKING(for link)
2231 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2232 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2236 AC_MSG_CHECKING(for symlink)
2237 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2238 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2242 AC_MSG_CHECKING(for fchdir)
2243 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2244 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2248 AC_MSG_CHECKING(for fsync)
2249 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2250 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2254 AC_MSG_CHECKING(for fdatasync)
2255 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2256 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2261 # On some systems (eg. FreeBSD 5), we would find a definition of the
2262 # functions ctermid_r, setgroups in the library, but no prototype
2263 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2264 # address to avoid compiler warnings and potential miscompilations
2265 # because of the missing prototypes.
2267 AC_MSG_CHECKING(for ctermid_r)
2269 #include "confdefs.h"
2271 ], void* p = ctermid_r,
2272 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2277 AC_MSG_CHECKING(for flock)
2279 #include "confdefs.h"
2280 #include <sys/file.h>
2282 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2287 AC_MSG_CHECKING(for getpagesize)
2289 #include "confdefs.h"
2291 ], void* p = getpagesize,
2292 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2298 AC_CHECK_PROGS(TRUE, true, /bin/true)
2300 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2301 dnl On others, they are in the C library, so we to take no action
2302 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2303 AC_CHECK_LIB(resolv, inet_aton)
2306 AC_MSG_CHECKING(for hstrerror)
2308 #include "confdefs.h"
2310 ], void* p = hstrerror; hstrerror(0),
2311 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2316 AC_MSG_CHECKING(for inet_aton)
2318 #include "confdefs.h"
2319 #include <sys/types.h>
2320 #include <sys/socket.h>
2321 #include <netinet/in.h>
2322 #include <arpa/inet.h>
2323 ], void* p = inet_aton;inet_aton(0,0),
2324 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2329 AC_MSG_CHECKING(for inet_pton)
2331 #include "confdefs.h"
2332 #include <sys/types.h>
2333 #include <sys/socket.h>
2334 #include <netinet/in.h>
2335 #include <arpa/inet.h>
2336 ], void* p = inet_pton,
2337 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2342 # On some systems, setgroups is in unistd.h, on others, in grp.h
2343 AC_MSG_CHECKING(for setgroups)
2345 #include "confdefs.h"
2351 void* p = setgroups,
2352 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2357 # check for openpty and forkpty
2359 AC_CHECK_FUNCS(openpty,,
2360 AC_CHECK_LIB(util,openpty,
2361 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2362 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2365 AC_CHECK_FUNCS(forkpty,,
2366 AC_CHECK_LIB(util,forkpty,
2367 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2368 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2372 # check for long file support functions
2373 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2375 AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
2376 AC_CHECK_FUNCS(getpgrp,
2377 AC_TRY_COMPILE([#include <unistd.h>],
2379 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2380 [Define if getpgrp() must be called as getpgrp(0).])
2383 AC_CHECK_FUNCS(setpgrp,
2384 AC_TRY_COMPILE([#include <unistd.h>],
2386 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2387 [Define if setpgrp() must be called as setpgrp(0, 0).])
2390 AC_CHECK_FUNCS(gettimeofday,
2391 AC_TRY_COMPILE([#include <sys/time.h>],
2392 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2393 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2394 [Define if gettimeofday() does not have second (timezone) argument
2395 This is the case on Motorola V4 (R40V4.2)])
2399 AC_MSG_CHECKING(for major, minor, and makedev)
2401 #if defined(MAJOR_IN_MKDEV)
2402 #include <sys/mkdev.h>
2403 #elif defined(MAJOR_IN_SYSMACROS)
2404 #include <sys/sysmacros.h>
2406 #include <sys/types.h>
2409 makedev(major(0),minor(0));
2411 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2412 [Define to 1 if you have the device macros.])
2418 # On OSF/1 V5.1, getaddrinfo is available, but a define
2419 # for [no]getaddrinfo in netdb.h.
2420 AC_MSG_CHECKING(for getaddrinfo)
2422 #include <sys/types.h>
2423 #include <sys/socket.h>
2427 getaddrinfo(NULL, NULL, NULL, NULL);
2430 AC_MSG_CHECKING(getaddrinfo bug)
2432 #include <sys/types.h>
2435 #include <sys/socket.h>
2436 #include <netinet/in.h>
2440 int passive, gaierr, inet4 = 0, inet6 = 0;
2441 struct addrinfo hints, *ai, *aitop;
2442 char straddr[INET6_ADDRSTRLEN], strport[16];
2444 for (passive = 0; passive <= 1; passive++) {
2445 memset(&hints, 0, sizeof(hints));
2446 hints.ai_family = AF_UNSPEC;
2447 hints.ai_flags = passive ? AI_PASSIVE : 0;
2448 hints.ai_socktype = SOCK_STREAM;
2449 hints.ai_protocol = IPPROTO_TCP;
2450 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2451 (void)gai_strerror(gaierr);
2454 for (ai = aitop; ai; ai = ai->ai_next) {
2455 if (ai->ai_addr == NULL ||
2456 ai->ai_addrlen == 0 ||
2457 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2458 straddr, sizeof(straddr), strport, sizeof(strport),
2459 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2462 switch (ai->ai_family) {
2464 if (strcmp(strport, "54321") != 0) {
2468 if (strcmp(straddr, "0.0.0.0") != 0) {
2472 if (strcmp(straddr, "127.0.0.1") != 0) {
2479 if (strcmp(strport, "54321") != 0) {
2483 if (strcmp(straddr, "::") != 0) {
2487 if (strcmp(straddr, "::1") != 0) {
2497 /* another family support? */
2503 if (!(inet4 == 0 || inet4 == 2))
2505 if (!(inet6 == 0 || inet6 == 2))
2509 freeaddrinfo(aitop);
2514 freeaddrinfo(aitop);
2519 buggygetaddrinfo=no,
2520 AC_MSG_RESULT(buggy)
2521 buggygetaddrinfo=yes,
2522 AC_MSG_RESULT(buggy)
2523 buggygetaddrinfo=yes)], [
2525 buggygetaddrinfo=yes
2528 if test "$buggygetaddrinfo" = "yes"; then
2529 if test "$ipv6" = "yes"; then
2530 echo 'Fatal: You must get working getaddrinfo() function.'
2531 echo ' or you can specify "--disable-ipv6"'.
2535 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2537 AC_CHECK_FUNCS(getnameinfo)
2539 # checks for structures
2543 AC_CHECK_MEMBERS([struct stat.st_rdev])
2544 AC_CHECK_MEMBERS([struct stat.st_blksize])
2545 AC_CHECK_MEMBERS([struct stat.st_flags])
2546 AC_CHECK_MEMBERS([struct stat.st_gen])
2547 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2550 AC_MSG_CHECKING(for time.h that defines altzone)
2551 AC_CACHE_VAL(ac_cv_header_time_altzone,
2552 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2553 ac_cv_header_time_altzone=yes,
2554 ac_cv_header_time_altzone=no)])
2555 AC_MSG_RESULT($ac_cv_header_time_altzone)
2556 if test $ac_cv_header_time_altzone = yes; then
2557 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2561 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2563 #include <sys/types.h>
2564 #include <sys/select.h>
2565 #include <sys/time.h>
2567 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2568 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2569 (which you can't on SCO ODT 3.0).])
2572 AC_MSG_RESULT($was_it_defined)
2574 AC_MSG_CHECKING(for addrinfo)
2575 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2577 # include <netdb.h>],
2578 [struct addrinfo a],
2579 ac_cv_struct_addrinfo=yes,
2580 ac_cv_struct_addrinfo=no))
2581 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2582 if test $ac_cv_struct_addrinfo = yes; then
2583 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2586 AC_MSG_CHECKING(for sockaddr_storage)
2587 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2589 # include <sys/types.h>
2590 # include <sys/socket.h>],
2591 [struct sockaddr_storage s],
2592 ac_cv_struct_sockaddr_storage=yes,
2593 ac_cv_struct_sockaddr_storage=no))
2594 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2595 if test $ac_cv_struct_sockaddr_storage = yes; then
2596 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2599 # checks for compiler characteristics
2605 AC_MSG_CHECKING(for working volatile)
2606 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2607 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2609 AC_MSG_RESULT($works)
2612 AC_MSG_CHECKING(for working signed char)
2613 AC_TRY_COMPILE([], [signed char c;], works=yes,
2614 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2616 AC_MSG_RESULT($works)
2619 AC_MSG_CHECKING(for prototypes)
2620 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2621 AC_DEFINE(HAVE_PROTOTYPES, 1,
2622 [Define if your compiler supports function prototype])
2625 AC_MSG_RESULT($have_prototypes)
2628 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2631 int foo(int x, ...) {
2639 ], [return foo(10, "", 3.14);], [
2640 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2641 [Define if your compiler supports variable length function prototypes
2642 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2645 AC_MSG_RESULT($works)
2647 # check for socketpair
2648 AC_MSG_CHECKING(for socketpair)
2650 #include <sys/types.h>
2651 #include <sys/socket.h>
2652 ], void *x=socketpair,
2653 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2658 # check if sockaddr has sa_len member
2659 AC_MSG_CHECKING(if sockaddr has sa_len member)
2660 AC_TRY_COMPILE([#include <sys/types.h>
2661 #include <sys/socket.h>],
2665 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2669 AC_MSG_CHECKING(whether va_list is an array)
2671 #ifdef HAVE_STDARG_PROTOTYPES
2674 #include <varargs.h>
2676 ], [va_list list1, list2; list1 = list2;], , [
2677 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2678 va_list_is_array=yes
2680 AC_MSG_RESULT($va_list_is_array)
2682 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2683 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2684 [Define this if you have some version of gethostbyname_r()])
2686 AC_CHECK_FUNC(gethostbyname_r, [
2687 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2688 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2690 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2695 struct hostent *he, *res;
2700 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2702 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2703 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2704 [Define this if you have the 6-arg version of gethostbyname_r().])
2708 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2718 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2720 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2721 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2722 [Define this if you have the 5-arg version of gethostbyname_r().])
2726 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2732 struct hostent_data data;
2734 (void) gethostbyname_r(name, he, &data);
2736 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2737 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2738 [Define this if you have the 3-arg version of gethostbyname_r().])
2747 AC_CHECK_FUNCS(gethostbyname)
2749 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2750 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2751 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
2752 AC_SUBST(HAVE_GETHOSTBYNAME_R)
2753 AC_SUBST(HAVE_GETHOSTBYNAME)
2755 # checks for system services
2758 # Linux requires this for correct f.p. operations
2759 AC_CHECK_FUNC(__fpu_control,
2761 [AC_CHECK_LIB(ieee, __fpu_control)
2764 # Check for --with-fpectl
2765 AC_MSG_CHECKING(for --with-fpectl)
2767 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2769 if test "$withval" != no
2771 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2772 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2774 else AC_MSG_RESULT(no)
2776 [AC_MSG_RESULT(no)])
2778 # check for --with-libm=...
2780 case $ac_sys_system in
2785 AC_MSG_CHECKING(for --with-libm=STRING)
2787 AC_HELP_STRING(--with-libm=STRING, math library),
2789 if test "$withval" = no
2791 AC_MSG_RESULT(force LIBM empty)
2792 elif test "$withval" != yes
2794 AC_MSG_RESULT(set LIBM="$withval")
2795 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
2797 [AC_MSG_RESULT(default LIBM="$LIBM")])
2799 # check for --with-libc=...
2801 AC_MSG_CHECKING(for --with-libc=STRING)
2803 AC_HELP_STRING(--with-libc=STRING, C library),
2805 if test "$withval" = no
2807 AC_MSG_RESULT(force LIBC empty)
2808 elif test "$withval" != yes
2810 AC_MSG_RESULT(set LIBC="$withval")
2811 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
2813 [AC_MSG_RESULT(default LIBC="$LIBC")])
2815 # check for hypot() in math library
2818 AC_REPLACE_FUNCS(hypot)
2822 AC_CHECK_HEADER(wchar.h, [
2823 AC_DEFINE(HAVE_WCHAR_H, 1,
2824 [Define if the compiler provides a wchar.h header file.])
2830 # determine wchar_t size
2831 if test "$wchar_h" = yes
2833 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
2836 AC_MSG_CHECKING(for UCS-4 tcl)
2840 #if TCL_UTF_MAX != 6
2841 # error "NOT UCS4_TCL"
2843 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2846 AC_MSG_RESULT($have_ucs4_tcl)
2848 # check whether wchar_t is signed or not
2849 if test "$wchar_h" = yes
2851 # check whether wchar_t is signed or not
2852 AC_MSG_CHECKING(whether wchar_t is signed)
2853 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2858 /* Success: exit code 0 */
2859 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
2862 ac_cv_wchar_t_signed=yes,
2863 ac_cv_wchar_t_signed=no,
2864 ac_cv_wchar_t_signed=yes)])
2865 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2868 AC_MSG_CHECKING(what type to use for unicode)
2869 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2870 AC_ARG_ENABLE(unicode,
2871 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2873 [enable_unicode=yes])
2875 if test $enable_unicode = yes
2877 # Without any arguments, Py_UNICODE defaults to two-byte mode
2878 case "$have_ucs4_tcl" in
2879 yes) enable_unicode="ucs4"
2881 *) enable_unicode="ucs2"
2886 AH_TEMPLATE(Py_UNICODE_SIZE,
2887 [Define as the size of the unicode type.])
2888 case "$enable_unicode" in
2889 ucs2) unicode_size="2"
2890 AC_DEFINE(Py_UNICODE_SIZE,2)
2892 ucs4) unicode_size="4"
2893 AC_DEFINE(Py_UNICODE_SIZE,4)
2897 AH_TEMPLATE(PY_UNICODE_TYPE,
2898 [Define as the integral type used for Unicode representation.])
2900 AC_SUBST(UNICODE_OBJS)
2901 if test "$enable_unicode" = "no"
2904 AC_MSG_RESULT(not used)
2906 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
2907 AC_DEFINE(Py_USING_UNICODE, 1,
2908 [Define if you want to have a Unicode type.])
2910 # wchar_t is only usable if it maps to an unsigned type
2911 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2912 -a "$ac_cv_wchar_t_signed" = "no"
2914 PY_UNICODE_TYPE="wchar_t"
2915 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2916 [Define if you have a useable wchar_t type defined in wchar.h; useable
2917 means wchar_t must be an unsigned type with at least 16 bits. (see
2918 Include/unicodeobject.h).])
2919 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2920 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2922 PY_UNICODE_TYPE="unsigned short"
2923 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2924 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2926 PY_UNICODE_TYPE="unsigned long"
2927 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2929 PY_UNICODE_TYPE="no type found"
2931 AC_MSG_RESULT($PY_UNICODE_TYPE)
2934 # check for endianness
2936 AH_VERBATIM([WORDS_BIGENDIAN],
2938 /* Define to 1 if your processor stores words with the most significant byte
2939 first (like Motorola and SPARC, unlike Intel and VAX).
2941 The block below does compile-time checking for endianness on platforms
2942 that use GCC and therefore allows compiling fat binaries on OSX by using
2943 '-arch ppc -arch i386' as the compile flags. The phrasing was choosen
2944 such that the configure-result is used on systems that don't use GCC.
2946 #ifdef __BIG_ENDIAN__
2947 #define WORDS_BIGENDIAN 1
2949 #ifndef __LITTLE_ENDIAN__
2950 #undef WORDS_BIGENDIAN
2954 # Check whether right shifting a negative integer extends the sign bit
2955 # or fills with zeros (like the Cray J90, according to Tim Peters).
2956 AC_MSG_CHECKING(whether right shift extends the sign bit)
2957 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
2961 exit(((-1)>>3 == -1) ? 0 : 1);
2964 ac_cv_rshift_extends_sign=yes,
2965 ac_cv_rshift_extends_sign=no,
2966 ac_cv_rshift_extends_sign=yes)])
2967 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2968 if test "$ac_cv_rshift_extends_sign" = no
2970 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2971 [Define if i>>j for signed int i does not extend the sign bit
2975 # check for getc_unlocked and related locking functions
2976 AC_MSG_CHECKING(for getc_unlocked() and friends)
2977 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2978 AC_TRY_LINK([#include <stdio.h>],[
2979 FILE *f = fopen("/dev/null", "r");
2983 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2984 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2985 if test "$ac_cv_have_getc_unlocked" = yes
2987 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2988 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
2991 # check where readline lives
2992 # save the value of LIBS so we don't actually link Python with readline
2993 LIBS_no_readline=$LIBS
2994 AC_CHECK_LIB(readline, readline)
2995 if test "$ac_cv_have_readline_readline" = no
2997 AC_CHECK_LIB(termcap, readline)
3000 # check for readline 2.1
3001 AC_CHECK_LIB(readline, rl_callback_handler_install,
3002 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3003 [Define if you have readline 2.1]), , )
3005 # check for readline 2.2
3006 AC_TRY_CPP([#include <readline/readline.h>],
3007 have_readline=yes, have_readline=no)
3008 if test $have_readline = yes
3010 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3011 [readline/readline.h],
3012 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3013 [Define if you have readline 2.2]), )
3016 # check for readline 4.0
3017 AC_CHECK_LIB(readline, rl_pre_input_hook,
3018 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3019 [Define if you have readline 4.0]), , )
3021 # check for readline 4.2
3022 AC_CHECK_LIB(readline, rl_completion_matches,
3023 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3024 [Define if you have readline 4.2]), , )
3026 # also in readline 4.2
3027 AC_TRY_CPP([#include <readline/readline.h>],
3028 have_readline=yes, have_readline=no)
3029 if test $have_readline = yes
3031 AC_EGREP_HEADER([extern int rl_catch_signals;],
3032 [readline/readline.h],
3033 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3034 [Define if you can turn off readline's signal handling.]), )
3037 # End of readline checks: restore LIBS
3038 LIBS=$LIBS_no_readline
3040 AC_MSG_CHECKING(for broken nice())
3041 AC_CACHE_VAL(ac_cv_broken_nice, [
3046 if (val1 != -1 && val1 == nice(2))
3051 ac_cv_broken_nice=yes,
3052 ac_cv_broken_nice=no,
3053 ac_cv_broken_nice=no)])
3054 AC_MSG_RESULT($ac_cv_broken_nice)
3055 if test "$ac_cv_broken_nice" = yes
3057 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3058 [Define if nice() returns success/failure instead of the new priority.])
3061 AC_MSG_CHECKING(for broken poll())
3067 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3071 int poll_test = poll (&poll_struct, 1, 0);
3077 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3087 ac_cv_broken_poll=yes,
3088 ac_cv_broken_poll=no,
3089 ac_cv_broken_poll=no)
3090 AC_MSG_RESULT($ac_cv_broken_poll)
3091 if test "$ac_cv_broken_poll" = yes
3093 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3094 [Define if poll() sets errno on invalid file descriptors.])
3097 # Before we can test tzset, we need to check if struct tm has a tm_zone
3098 # (which is not required by ISO C or UNIX spec) and/or if we support
3102 # check tzset(3) exists and works like we expect it to
3103 AC_MSG_CHECKING(for working tzset())
3104 AC_CACHE_VAL(ac_cv_working_tzset, [
3111 extern char *tzname[];
3116 /* Note that we need to ensure that not only does tzset(3)
3117 do 'something' with localtime, but it works as documented
3118 in the library reference and as expected by the test suite.
3119 This includes making sure that tzname is set properly if
3120 tm->tm_zone does not exist since it is the alternative way
3121 of getting timezone info.
3123 Red Hat 6.2 doesn't understand the southern hemisphere
3124 after New Year's Day.
3127 time_t groundhogday = 1044144000; /* GMT-based */
3128 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3132 if (localtime(&groundhogday)->tm_hour != 0)
3135 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3136 if (strcmp(tzname[0], "UTC") ||
3137 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3141 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3143 if (localtime(&groundhogday)->tm_hour != 19)
3146 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3150 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3152 if (localtime(&groundhogday)->tm_hour != 11)
3155 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3159 #if HAVE_STRUCT_TM_TM_ZONE
3160 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3162 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3169 ac_cv_working_tzset=yes,
3170 ac_cv_working_tzset=no,
3171 ac_cv_working_tzset=no)])
3172 AC_MSG_RESULT($ac_cv_working_tzset)
3173 if test "$ac_cv_working_tzset" = yes
3175 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3176 [Define if tzset() actually switches the local timezone in a meaningful way.])
3179 # Look for subsecond timestamps in struct stat
3180 AC_MSG_CHECKING(for tv_nsec in struct stat)
3181 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3182 AC_TRY_COMPILE([#include <sys/stat.h>], [
3184 st.st_mtim.tv_nsec = 1;
3186 ac_cv_stat_tv_nsec=yes,
3187 ac_cv_stat_tv_nsec=no,
3188 ac_cv_stat_tv_nsec=no))
3189 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3190 if test "$ac_cv_stat_tv_nsec" = yes
3192 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3193 [Define if you have struct stat.st_mtim.tv_nsec])
3196 # Look for BSD style subsecond timestamps in struct stat
3197 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3198 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3199 AC_TRY_COMPILE([#include <sys/stat.h>], [
3201 st.st_mtimespec.tv_nsec = 1;
3203 ac_cv_stat_tv_nsec2=yes,
3204 ac_cv_stat_tv_nsec2=no,
3205 ac_cv_stat_tv_nsec2=no))
3206 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3207 if test "$ac_cv_stat_tv_nsec2" = yes
3209 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3210 [Define if you have struct stat.st_mtimensec])
3213 # On HP/UX 11.0, mvwdelch is a block with a return statement
3214 AC_MSG_CHECKING(whether mvwdelch is an expression)
3215 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3216 AC_TRY_COMPILE([#include <curses.h>], [
3218 rtn = mvwdelch(0,0,0);
3219 ], ac_cv_mvwdelch_is_expression=yes,
3220 ac_cv_mvwdelch_is_expression=no,
3221 ac_cv_mvwdelch_is_expression=yes))
3222 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3224 if test "$ac_cv_mvwdelch_is_expression" = yes
3226 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3227 [Define if mvwdelch in curses.h is an expression.])
3230 AC_MSG_CHECKING(whether WINDOW has _flags)
3231 AC_CACHE_VAL(ac_cv_window_has_flags,
3232 AC_TRY_COMPILE([#include <curses.h>], [
3235 ], ac_cv_window_has_flags=yes,
3236 ac_cv_window_has_flags=no,
3237 ac_cv_window_has_flags=no))
3238 AC_MSG_RESULT($ac_cv_window_has_flags)
3241 if test "$ac_cv_window_has_flags" = yes
3243 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3244 [Define if WINDOW in curses.h offers a field _flags.])
3247 AC_MSG_CHECKING(for /dev/ptmx)
3249 if test -e /dev/ptmx
3252 AC_DEFINE(HAVE_DEV_PTMX, 1,
3253 [Define if we have /dev/ptmx.])
3258 AC_MSG_CHECKING(for /dev/ptc)
3263 AC_DEFINE(HAVE_DEV_PTC, 1,
3264 [Define if we have /dev/ptc.])
3269 AC_MSG_CHECKING(for %zd printf() format support)
3270 AC_TRY_RUN([#include <stdio.h>
3278 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3281 if (strncmp(buffer, "123", 3))
3287 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3290 AC_CHECK_TYPE(socklen_t,,
3291 AC_DEFINE(socklen_t,int,
3292 Define to `int' if <sys/socket.h> does not define.),[
3293 #ifdef HAVE_SYS_TYPES_H
3294 #include <sys/types.h>
3296 #ifdef HAVE_SYS_SOCKET_H
3297 #include <sys/socket.h>
3301 AC_SUBST(THREADHEADERS)
3303 for h in `(cd $srcdir;echo Python/thread_*.h)`
3305 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3309 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3310 AC_MSG_CHECKING(for build directories)
3311 for dir in $SRCDIRS; do
3312 if test ! -d $dir; then
3318 # generate output files
3319 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3322 echo "creating Modules/Setup"
3323 if test ! -f Modules/Setup
3325 cp $srcdir/Modules/Setup.dist Modules/Setup
3328 echo "creating Modules/Setup.local"
3329 if test ! -f Modules/Setup.local
3331 echo "# Edit this file for local setup changes" >Modules/Setup.local
3334 echo "creating Makefile"
3335 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3336 -s Modules Modules/Setup.config \
3337 Modules/Setup.local Modules/Setup