blob: 9a4183ca6cdba0d44b99f0e1f94dd1da1e331827 [file] [log] [blame]
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001dnl Process this file with autoconf 2.0 or later to make a configure script.
Martin v. Löwis88afe662002-10-26 13:47:44 +00002
3# Set VERSION so we only need to edit in one place (i.e., here)
Fred Drake9bd44622003-07-30 17:39:48 +00004m4_define(PYTHON_VERSION, 2.4)
Martin v. Löwis88afe662002-10-26 13:47:44 +00005
Guido van Rossum76be6ed1995-01-02 18:33:54 +00006AC_REVISION($Revision$)
Martin v. Löwis97017322002-04-12 17:25:21 +00007AC_PREREQ(2.53)
Martin v. Löwis88afe662002-10-26 13:47:44 +00008AC_INIT(python, PYTHON_VERSION)
9AC_CONFIG_SRCDIR([Include/object.h])
Martin v. Löwis4f1cd8b2001-07-26 13:41:06 +000010AC_CONFIG_HEADER(pyconfig.h)
Guido van Rossum627b2d71993-12-24 10:39:16 +000011
Martin v. Löwis8316feb2003-06-14 07:48:07 +000012dnl This is for stuff that absolutely must end up in pyconfig.h.
13dnl Please use pyport.h instead, if possible.
Martin v. Löwisbddf5a52002-11-11 13:37:28 +000014AH_TOP([
15#ifndef Py_PYCONFIG_H
16#define Py_PYCONFIG_H
17])
Martin v. Löwis11437992002-04-12 09:54:03 +000018AH_BOTTOM([
Martin v. Löwis11437992002-04-12 09:54:03 +000019/* 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 */
22#endif
Martin v. Löwisbddf5a52002-11-11 13:37:28 +000023
24#endif /*Py_PYCONFIG_H*/
Martin v. Löwis11437992002-04-12 09:54:03 +000025])
26
Martin v. Löwis8316feb2003-06-14 07:48:07 +000027# We don't use PACKAGE_ variables, and they cause conflicts
28# with other autoconf-based packages that include Python.h
29grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
30rm confdefs.h
31mv confdefs.h.new confdefs.h
32
Guido van Rossum642b6781997-07-19 19:35:41 +000033AC_SUBST(VERSION)
Martin v. Löwis88afe662002-10-26 13:47:44 +000034VERSION=PYTHON_VERSION
Guido van Rossum642b6781997-07-19 19:35:41 +000035
Martin v. Löwis1142de32002-03-29 16:28:31 +000036AC_SUBST(SOVERSION)
37SOVERSION=1.0
38
Martin v. Löwis6f18a3c2002-07-20 08:51:52 +000039# The later defininition of _XOPEN_SOURCE disables certain features
40# on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
41AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
42
Martin v. Löwisbcd93962003-05-03 10:32:18 +000043# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
44# certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
45# them.
46AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
47
Andrew MacIntyreabccf412003-07-02 13:53:25 +000048# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
49# certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
50# them.
51AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
52
Martin v. Löwise981a4e2002-11-11 13:26:51 +000053define_xopen_source=yes
Martin v. Löwis6f18a3c2002-07-20 08:51:52 +000054
Neil Schemenauer4edbc2a2001-03-22 00:34:03 +000055# Arguments passed to configure.
56AC_SUBST(CONFIG_ARGS)
57CONFIG_ARGS="$ac_configure_args"
58
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000059dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Jack Jansenb6e9cad2001-08-15 01:26:28 +000060AC_ARG_ENABLE(framework,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000061 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
62[
Jack Jansenb6e9cad2001-08-15 01:26:28 +000063 case $enableval in
64 yes)
65 enableval=/Library/Frameworks
Jack Jansen127e56e2001-09-11 14:41:54 +000066 esac
67 case $enableval in
68 no)
69 PYTHONFRAMEWORK=
70 PYTHONFRAMEWORKDIR=no-framework
71 PYTHONFRAMEWORKPREFIX=
72 PYTHONFRAMEWORKINSTALLDIR=
73 enable_framework=
Jack Jansenb6e9cad2001-08-15 01:26:28 +000074 ;;
75 *)
Jack Jansen127e56e2001-09-11 14:41:54 +000076 PYTHONFRAMEWORK=Python
77 PYTHONFRAMEWORKDIR=Python.framework
Jack Jansenb6e9cad2001-08-15 01:26:28 +000078 PYTHONFRAMEWORKPREFIX=$enableval
Jack Jansen127e56e2001-09-11 14:41:54 +000079 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
80 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
Jack Jansenb6e9cad2001-08-15 01:26:28 +000081 esac
Jack Jansenb6e9cad2001-08-15 01:26:28 +000082 ],[
83 PYTHONFRAMEWORK=
Jack Jansen127e56e2001-09-11 14:41:54 +000084 PYTHONFRAMEWORKDIR=no-framework
Jack Jansenb6e9cad2001-08-15 01:26:28 +000085 PYTHONFRAMEWORKPREFIX=
86 PYTHONFRAMEWORKINSTALLDIR=
87 enable_framework=
88])
89AC_SUBST(PYTHONFRAMEWORK)
90AC_SUBST(PYTHONFRAMEWORKDIR)
91AC_SUBST(PYTHONFRAMEWORKPREFIX)
92AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
Guido van Rossum4b6b5791996-09-09 20:09:34 +000093
Jack Jansenb6e9cad2001-08-15 01:26:28 +000094##AC_ARG_WITH(dyld,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000095## AC_HELP_STRING(--with-dyld,
96## Use (OpenStep|Rhapsody) dynamic linker))
Jack Jansenb6e9cad2001-08-15 01:26:28 +000097##
Guido van Rossumb418f891996-07-30 18:06:02 +000098# Set name for machine-dependent library files
99AC_SUBST(MACHDEP)
100AC_MSG_CHECKING(MACHDEP)
101if test -z "$MACHDEP"
102then
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000103 ac_sys_system=`uname -s`
Martin v. Löwis21ee4092002-09-30 16:19:48 +0000104 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
105 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000106 ac_sys_release=`uname -v`
Guido van Rossumb418f891996-07-30 18:06:02 +0000107 else
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000108 ac_sys_release=`uname -r`
Guido van Rossumb418f891996-07-30 18:06:02 +0000109 fi
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000110 ac_md_system=`echo $ac_sys_system |
111 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
112 ac_md_release=`echo $ac_sys_release |
Guido van Rossum67b26592001-10-20 14:21:45 +0000113 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
Guido van Rossumb97ef171997-09-28 05:44:03 +0000114 MACHDEP="$ac_md_system$ac_md_release"
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000115
Guido van Rossumbcd91e01997-03-20 20:46:29 +0000116 case $MACHDEP in
Andrew M. Kuchling5a3e4cb2001-07-20 19:29:04 +0000117 cygwin*) MACHDEP="cygwin";;
Jack Jansen8a97f4a2001-12-05 23:27:32 +0000118 darwin*) MACHDEP="darwin";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000119 atheos*) MACHDEP="atheos";;
Martin v. Löwisf3322282003-07-13 09:46:13 +0000120 irix646) MACHDEP="irix6";;
Guido van Rossumb97ef171997-09-28 05:44:03 +0000121 '') MACHDEP="unknown";;
Guido van Rossumb418f891996-07-30 18:06:02 +0000122 esac
123fi
Jack Jansen83f898c2002-12-30 22:23:40 +0000124
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000125# Some systems cannot stand _XOPEN_SOURCE being defined at all; they
126# disable features if it is defined, without any means to access these
127# features as extensions. For these systems, we skip the definition of
128# _XOPEN_SOURCE. Before adding a system to the list to gain access to
129# some feature, make sure there is no alternative way to access this
130# feature. Also, when using wildcards, make sure you have verified the
131# need for not defining _XOPEN_SOURCE on all systems matching the
132# wildcard, and that the wildcard does not include future systems
133# (which may remove their limitations).
134dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
135case $ac_sys_system/$ac_sys_release in
136 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
137 # even though select is a POSIX function. Reported by J. Ribbens.
Martin v. Löwis76bafc62003-10-03 13:47:44 +0000138 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
139 OpenBSD/2.* | OpenBSD/3.@<:@01234@:>@)
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000140 define_xopen_source=no;;
Martin v. Löwisa9d71422003-03-28 18:43:31 +0000141 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
142 # of union __?sigval. Reported by Stuart Bishop.
143 SunOS/5.6)
144 define_xopen_source=no;;
Martin v. Löwisc2409b42003-05-11 05:53:41 +0000145 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
146 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
147 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-3@:>@)
148 define_xopen_source=no;;
149 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
Martin v. Löwis53e73c32003-05-05 05:13:18 +0000150 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
Martin v. Löwisc2409b42003-05-11 05:53:41 +0000151 SCO_SV/3.2)
Martin v. Löwis53e73c32003-05-05 05:13:18 +0000152 define_xopen_source=no;;
Anthony Baxter6169c6b2003-10-04 07:46:23 +0000153 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
154 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
155 # this is fixed in 10.3, which identifies itself as Darwin/7.*
156 # This should hopefully be fixed in FreeBSD 4.9
157 FreeBSD/4.8* | Darwin/6* )
158 define_xopen_source=no;;
Martin v. Löwisc19c5a62003-11-18 20:00:44 +0000159 # On AIX 4, mbstate_t is defined only when _XOPEN_SOURCE == 500 but used in
160 # wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined or
161 # has another value. By not (re)defining it, the defaults come in place.
162 AIX/4)
163 define_xopen_source=no;;
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000164esac
165
166if test $define_xopen_source = yes
167then
Martin v. Löwis678fc1e2002-11-12 06:04:39 +0000168 AC_DEFINE(_XOPEN_SOURCE, 600,
169 Define to the level of X/Open that your system supports)
170
171 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
172 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
173 # several APIs are not declared. Since this is also needed in some
174 # cases for HP-UX, we define it globally.
175
176 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Define to activate Unix95-and-earlier features)
177 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
178
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000179fi
180
Guido van Rossum91922671997-10-09 20:24:13 +0000181#
182# SGI compilers allow the specification of the both the ABI and the
183# ISA on the command line. Depending on the values of these switches,
184# different and often incompatable code will be generated.
185#
186# The SGI_ABI variable can be used to modify the CC and LDFLAGS and
187# thus supply support for various ABI/ISA combinations. The MACHDEP
188# variable is also adjusted.
189#
190AC_SUBST(SGI_ABI)
191if test ! -z "$SGI_ABI"
192then
193 CC="cc $SGI_ABI"
194 LDFLAGS="$SGI_ABI $LDFLAGS"
195 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
196fi
Guido van Rossumb418f891996-07-30 18:06:02 +0000197AC_MSG_RESULT($MACHDEP)
198
Jack Jansen83f898c2002-12-30 22:23:40 +0000199# And add extra plat-mac for darwin
200AC_SUBST(EXTRAPLATDIR)
Jack Jansen7b59b422003-03-17 15:44:10 +0000201AC_SUBST(EXTRAMACHDEPPATH)
Jack Jansen83f898c2002-12-30 22:23:40 +0000202AC_MSG_CHECKING(EXTRAPLATDIR)
203if test -z "$EXTRAPLATDIR"
204then
205 case $MACHDEP in
Jack Jansen7b59b422003-03-17 15:44:10 +0000206 darwin)
207 EXTRAPLATDIR="\$(PLATMACDIRS)"
208 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
209 ;;
210 *)
211 EXTRAPLATDIR=""
212 EXTRAMACHDEPPATH=""
213 ;;
Jack Jansen83f898c2002-12-30 22:23:40 +0000214 esac
215fi
216AC_MSG_RESULT($EXTRAPLATDIR)
217
Guido van Rossum627b2d71993-12-24 10:39:16 +0000218# checks for alternative programs
Skip Montanarodecc6a42003-01-01 20:07:49 +0000219
220# compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
221# for debug/optimization stuff. BASECFLAGS is for flags that are required
222# just to get things to compile and link. Users are free to override OPT
223# when running configure or make. The build should not break if they do.
224# BASECFLAGS should generally not be messed with, however.
225
226# XXX shouldn't some/most/all of this code be merged with the stuff later
227# on that fiddles with OPT and BASECFLAGS?
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000228AC_MSG_CHECKING(for --without-gcc)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000229AC_ARG_WITH(gcc,
230 AC_HELP_STRING(--without-gcc,never use gcc),
231[
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000232 case $withval in
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000233 no) CC=cc
234 without_gcc=yes;;
235 yes) CC=gcc
236 without_gcc=no;;
237 *) CC=$withval
238 without_gcc=$withval;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000239 esac], [
Guido van Rossumb418f891996-07-30 18:06:02 +0000240 case $ac_sys_system in
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000241 AIX*) CC=cc_r
242 without_gcc=;;
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000243 BeOS*)
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000244 case $BE_HOST_CPU in
245 ppc)
Fred Drake5790be12000-10-09 17:06:13 +0000246 CC=mwcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000247 without_gcc=yes
Skip Montanarodecc6a42003-01-01 20:07:49 +0000248 BASECFLAGS="$BASECFLAGS -export pragma"
249 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000250 LDFLAGS="$LDFLAGS -nodup"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000251 ;;
252 x86)
Fred Drake5790be12000-10-09 17:06:13 +0000253 CC=gcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000254 without_gcc=no
Skip Montanarodecc6a42003-01-01 20:07:49 +0000255 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000256 ;;
257 *)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000258 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000259 ;;
260 esac
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000261 AR="\$(srcdir)/Modules/ar_beos"
262 RANLIB=:
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000263 ;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000264 Monterey*)
265 RANLIB=:
Martin v. Löwis130fb172001-07-19 11:00:41 +0000266 without_gcc=;;
267 *) without_gcc=no;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000268 esac])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000269AC_MSG_RESULT($without_gcc)
270
Guido van Rossum27552902001-01-23 01:52:26 +0000271AC_SUBST(CXX)
Guido van Rossum95012191999-12-16 17:50:52 +0000272AC_SUBST(MAINOBJ)
Fred Drakea1a84e72001-03-06 05:52:16 +0000273MAINOBJ=python.o
Guido van Rossum95012191999-12-16 17:50:52 +0000274AC_MSG_CHECKING(for --with-cxx=<compiler>)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000275AC_ARG_WITH(cxx,
276 AC_HELP_STRING(--with-cxx=<compiler>, enable C++ support),
277[
Martin v. Löwis537970f2000-12-13 17:37:02 +0000278 check_cxx=no
Guido van Rossum95012191999-12-16 17:50:52 +0000279 case $withval in
280 no) CXX=
281 with_cxx=no;;
282 *) CXX=$withval
Fred Drakea1a84e72001-03-06 05:52:16 +0000283 MAINOBJ=ccpython.o
Guido van Rossum95012191999-12-16 17:50:52 +0000284 with_cxx=$withval;;
285 esac], [
286 with_cxx=no
Martin v. Löwis537970f2000-12-13 17:37:02 +0000287 check_cxx=yes
Guido van Rossum95012191999-12-16 17:50:52 +0000288])
289AC_MSG_RESULT($with_cxx)
Martin v. Löwis537970f2000-12-13 17:37:02 +0000290
Michael W. Hudson54241132001-12-07 15:38:26 +0000291if test "$with_cxx" = "yes"
292then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000293 AC_MSG_ERROR([must supply a compiler when using --with-cxx])
Michael W. Hudson54241132001-12-07 15:38:26 +0000294fi
295
Martin v. Löwis537970f2000-12-13 17:37:02 +0000296dnl The following fragment works similar to AC_PROG_CXX.
297dnl It does not fail if CXX is not found, and it is not executed if
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000298dnl --without-cxx was given.
Martin v. Löwis537970f2000-12-13 17:37:02 +0000299dnl Finally, it does not test whether CXX is g++.
300
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000301dnl Autoconf 2.5x does not have AC_PROG_CXX_WORKS anymore
302ifdef([AC_PROG_CXX_WORKS],[],
303 [AC_DEFUN([AC_PROG_CXX_WORKS],
304 [AC_LANG_PUSH(C++)dnl
305 _AC_COMPILER_EXEEXT
306 AC_LANG_POP()
307 ]
308)])
309
Martin v. Löwis537970f2000-12-13 17:37:02 +0000310if test "$check_cxx" = "yes"
311then
312 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
313 if test "$CXX" = "notfound"
314 then
315 CXX=
316 else
317 AC_PROG_CXX_WORKS
318 fi
319fi
320
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000321# If the user switches compilers, we can't believe the cache
322if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
323then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000324 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
325(it is also a good idea to do 'make clean' before compiling)])
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000326fi
327
Guido van Rossum627b2d71993-12-24 10:39:16 +0000328AC_PROG_CC
Martin v. Löwis1d5ecb72001-08-09 10:29:44 +0000329
330# checks for UNIX variants that set C preprocessor variables
331AC_AIX
332AC_MINIX
333
Martin v. Löwis779ffc02002-12-02 22:17:01 +0000334# Check for unsupported systems
335case $ac_sys_system/$ac_sys_release in
336SunOS/4*|DYNIX/*|dgux*/*|IRIX/4*|Linux*/1*)
337 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
338 echo See README for details.
339 exit 1;;
340esac
341
342if test "$MINIX" = yes; then
343 echo This system \(MINIX\) is no longer supported.
344 echo Read README for details.
345 exit 1
346fi
347
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000348AC_EXEEXT
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000349AC_MSG_CHECKING(for --with-suffix)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000350AC_ARG_WITH(suffix,
351 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
352[
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000353 case $withval in
354 no) EXEEXT=;;
355 yes) EXEEXT=.exe;;
356 *) EXEEXT=$withval;;
357 esac])
358AC_MSG_RESULT($EXEEXT)
Jack Jansen1999ef42001-12-06 21:47:20 +0000359
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000360# Test whether we're running on a non-case-sensitive system, in which
361# case we give a warning if no ext is given
Jack Jansen1999ef42001-12-06 21:47:20 +0000362AC_SUBST(BUILDEXEEXT)
363AC_MSG_CHECKING(for case-insensitive build directory)
Jack Jansen3c2c4332002-11-06 13:33:32 +0000364if test ! -d CaseSensitiveTestDir; then
365mkdir CaseSensitiveTestDir
366fi
367
368if test -d casesensitivetestdir
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000369then
Jack Jansen1999ef42001-12-06 21:47:20 +0000370 AC_MSG_RESULT(yes)
371 BUILDEXEEXT=.exe
372else
373 AC_MSG_RESULT(no)
Jack Jansendd19cf82001-12-06 22:36:17 +0000374 BUILDEXEEXT=$EXEEXT
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000375fi
Jack Jansen3c2c4332002-11-06 13:33:32 +0000376rmdir CaseSensitiveTestDir
Guido van Rossumfb842551997-08-06 23:42:07 +0000377
Guido van Rossumdd997f71998-10-07 19:58:26 +0000378case $MACHDEP in
379bsdos*)
380 case $CC in
381 gcc) CC="$CC -D_HAVE_BSDI";;
382 esac;;
383esac
384
Guido van Rossum84561611997-08-21 00:08:11 +0000385case $ac_sys_system in
386hp*|HP*)
387 case $CC in
Guido van Rossumcd5ff9f2000-09-22 16:15:54 +0000388 cc|*/cc) CC="$CC -Ae";;
Guido van Rossum84561611997-08-21 00:08:11 +0000389 esac;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000390Monterey*)
391 case $CC in
392 cc) CC="$CC -Wl,-Bexport";;
393 esac;;
Martin v. Löwise8964d42001-03-06 12:09:07 +0000394SunOS*)
395 # Some functions have a prototype only with that define, e.g. confstr
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000396 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
Martin v. Löwise8964d42001-03-06 12:09:07 +0000397 ;;
Guido van Rossum84561611997-08-21 00:08:11 +0000398esac
399
Martin v. Löwise8964d42001-03-06 12:09:07 +0000400
Neil Schemenauer61c51152001-01-26 16:18:16 +0000401AC_SUBST(LIBRARY)
402AC_MSG_CHECKING(LIBRARY)
403if test -z "$LIBRARY"
404then
405 LIBRARY='libpython$(VERSION).a'
406fi
407AC_MSG_RESULT($LIBRARY)
408
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000409# LDLIBRARY is the name of the library to link against (as opposed to the
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000410# name of the library into which to insert object files). BLDLIBRARY is also
411# the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
412# is blank as the main program is not linked directly against LDLIBRARY.
413# LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
414# systems without shared libraries, LDLIBRARY is the same as LIBRARY
415# (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
416# DLLLIBRARY is the shared (i.e., DLL) library.
417#
Martin v. Löwis1142de32002-03-29 16:28:31 +0000418# RUNSHARED is used to run shared python without installed libraries
419#
420# INSTSONAME is the name of the shared library that will be use to install
421# on the system - some systems like version suffix, others don't
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000422AC_SUBST(LDLIBRARY)
Guido van Rossum27552902001-01-23 01:52:26 +0000423AC_SUBST(DLLLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000424AC_SUBST(BLDLIBRARY)
425AC_SUBST(LDLIBRARYDIR)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000426AC_SUBST(INSTSONAME)
427AC_SUBST(RUNSHARED)
Neil Schemenauer61c51152001-01-26 16:18:16 +0000428LDLIBRARY="$LIBRARY"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000429BLDLIBRARY='$(LDLIBRARY)'
Martin v. Löwis09bdf722002-05-08 08:51:29 +0000430INSTSONAME='$(LDLIBRARY)'
Guido van Rossum27552902001-01-23 01:52:26 +0000431DLLLIBRARY=''
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000432LDLIBRARYDIR=''
Martin v. Löwis1142de32002-03-29 16:28:31 +0000433RUNSHARED=''
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000434
Guido van Rossumfb842551997-08-06 23:42:07 +0000435# LINKCC is the command that links the python executable -- default is $(CC).
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000436# If CXX is set, and if it is needed to link a main function that was
437# compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
438# python might then depend on the C++ runtime
Fred Drake5790be12000-10-09 17:06:13 +0000439# This is altered for AIX in order to build the export list before
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000440# linking.
Guido van Rossumfb842551997-08-06 23:42:07 +0000441AC_SUBST(LINKCC)
442AC_MSG_CHECKING(LINKCC)
443if test -z "$LINKCC"
444then
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000445 if test -z "$CXX"; then
446 LINKCC="\$(PURIFY) \$(CC)"
447 else
Martin v. Löwis1931ca72002-06-01 21:39:58 +0000448 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000449 $CXX -c conftest.$ac_ext 2>&5
450 if $CC -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
451 && test -s conftest$ac_exeext && ./conftest$ac_exeext
452 then
453 LINKCC="\$(PURIFY) \$(CC)"
454 else
455 LINKCC="\$(PURIFY) \$(CXX)"
456 fi
457 rm -fr conftest*
458 fi
Guido van Rossumfb842551997-08-06 23:42:07 +0000459 case $ac_sys_system in
460 AIX*)
Neal Norwitz0b27ff92003-03-31 15:53:49 +0000461 exp_extra="\"\""
462 if test $ac_sys_release -ge 5 -o \
463 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
464 exp_extra="."
465 fi
466 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
Guido van Rossum3c4bb801997-12-18 23:55:32 +0000467 dgux*)
Martin v. Löwis4e732dc2002-03-19 15:15:32 +0000468 LINKCC="LD_RUN_PATH=$libdir $LINKCC";;
Trent Mick635f6fb2000-08-23 21:33:05 +0000469 Monterey64*)
Martin v. Löwis4e732dc2002-03-19 15:15:32 +0000470 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
Guido van Rossumfb842551997-08-06 23:42:07 +0000471 esac
472fi
473AC_MSG_RESULT($LINKCC)
474
Martin v. Löwis1142de32002-03-29 16:28:31 +0000475AC_MSG_CHECKING(for --enable-shared)
476AC_ARG_ENABLE(shared,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000477 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000478
Martin v. Löwis1142de32002-03-29 16:28:31 +0000479if test -z "$enable_shared"
480then
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000481 case $ac_sys_system in
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000482 CYGWIN* | atheos*)
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000483 enable_shared="yes";;
484 *)
485 enable_shared="no";;
486 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000487fi
488AC_MSG_RESULT($enable_shared)
489
490
491AC_MSG_CHECKING(LDLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000492
Guido van Rossumb8552162001-09-05 14:58:11 +0000493# MacOSX framework builds need more magic. LDLIBRARY is the dynamic
494# library that we build, but we do not want to link against it (we
495# will find it with a -framework option). For this reason there is an
496# extra variable BLDLIBRARY against which Python and the extension
497# modules are linked, BLDLIBRARY. This is normally the same as
498# LDLIBRARY, but empty for MacOSX framework builds.
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000499if test "$enable_framework"
500then
501 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
Jack Jansen66b84832003-07-04 12:14:39 +0000502 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000503 BLDLIBRARY=''
504else
505 BLDLIBRARY='$(LDLIBRARY)'
506fi
507
Martin v. Löwis1142de32002-03-29 16:28:31 +0000508# Other platforms follow
509if test $enable_shared = "yes"; then
Mark Hammond8235ea12002-07-19 06:55:41 +0000510 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
Martin v. Löwis1142de32002-03-29 16:28:31 +0000511 case $ac_sys_system in
512 BeOS*)
513 LDLIBRARY='libpython$(VERSION).so'
514 ;;
515 CYGWIN*)
516 LDLIBRARY='libpython$(VERSION).dll.a'
517 DLLLIBRARY='libpython$(VERSION).dll'
518 ;;
519 SunOS*)
520 LDLIBRARY='libpython$(VERSION).so'
Martin v. Löwisd141a8c2003-06-14 15:20:28 +0000521 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000522 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis2389c412003-10-31 15:42:07 +0000523 INSTSONAME="$LDLIBRARY".$SOVERSION
Martin v. Löwis1142de32002-03-29 16:28:31 +0000524 ;;
Martin v. Löwis96ce8052003-05-31 07:58:45 +0000525 Linux*|GNU*|NetBSD*)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000526 LDLIBRARY='libpython$(VERSION).so'
527 BLDLIBRARY='-L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000528 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000529 INSTSONAME="$LDLIBRARY".$SOVERSION
530 ;;
531 hp*|HP*)
532 LDLIBRARY='libpython$(VERSION).sl'
533 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000534 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000535 ;;
536 OSF*)
537 LDLIBRARY='libpython$(VERSION).so'
538 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000539 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000540 ;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000541 atheos*)
542 LDLIBRARY='libpython$(VERSION).so'
543 BLDLIBRARY='-L. -lpython$(VERSION)'
544 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
545 ;;
Martin v. Löwis1142de32002-03-29 16:28:31 +0000546 esac
547 # DG/UX requires some fancy ld contortions to produce a .so from an .a
548 case $MACHDEP in
549 dguxR4)
550 LDLIBRARY='libpython$(VERSION).so'
Skip Montanarodecc6a42003-01-01 20:07:49 +0000551 BASECFLAGS="$BASECFLAGS -pic"
Martin v. Löwis1142de32002-03-29 16:28:31 +0000552 ;;
553 esac
Jason Tishler30765592003-09-04 11:04:06 +0000554else # shared is disabled
555 case $ac_sys_system in
556 CYGWIN*)
557 BLDLIBRARY='$(LIBRARY)'
558 LDLIBRARY='libpython$(VERSION).dll.a'
559 ;;
560 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000561fi
562
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000563AC_MSG_RESULT($LDLIBRARY)
564
Guido van Rossum627b2d71993-12-24 10:39:16 +0000565AC_PROG_RANLIB
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000566AC_SUBST(AR)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000567AC_CHECK_PROGS(AR, ar aal, ar)
Neil Schemenauera42c8272001-03-31 00:01:55 +0000568
569case $MACHDEP in
Neil Schemenaueraf5567f2001-10-21 22:32:04 +0000570bsdos*|hp*|HP*)
571 # install -d does not work on BSDI or HP-UX
Neil Schemenauera42c8272001-03-31 00:01:55 +0000572 if test -z "$INSTALL"
573 then
574 INSTALL="${srcdir}/install-sh -c"
575 fi
576esac
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000577AC_PROG_INSTALL
Guido van Rossumb418f891996-07-30 18:06:02 +0000578
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000579# Not every filesystem supports hard links
580AC_SUBST(LN)
581if test -z "$LN" ; then
582 case $ac_sys_system in
583 BeOS*) LN="ln -s";;
Guido van Rossumaef734b2001-01-10 21:09:12 +0000584 CYGWIN*) LN="ln -s";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000585 atheos*) LN="ln -s";;
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000586 *) LN=ln;;
587 esac
588fi
589
Fred Drake9f715822001-07-11 06:27:00 +0000590# Check for --with-pydebug
591AC_MSG_CHECKING(for --with-pydebug)
592AC_ARG_WITH(pydebug,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000593 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
594[
Fred Drake9f715822001-07-11 06:27:00 +0000595if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000596then
597 AC_DEFINE(Py_DEBUG, 1,
598 [Define if you want to build an interpreter with many run-time checks.])
599 AC_MSG_RESULT(yes);
600 Py_DEBUG='true'
Fred Drake9f715822001-07-11 06:27:00 +0000601else AC_MSG_RESULT(no); Py_DEBUG='false'
602fi],
603[AC_MSG_RESULT(no)])
604
Skip Montanarodecc6a42003-01-01 20:07:49 +0000605# XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
606# merged with this chunk of code?
607
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000608# Optimizer/debugger flags
Skip Montanarodecc6a42003-01-01 20:07:49 +0000609# ------------------------
610# (The following bit of code is complicated enough - please keep things
611# indented properly. Just pretend you're editing Python code. ;-)
612
613# There are two parallel sets of case statements below, one that checks to
614# see if OPT was set and one that does BASECFLAGS setting based upon
615# compiler and platform. BASECFLAGS tweaks need to be made even if the
616# user set OPT.
617
618# tweak OPT based on compiler and platform, only if the user didn't set
619# it on the command line
Guido van Rossumb418f891996-07-30 18:06:02 +0000620AC_SUBST(OPT)
Guido van Rossum4e8af441994-08-19 15:33:54 +0000621if test -z "$OPT"
Guido van Rossumb418f891996-07-30 18:06:02 +0000622then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000623 case $GCC in
624 yes)
625 case $ac_cv_prog_cc_g in
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000626 yes)
Fred Drake9f715822001-07-11 06:27:00 +0000627 if test "$Py_DEBUG" = 'true' ; then
628 # Optimization messes up debuggers, so turn it off for
629 # debug builds.
630 OPT="-g -Wall -Wstrict-prototypes"
631 else
632 OPT="-g -O3 -Wall -Wstrict-prototypes"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000633 fi
634 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000635 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000636 OPT="-O3 -Wall -Wstrict-prototypes"
637 ;;
Fred Drake9f715822001-07-11 06:27:00 +0000638 esac
Martin v. Löwis21ee4092002-09-30 16:19:48 +0000639 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000640 SCO_SV*) OPT="$OPT -m486 -DSCO5"
641 ;;
642 esac
Fred Drake9f715822001-07-11 06:27:00 +0000643 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000644
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000645 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000646 OPT="-O"
647 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000648 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000649
650 # The current (beta) Monterey compiler dies with optimizations
651 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
Jack Jansenca06bc62001-08-03 15:32:23 +0000652 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000653 Monterey*)
654 OPT=""
655 ;;
Jack Jansenca06bc62001-08-03 15:32:23 +0000656 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000657
Guido van Rossum4e8af441994-08-19 15:33:54 +0000658fi
Guido van Rossum627b2d71993-12-24 10:39:16 +0000659
Skip Montanarodecc6a42003-01-01 20:07:49 +0000660AC_SUBST(BASECFLAGS)
661# tweak BASECFLAGS based on compiler and platform
662case $GCC in
663yes)
Martin v. Löwis70fedcd2003-07-07 21:26:19 +0000664 # Python violates C99 rules, by casting between incompatible
665 # pointer types. GCC may generate bad code as a result of that,
666 # so use -fno-strict-aliasing if supported.
667 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
668 ac_save_cc="$CC"
669 CC="$CC -fno-strict-aliasing"
670 AC_TRY_RUN([int main() { return 0; }],
671 ac_cv_no_strict_aliasing_ok=yes,
672 ac_cv_no_strict_aliasing_ok=no,
673 ac_cv_no_strict_aliasing_ok=no)
674 CC="$ac_save_cc"
675 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
676 if test $ac_cv_no_strict_aliasing_ok = yes
677 then
678 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
679 fi
Skip Montanarodecc6a42003-01-01 20:07:49 +0000680 case $ac_sys_system in
681 SCO_SV*)
682 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
683 ;;
684 # is there any other compiler on Darwin besides gcc?
685 Darwin*)
Jack Jansene0040412003-07-23 22:17:28 +0000686 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000687 ;;
688 esac
689 ;;
690
691*)
692 case $ac_sys_system in
693 OpenUNIX*|UnixWare*)
694 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
695 ;;
Neal Norwitzb44f1652003-05-26 14:11:55 +0000696 OSF*)
697 BASECFLAGS="$BASECFLAGS -ieee -std"
698 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000699 SCO_SV*)
700 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
701 ;;
702 esac
703 ;;
704esac
705
Fred Drakee1ceaa02001-12-04 20:55:47 +0000706if test "$Py_DEBUG" = 'true'; then
707 :
708else
709 OPT="-DNDEBUG $OPT"
710fi
711
Guido van Rossum6f2260e1996-09-09 16:21:03 +0000712if test "$ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000713then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000714 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000715fi
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000716
Guido van Rossum91922671997-10-09 20:24:13 +0000717AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
718AC_CACHE_VAL(ac_cv_opt_olimit_ok,
719[ac_save_cc="$CC"
720CC="$CC -OPT:Olimit=0"
721AC_TRY_RUN([int main() { return 0; }],
722 ac_cv_opt_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000723 ac_cv_opt_olimit_ok=no,
Guido van Rossum91922671997-10-09 20:24:13 +0000724 ac_cv_opt_olimit_ok=no)
725CC="$ac_save_cc"])
726AC_MSG_RESULT($ac_cv_opt_olimit_ok)
Guido van Rossum2efa34b1997-10-23 17:43:11 +0000727if test $ac_cv_opt_olimit_ok = yes; then
Guido van Rossum5839e582000-10-09 19:52:35 +0000728 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000729 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
730 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
731 # environment?
732 Darwin*)
733 ;;
734 *)
735 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
736 ;;
Guido van Rossum5839e582000-10-09 19:52:35 +0000737 esac
Guido van Rossumf8678121998-07-07 21:05:09 +0000738else
739 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
740 AC_CACHE_VAL(ac_cv_olimit_ok,
741 [ac_save_cc="$CC"
742 CC="$CC -Olimit 1500"
743 AC_TRY_RUN([int main() { return 0; }],
744 ac_cv_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000745 ac_cv_olimit_ok=no,
Guido van Rossumf8678121998-07-07 21:05:09 +0000746 ac_cv_olimit_ok=no)
747 CC="$ac_save_cc"])
748 AC_MSG_RESULT($ac_cv_olimit_ok)
749 if test $ac_cv_olimit_ok = yes; then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000750 BASECFLAGS="$BASECFLAGS -Olimit 1500"
Guido van Rossumf8678121998-07-07 21:05:09 +0000751 fi
Guido van Rossum201afe51997-05-14 21:14:44 +0000752fi
Guido van Rossumf8678121998-07-07 21:05:09 +0000753
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000754# On some compilers, pthreads are available without further options
755# (e.g. MacOS X). On some of these systems, the compiler will not
756# complain if unaccepted options are passed (e.g. gcc on Mac OS X).
757# So we have to see first whether pthreads are available without
758# options before we can check whether -Kpthread improves anything.
759AC_MSG_CHECKING(whether pthreads are available without options)
760AC_CACHE_VAL(ac_cv_pthread_is_default,
761[AC_TRY_RUN([
762#include <pthread.h>
763
764void* routine(void* p){return NULL;}
765
766int main(){
767 pthread_t p;
768 if(pthread_create(&p,NULL,routine,NULL)!=0)
769 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000770 (void)pthread_detach(p);
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000771 return 0;
772}
773],
Skip Montanarod8d39a02003-07-10 20:44:10 +0000774[
775 ac_cv_pthread_is_default=yes
776 ac_cv_kthread=no
777 ac_cv_pthread=no
778],
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000779 ac_cv_pthread_is_default=no,
780 ac_cv_pthread_is_default=no)
781])
782AC_MSG_RESULT($ac_cv_pthread_is_default)
783
784
785if test $ac_cv_pthread_is_default = yes
786then
787 ac_cv_kpthread=no
788else
Martin v. Löwis130fb172001-07-19 11:00:41 +0000789# -Kpthread, if available, provides the right #defines
790# and linker options to make pthread_create available
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000791# Some compilers won't report that they do not support -Kpthread,
792# so we need to run a program to see whether it really made the
793# function available.
Martin v. Löwis130fb172001-07-19 11:00:41 +0000794AC_MSG_CHECKING(whether $CC accepts -Kpthread)
795AC_CACHE_VAL(ac_cv_kpthread,
796[ac_save_cc="$CC"
797CC="$CC -Kpthread"
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000798AC_TRY_RUN([
799#include <pthread.h>
800
801void* routine(void* p){return NULL;}
802
803int main(){
804 pthread_t p;
805 if(pthread_create(&p,NULL,routine,NULL)!=0)
806 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000807 (void)pthread_detach(p);
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000808 return 0;
809}
810],
Martin v. Löwis130fb172001-07-19 11:00:41 +0000811 ac_cv_kpthread=yes,
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000812 ac_cv_kpthread=no,
Martin v. Löwis130fb172001-07-19 11:00:41 +0000813 ac_cv_kpthread=no)
814CC="$ac_save_cc"])
Martin v. Löwis130fb172001-07-19 11:00:41 +0000815AC_MSG_RESULT($ac_cv_kpthread)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000816fi
Martin v. Löwis130fb172001-07-19 11:00:41 +0000817
Skip Montanarod8d39a02003-07-10 20:44:10 +0000818if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis5f433f02003-05-05 05:05:30 +0000819then
820# -Kthread, if available, provides the right #defines
821# and linker options to make pthread_create available
822# Some compilers won't report that they do not support -Kthread,
823# so we need to run a program to see whether it really made the
824# function available.
825AC_MSG_CHECKING(whether $CC accepts -Kthread)
826AC_CACHE_VAL(ac_cv_kthread,
827[ac_save_cc="$CC"
828CC="$CC -Kthread"
829AC_TRY_RUN([
830#include <pthread.h>
831
832void* routine(void* p){return NULL;}
833
834int main(){
835 pthread_t p;
836 if(pthread_create(&p,NULL,routine,NULL)!=0)
837 return 1;
838 (void)pthread_detach(p);
839 return 0;
840}
841],
842 ac_cv_kthread=yes,
843 ac_cv_kthread=no,
844 ac_cv_kthread=no)
845CC="$ac_save_cc"])
846AC_MSG_RESULT($ac_cv_kthread)
847fi
848
Skip Montanarod8d39a02003-07-10 20:44:10 +0000849if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +0000850then
851# -pthread, if available, provides the right #defines
852# and linker options to make pthread_create available
853# Some compilers won't report that they do not support -pthread,
854# so we need to run a program to see whether it really made the
855# function available.
856AC_MSG_CHECKING(whether $CC accepts -pthread)
857AC_CACHE_VAL(ac_cv_thread,
858[ac_save_cc="$CC"
859CC="$CC -pthread"
860AC_TRY_RUN([
861#include <pthread.h>
862
863void* routine(void* p){return NULL;}
864
865int main(){
866 pthread_t p;
867 if(pthread_create(&p,NULL,routine,NULL)!=0)
868 return 1;
869 (void)pthread_detach(p);
870 return 0;
871}
872],
873 ac_cv_pthread=yes,
874 ac_cv_pthread=no,
875 ac_cv_pthread=no)
876CC="$ac_save_cc"])
877AC_MSG_RESULT($ac_cv_pthread)
878fi
879
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000880# If we have set a CC compiler flag for thread support then
881# check if it works for CXX, too.
882ac_cv_cxx_thread=no
883if test ! -z "$CXX"
884then
885AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
886ac_save_cxx="$CXX"
887
888if test "$ac_cv_kpthread" = "yes"
889then
Martin v. Löwis519adae2003-09-20 10:47:47 +0000890 CXX="$CXX -Kpthread"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000891 ac_cv_cxx_thread=yes
892elif test "$ac_cv_kthread" = "yes"
893then
894 CXX="$CXX -Kthread"
895 ac_cv_cxx_thread=yes
896elif test "$ac_cv_pthread" = "yes"
897then
898 CXX="$CXX -pthread"
899 ac_cv_cxx_thread=yes
900fi
901
902if test $ac_cv_cxx_thread = yes
903then
904 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
905 $CXX -c conftest.$ac_ext 2>&5
906 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
907 && test -s conftest$ac_exeext && ./conftest$ac_exeext
908 then
909 ac_cv_cxx_thread=yes
910 else
911 ac_cv_cxx_thread=no
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000912 fi
913 rm -fr conftest*
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000914fi
915fi
Martin v. Löwis519adae2003-09-20 10:47:47 +0000916CXX="$ac_save_cxx"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000917AC_MSG_RESULT($ac_cv_cxx_thread)
918
Fred Drakece81d592000-07-09 14:39:29 +0000919dnl # check for ANSI or K&R ("traditional") preprocessor
920dnl AC_MSG_CHECKING(for C preprocessor type)
921dnl AC_TRY_COMPILE([
922dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
923dnl int foo;
924dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
925dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
926dnl AC_MSG_RESULT($cpp_type)
Guido van Rossum300fda71996-08-19 21:58:16 +0000927
Guido van Rossum627b2d71993-12-24 10:39:16 +0000928# checks for header files
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000929AC_HEADER_STDC
Martin v. Löwis2e64c342002-03-27 18:49:02 +0000930AC_CHECK_HEADERS(dlfcn.h fcntl.h grp.h limits.h langinfo.h \
931libintl.h locale.h ncurses.h poll.h pthread.h \
Martin v. Löwis14e73b12003-01-01 09:51:12 +0000932signal.h stdarg.h stddef.h stdlib.h stropts.h termios.h thread.h \
933unistd.h utime.h \
Neal Norwitz82251032003-05-23 14:35:24 +0000934sys/audioio.h sys/bsdtty.h sys/file.h sys/lock.h sys/mkdev.h sys/modem.h \
Andrew M. Kuchling881fd902001-07-14 20:55:52 +0000935sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
Martin v. Löwisa5f09072002-10-11 05:37:59 +0000936sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
Barry Warsawfe33b792003-01-07 22:42:49 +0000937sys/resource.h netpacket/packet.h sysexits.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000938AC_HEADER_DIRENT
Martin v. Löwisdbe3f762002-10-10 14:27:30 +0000939AC_HEADER_MAJOR
Guido van Rossum627b2d71993-12-24 10:39:16 +0000940
941# checks for typedefs
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000942was_it_defined=no
943AC_MSG_CHECKING(for clock_t in time.h)
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000944AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
945 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
946])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000947AC_MSG_RESULT($was_it_defined)
948
Neal Norwitz11690112002-07-30 01:08:28 +0000949# Check whether using makedev requires defining _OSF_SOURCE
950AC_MSG_CHECKING(for makedev)
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000951AC_TRY_LINK([#include <sys/types.h> ],
Neal Norwitz11690112002-07-30 01:08:28 +0000952 [ makedev(0, 0) ],
953 ac_cv_has_makedev=yes,
954 ac_cv_has_makedev=no)
955if test "$ac_cv_has_makedev" = "no"; then
956 # we didn't link, try if _OSF_SOURCE will allow us to link
957 AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000958#define _OSF_SOURCE 1
959#include <sys/types.h>
Neal Norwitz11690112002-07-30 01:08:28 +0000960 ],
961 [ makedev(0, 0) ],
962 ac_cv_has_makedev=yes,
963 ac_cv_has_makedev=no)
964 if test "$ac_cv_has_makedev" = "yes"; then
965 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
966 fi
967fi
968AC_MSG_RESULT($ac_cv_has_makedev)
969if test "$ac_cv_has_makedev" = "yes"; then
970 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
971fi
972
Martin v. Löwis399a6892002-10-04 10:22:02 +0000973# Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
974# the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
975# defined, but the compiler does not support pragma redefine_extname,
976# and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
977# structures (such as rlimit64) without declaring them. As a
978# work-around, disable LFS on such configurations
979
980use_lfs=yes
981AC_MSG_CHECKING(Solaris LFS bug)
982AC_TRY_COMPILE([
983#define _LARGEFILE_SOURCE 1
984#define _FILE_OFFSET_BITS 64
985#include <sys/resource.h>
986],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
987AC_MSG_RESULT($sol_lfs_bug)
988if test "$sol_lfs_bug" = "yes"; then
989 use_lfs=no
990fi
991
992if test "$use_lfs" = "yes"; then
Guido van Rossum810cc512001-09-09 23:51:39 +0000993# Two defines needed to enable largefile support on various platforms
994# These may affect some typedefs
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000995AC_DEFINE(_LARGEFILE_SOURCE, 1,
996[This must be defined on some systems to enable large file support.])
997AC_DEFINE(_FILE_OFFSET_BITS, 64,
998[This must be set to 64 on some systems to enable large file support.])
Martin v. Löwis399a6892002-10-04 10:22:02 +0000999fi
Guido van Rossum810cc512001-09-09 23:51:39 +00001000
Guido van Rossum300fda71996-08-19 21:58:16 +00001001# Add some code to confdefs.h so that the test for off_t works on SCO
1002cat >> confdefs.h <<\EOF
1003#if defined(SCO_DS)
1004#undef _OFF_T
1005#endif
1006EOF
1007
Guido van Rossumef2255b2000-03-10 22:30:29 +00001008# Type availability checks
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001009AC_TYPE_MODE_T
1010AC_TYPE_OFF_T
1011AC_TYPE_PID_T
1012AC_TYPE_SIGNAL
1013AC_TYPE_SIZE_T
1014AC_TYPE_UID_T
Guido van Rossum627b2d71993-12-24 10:39:16 +00001015
Guido van Rossumef2255b2000-03-10 22:30:29 +00001016# Sizes of various common basic types
Guido van Rossum3065c942001-09-17 04:03:14 +00001017AC_CHECK_SIZEOF(int, 4)
1018AC_CHECK_SIZEOF(long, 4)
1019AC_CHECK_SIZEOF(void *, 4)
1020AC_CHECK_SIZEOF(char, 1)
1021AC_CHECK_SIZEOF(short, 2)
1022AC_CHECK_SIZEOF(float, 4)
1023AC_CHECK_SIZEOF(double, 8)
1024AC_CHECK_SIZEOF(fpos_t, 4)
Guido van Rossumac405f61994-09-12 10:56:06 +00001025
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001026AC_MSG_CHECKING(for long long support)
1027have_long_long=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001028AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1029 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1030 have_long_long=yes
1031])
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001032AC_MSG_RESULT($have_long_long)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001033if test "$have_long_long" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001034AC_CHECK_SIZEOF(long long, 8)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001035fi
1036
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001037AC_MSG_CHECKING(for uintptr_t support)
1038have_uintptr_t=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001039AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1040 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1041 have_uintptr_t=yes
1042])
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001043AC_MSG_RESULT($have_uintptr_t)
1044if test "$have_uintptr_t" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001045AC_CHECK_SIZEOF(uintptr_t, 4)
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001046fi
1047
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001048# Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1049AC_MSG_CHECKING(size of off_t)
1050AC_CACHE_VAL(ac_cv_sizeof_off_t,
1051[AC_TRY_RUN([#include <stdio.h>
1052#include <sys/types.h>
1053main()
1054{
1055 FILE *f=fopen("conftestval", "w");
1056 if (!f) exit(1);
1057 fprintf(f, "%d\n", sizeof(off_t));
1058 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001059}],
1060ac_cv_sizeof_off_t=`cat conftestval`,
1061ac_cv_sizeof_off_t=0,
1062ac_cv_sizeof_off_t=4)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001063])
1064AC_MSG_RESULT($ac_cv_sizeof_off_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001065AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1066[The number of bytes in an off_t.])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001067
1068AC_MSG_CHECKING(whether to enable large file support)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001069if test "$have_long_long" = yes -a \
1070 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1071 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001072 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1073 [Defined to enable large file support when an off_t is bigger than a long
1074 and long long is available and at least as big as an off_t. You may need
1075 to add some flags for configuration and compilation to enable this mode.
1076 (For Solaris and Linux, the necessary defines are already defined.)])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001077 AC_MSG_RESULT(yes)
1078else
1079 AC_MSG_RESULT(no)
1080fi
1081
Fred Drakea3f6e912000-06-29 20:44:47 +00001082# AC_CHECK_SIZEOF() doesn't include <time.h>.
1083AC_MSG_CHECKING(size of time_t)
1084AC_CACHE_VAL(ac_cv_sizeof_time_t,
1085[AC_TRY_RUN([#include <stdio.h>
1086#include <time.h>
1087main()
1088{
1089 FILE *f=fopen("conftestval", "w");
1090 if (!f) exit(1);
1091 fprintf(f, "%d\n", sizeof(time_t));
1092 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001093}],
1094ac_cv_sizeof_time_t=`cat conftestval`,
1095ac_cv_sizeof_time_t=0,
1096ac_cv_sizeof_time_t=4)
Fred Drakea3f6e912000-06-29 20:44:47 +00001097])
1098AC_MSG_RESULT($ac_cv_sizeof_time_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001099AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1100[The number of bytes in a time_t.])
Fred Drakea3f6e912000-06-29 20:44:47 +00001101
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001102
Trent Mick635f6fb2000-08-23 21:33:05 +00001103# if have pthread_t then define SIZEOF_PTHREAD_T
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001104ac_save_cc="$CC"
1105if test "$ac_cv_kpthread" = "yes"
1106then CC="$CC -Kpthread"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001107elif test "$ac_cv_kthread" = "yes"
1108then CC="$CC -Kthread"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001109elif test "$ac_cv_pthread" = "yes"
1110then CC="$CC -pthread"
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001111fi
Trent Mick635f6fb2000-08-23 21:33:05 +00001112AC_MSG_CHECKING(for pthread_t)
1113have_pthread_t=no
Guido van Rossum12580492000-09-24 16:47:19 +00001114AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
Trent Mick635f6fb2000-08-23 21:33:05 +00001115AC_MSG_RESULT($have_pthread_t)
1116if test "$have_pthread_t" = yes ; then
1117 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1118 AC_MSG_CHECKING(size of pthread_t)
1119 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1120 [AC_TRY_RUN([#include <stdio.h>
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001121#include <pthread.h>
Trent Mick635f6fb2000-08-23 21:33:05 +00001122 main()
1123 {
1124 FILE *f=fopen("conftestval", "w");
1125 if (!f) exit(1);
1126 fprintf(f, "%d\n", sizeof(pthread_t));
1127 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001128 }],
1129 ac_cv_sizeof_pthread_t=`cat conftestval`,
1130 ac_cv_sizeof_pthread_t=0,
1131 ac_cv_sizeof_pthread_t=4)
Trent Mick635f6fb2000-08-23 21:33:05 +00001132 ])
1133 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001134 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1135 [The number of bytes in a pthread_t.])
Trent Mick635f6fb2000-08-23 21:33:05 +00001136fi
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001137CC="$ac_save_cc"
Trent Mick635f6fb2000-08-23 21:33:05 +00001138
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001139AC_MSG_CHECKING(for --enable-toolbox-glue)
1140AC_ARG_ENABLE(toolbox-glue,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001141 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001142
1143if test -z "$enable_toolbox_glue"
1144then
1145 case $ac_sys_system/$ac_sys_release in
1146 Darwin/*)
1147 enable_toolbox_glue="yes";;
1148 *)
1149 enable_toolbox_glue="no";;
1150 esac
1151fi
1152case "$enable_toolbox_glue" in
1153yes)
Jack Jansen666b1e72001-10-31 12:11:48 +00001154 extra_frameworks="-framework CoreServices -framework Foundation"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001155 extra_machdep_objs="Python/mactoolboxglue.o"
Jack Jansen591cbed2001-08-15 13:55:15 +00001156 extra_undefs="-u __dummy -u _PyMac_Error"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001157 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1158 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001159 ;;
1160*)
1161 extra_frameworks=""
1162 extra_machdep_objs=""
Jack Jansen591cbed2001-08-15 13:55:15 +00001163 extra_undefs=""
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001164 ;;
1165esac
1166AC_MSG_RESULT($enable_toolbox_glue)
1167
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001168AC_SUBST(LIBTOOL_CRUFT)
1169case $ac_sys_system/$ac_sys_release in
Jack Jansen418c3b12001-11-14 10:59:57 +00001170 Darwin/1.3*)
Jack Jansenea0c3822002-08-01 21:57:49 +00001171 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
Jack Jansen418c3b12001-11-14 10:59:57 +00001172 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
Jack Jansen66b84832003-07-04 12:14:39 +00001173 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python'
Jack Jansena3891ea2001-09-07 14:25:12 +00001174 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum5839e582000-10-09 19:52:35 +00001175 Darwin/*)
Jack Jansenea0c3822002-08-01 21:57:49 +00001176 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
Jack Jansen418c3b12001-11-14 10:59:57 +00001177 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
Jack Jansen66b84832003-07-04 12:14:39 +00001178 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001179 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001180esac
1181
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001182AC_MSG_CHECKING(for --enable-framework)
1183if test "$enable_framework"
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001184then
Skip Montanarodecc6a42003-01-01 20:07:49 +00001185 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001186 # -F. is needed to allow linking to the framework while
1187 # in the build location.
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001188 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1189 [Define if you want to produce an OpenStep/Rhapsody framework
1190 (shared library plus accessory files).])
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001191 AC_MSG_RESULT(yes)
1192else
1193 AC_MSG_RESULT(no)
1194fi
1195
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001196AC_MSG_CHECKING(for dyld)
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001197case $ac_sys_system/$ac_sys_release in
1198 Darwin/*)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001199 AC_DEFINE(WITH_DYLD, 1,
1200 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1201 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1202 linker (rld). Dyld is necessary to support frameworks.])
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001203 AC_MSG_RESULT(always on for Darwin)
1204 ;;
1205 *)
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001206 AC_MSG_RESULT(no)
1207 ;;
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001208esac
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001209
Guido van Rossumac405f61994-09-12 10:56:06 +00001210# Set info about shared libraries.
Guido van Rossumac405f61994-09-12 10:56:06 +00001211AC_SUBST(SO)
1212AC_SUBST(LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001213AC_SUBST(BLDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001214AC_SUBST(CCSHARED)
1215AC_SUBST(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001216# SO is the extension of shared libraries `(including the dot!)
Guido van Rossumaef734b2001-01-10 21:09:12 +00001217# -- usually .so, .sl on HP-UX, .dll on Cygwin
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001218AC_MSG_CHECKING(SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001219if test -z "$SO"
1220then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001221 case $ac_sys_system in
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001222 hp*|HP*) SO=.sl;;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001223 CYGWIN*) SO=.dll;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001224 *) SO=.so;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001225 esac
Martin v. Löwis368de8f2003-06-14 14:46:38 +00001226else
1227 # this might also be a termcap variable, see #610332
1228 echo
1229 echo '====================================================================='
1230 echo '+ +'
1231 echo '+ WARNING: You have set SO in your environment. +'
1232 echo '+ Do you really mean to change the extension for shared libraries? +'
1233 echo '+ Continuing in 10 seconds to let you to ponder. +'
1234 echo '+ +'
1235 echo '====================================================================='
1236 sleep 10
Guido van Rossumac405f61994-09-12 10:56:06 +00001237fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001238AC_MSG_RESULT($SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001239# LDSHARED is the ld *command* used to create shared library
Martin v. Löwis5b718fc2001-09-10 15:34:42 +00001240# -- "ld" on SunOS 4.x.x, "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001241# (Shared libraries in this instance are shared modules to be loaded into
1242# Python, as opposed to building Python itself as a shared library.)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001243AC_MSG_CHECKING(LDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001244if test -z "$LDSHARED"
1245then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001246 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001247 AIX*)
1248 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
Guido van Rossumce608b02001-09-28 15:59:38 +00001249 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001250 ;;
1251 BeOS*)
1252 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
Guido van Rossumce608b02001-09-28 15:59:38 +00001253 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001254 ;;
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001255 IRIX/5*) LDSHARED="ld -shared";;
Guido van Rossum91922671997-10-09 20:24:13 +00001256 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001257 SunOS/4*) LDSHARED="ld";;
Greg Ward57c9a6632000-05-26 12:22:54 +00001258 SunOS/5*)
1259 if test "$GCC" = "yes"
Neil Schemenauer95052722001-02-19 18:17:33 +00001260 then LDSHARED='$(CC) -shared'
Martin v. Löwisaa5afe12002-10-07 06:21:41 +00001261 else LDSHARED='$(CC) -G';
Greg Ward57c9a6632000-05-26 12:22:54 +00001262 fi ;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001263 hp*|HP*) LDSHARED="ld -b";;
Guido van Rossum71001e41995-01-26 00:44:03 +00001264 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
Guido van Rossum7d473291995-01-20 14:12:16 +00001265 DYNIX/ptx*) LDSHARED="ld -G";;
Jack Jansen418c3b12001-11-14 10:59:57 +00001266 Darwin/1.3*)
Jack Jansena3891ea2001-09-07 14:25:12 +00001267 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1268 if test "$enable_framework" ; then
1269 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001270 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1271 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansena3891ea2001-09-07 14:25:12 +00001272 else
1273 # No framework. Ignore undefined symbols, assuming they come from Python
Jack Jansen418c3b12001-11-14 10:59:57 +00001274 LDSHARED="$LDSHARED -undefined suppress"
Jack Jansena3891ea2001-09-07 14:25:12 +00001275 fi ;;
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001276 Darwin/*)
1277 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1278 if test "$enable_framework" ; then
1279 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001280 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1281 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001282 else
Michael W. Hudson0c46c0c2002-03-07 09:58:56 +00001283 # No framework, use the Python app as bundle-loader
1284 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
Jack Jansenc28fc372003-02-25 13:14:43 +00001285 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001286 fi ;;
Martin v. Löwis3cba5c02002-09-16 17:50:59 +00001287 Linux*|GNU*) LDSHARED='$(CC) -shared';;
Guido van Rossum3c4bb801997-12-18 23:55:32 +00001288 dgux*) LDSHARED="ld -G";;
Guido van Rossum458e7fa1999-09-17 15:40:40 +00001289 BSD/OS*/4*) LDSHARED="gcc -shared";;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001290 OpenBSD*|FreeBSD*)
Jeremy Hylton4bcc7c52000-08-31 17:45:35 +00001291 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
Guido van Rossum0286ae82000-08-29 15:06:49 +00001292 then
1293 LDSHARED="cc -shared ${LDFLAGS}"
1294 else
1295 LDSHARED="ld -Bshareable ${LDFLAGS}"
1296 fi;;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001297 NetBSD*) LDSHARED="cc -shared ${LDFLAGS}";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001298 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001299 if test "$GCC" = "yes"
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001300 then LDSHARED='$(CC) -shared'
1301 else LDSHARED='$(CC) -G'
Martin v. Löwisbec19582001-03-21 15:57:54 +00001302 fi;;
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001303 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
Trent Mick635f6fb2000-08-23 21:33:05 +00001304 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001305 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001306 atheos*) LDSHARED="gcc -shared";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001307 *) LDSHARED="ld";;
1308 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001309fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001310AC_MSG_RESULT($LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001311BLDSHARED=${BLDSHARED-$LDSHARED}
Guido van Rossumac405f61994-09-12 10:56:06 +00001312# CCSHARED are the C *flags* used to create objects to go into a shared
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001313# library (module) -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001314AC_MSG_CHECKING(CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001315if test -z "$CCSHARED"
1316then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001317 case $ac_sys_system/$ac_sys_release in
Neil Schemenauer66252162001-02-19 04:47:42 +00001318 SunOS*) if test "$GCC" = yes;
1319 then CCSHARED="-fPIC";
1320 fi;;
Guido van Rossumaf07a441995-02-13 19:45:27 +00001321 hp*|HP*) if test "$GCC" = yes;
Martin v. Löwis703ad702001-09-05 08:36:52 +00001322 then CCSHARED="-fPIC";
Guido van Rossumaf07a441995-02-13 19:45:27 +00001323 else CCSHARED="+z";
1324 fi;;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001325 Linux*|GNU*) CCSHARED="-fPIC";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001326 BSD/OS*/4*) CCSHARED="-fpic";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001327 FreeBSD*|NetBSD*|OpenBSD*) CCSHARED="-fPIC";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001328 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001329 if test "$GCC" = "yes"
1330 then CCSHARED="-fPIC"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001331 else CCSHARED="-KPIC"
Martin v. Löwisbec19582001-03-21 15:57:54 +00001332 fi;;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001333 SCO_SV*)
1334 if test "$GCC" = "yes"
1335 then CCSHARED="-fPIC"
1336 else CCSHARED="-Kpic -belf"
1337 fi;;
Trent Mick635f6fb2000-08-23 21:33:05 +00001338 Monterey*) CCSHARED="-G";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001339 IRIX*/6*) case $CC in
1340 *gcc*) CCSHARED="-shared";;
Guido van Rossumee21f411998-04-20 18:51:54 +00001341 *) CCSHARED="";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001342 esac;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001343 atheos*) CCSHARED="-fPIC";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001344 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001345fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001346AC_MSG_RESULT($CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001347# LINKFORSHARED are the flags passed to the $(CC) command that links
Guido van Rossumb65a48e1995-06-14 18:21:23 +00001348# the python executable -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001349AC_MSG_CHECKING(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001350if test -z "$LINKFORSHARED"
1351then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001352 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001353 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
Guido van Rossum5dab3d81996-12-06 21:18:18 +00001354 hp*|HP*)
Martin v. Löwis1142de32002-03-29 16:28:31 +00001355 LINKFORSHARED="-Wl,-E -Wl,+s";;
1356# LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001357 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001358 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001359 # -u libsys_s pulls in all symbols in libsys
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001360 Darwin/*)
1361 # -u __dummy makes the linker aware of the objc runtime
1362 # in System.framework; otherwise, __objcInit (referenced in
1363 # crt1.o) gets erroneously defined as common, which breaks dynamic
1364 # loading of any modules which reference it in System.framework.
1365 # -u _PyMac_Error is needed to pull in the mac toolbox glue, which is
1366 # not used by the core itself but which needs to be in the core so
1367 # that dynamically loaded extension modules have access to it.
Jack Jansen97e3f002003-02-23 22:59:01 +00001368 # -prebind is no longer used, because it actually seems to give a
1369 # slowdown in stead of a speedup, maybe due to the large number of
1370 # dynamic loads Python does.
1371 LINKFORSHARED="$extra_undefs -framework System"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001372 if test "$enable_framework"
1373 then
Jack Jansenc8607b72003-12-08 01:10:12 +00001374 LINKFORSHARED="$LINKFORSHARED -Wl,-F. -framework Python"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001375 fi
1376 LINKFORSHARED="$LINKFORSHARED $extra_frameworks";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001377 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001378 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
Fred Drake02706f52000-09-25 15:08:46 +00001379 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001380 FreeBSD*|NetBSD*|OpenBSD*)
Guido van Rossumdf693651999-01-07 21:50:41 +00001381 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1382 then
1383 LINKFORSHARED="-Wl,--export-dynamic"
1384 fi;;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001385 SunOS/5*) case $CC in
1386 *gcc*)
Martin v. Löwisa4548572002-04-18 14:51:36 +00001387 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
Guido van Rossum8f4ceb11997-12-18 23:42:19 +00001388 then
1389 LINKFORSHARED="-Xlinker --export-dynamic"
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001390 fi;;
1391 esac;;
Jason Tishler30765592003-09-04 11:04:06 +00001392 CYGWIN*)
1393 if test $enable_shared = "no"
1394 then
1395 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1396 fi;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001397 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001398fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001399AC_MSG_RESULT($LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001400
Neil Schemenauer61c51152001-01-26 16:18:16 +00001401AC_SUBST(CFLAGSFORSHARED)
1402AC_MSG_CHECKING(CFLAGSFORSHARED)
1403if test ! "$LIBRARY" = "$LDLIBRARY"
1404then
Neil Schemenauerd9cf41c2001-01-27 21:39:17 +00001405 case $ac_sys_system in
1406 CYGWIN*)
1407 # Cygwin needs CCSHARED when building extension DLLs
1408 # but not when building the interpreter DLL.
1409 CFLAGSFORSHARED='';;
1410 *)
1411 CFLAGSFORSHARED='$(CCSHARED)'
1412 esac
Neil Schemenauer61c51152001-01-26 16:18:16 +00001413fi
1414AC_MSG_RESULT($CFLAGSFORSHARED)
1415
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001416# SHLIBS are libraries (except -lc and -lm) to link to the python shared
1417# library (with --enable-shared).
1418# For platforms on which shared libraries are not allowed to have unresolved
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001419# symbols, this must be set to $(LIBS) (expanded by make). We do this even
1420# if it is not required, since it creates a dependency of the shared library
1421# to LIBS. This, in turn, means that applications linking the shared libpython
1422# don't need to link LIBS explicitly. The default should be only changed
1423# on systems where this approach causes problems.
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001424AC_SUBST(SHLIBS)
1425AC_MSG_CHECKING(SHLIBS)
1426case "$ac_sys_system" in
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001427 *)
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001428 SHLIBS='$(LIBS)';;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001429esac
1430AC_MSG_RESULT($SHLIBS)
1431
1432
Guido van Rossum627b2d71993-12-24 10:39:16 +00001433# checks for libraries
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001434AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1435AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
Martin v. Löwis519adae2003-09-20 10:47:47 +00001436
1437# only check for sem_ini if thread support is requested
1438if test "$with_threads" = "yes" -o -z "$with_threads"; then
1439 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1440 # posix4 on Solaris 2.6
1441 # pthread (first!) on Linux
1442fi
1443
Martin v. Löwis19d17342003-06-14 21:03:05 +00001444# check if we need libintl for locale functions
1445AC_CHECK_LIB(intl, textdomain,
1446 AC_DEFINE(WITH_LIBINTL, 1,
1447 [Define to 1 if libintl is needed for locale functions.]))
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001448
1449# checks for system dependent C++ extensions support
1450case "$ac_sys_system" in
1451 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1452 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1453 [loadAndInit("", 0, "")],
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001454 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1455 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1456 and you want support for AIX C++ shared extension modules.])
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001457 AC_MSG_RESULT(yes)],
1458 [AC_MSG_RESULT(no)]);;
1459 *) ;;
1460esac
1461
Guido van Rossum70c7f481998-03-26 18:44:10 +00001462# Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
Martin v. Löwise1172582002-11-13 08:51:19 +00001463# However on SGI IRIX 4, these exist but are broken.
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001464# BeOS' sockets are stashed in libnet.
1465case "$ac_sys_system" in
1466IRIX*) ;;
Guido van Rossum2cb56601998-05-07 13:25:56 +00001467*)
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001468AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001469AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
Jeremy Hyltoncb25d5e2000-07-27 21:23:28 +00001470;;
1471esac
1472case "$ac_sys_system" in
1473BeOS*)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001474AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1475;;
1476esac
Guido van Rossum70c7f481998-03-26 18:44:10 +00001477
Guido van Rossumc5a39031996-07-31 17:35:03 +00001478AC_MSG_CHECKING(for --with-libs)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001479AC_ARG_WITH(libs,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001480 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1481[
Guido van Rossumc5a39031996-07-31 17:35:03 +00001482AC_MSG_RESULT($withval)
1483LIBS="$withval $LIBS"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001484],
1485[AC_MSG_RESULT(no)])
Guido van Rossum627b2d71993-12-24 10:39:16 +00001486
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001487# Determine if signalmodule should be used.
1488AC_SUBST(USE_SIGNAL_MODULE)
1489AC_SUBST(SIGNAL_OBJS)
1490AC_MSG_CHECKING(for --with-signal-module)
1491AC_ARG_WITH(signal-module,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001492 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001493
1494if test -z "$with_signal_module"
1495then with_signal_module="yes"
1496fi
1497AC_MSG_RESULT($with_signal_module)
1498
1499if test "${with_signal_module}" = "yes"; then
1500 USE_SIGNAL_MODULE=""
1501 SIGNAL_OBJS=""
1502else
1503 USE_SIGNAL_MODULE="#"
1504 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1505fi
1506
Guido van Rossum3d15bd82001-01-10 18:53:48 +00001507# This is used to generate Setup.config
Guido van Rossum009f7871997-12-04 00:51:42 +00001508AC_SUBST(USE_THREAD_MODULE)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001509USE_THREAD_MODULE=""
Guido van Rossum009f7871997-12-04 00:51:42 +00001510
Guido van Rossum54d93d41997-01-22 20:51:58 +00001511AC_MSG_CHECKING(for --with-dec-threads)
1512AC_SUBST(LDLAST)
1513AC_ARG_WITH(dec-threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001514 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1515[
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001516AC_MSG_RESULT($withval)
Guido van Rossum54d93d41997-01-22 20:51:58 +00001517LDLAST=-threads
Guido van Rossumf78abae1997-01-21 22:02:36 +00001518if test "${with_thread+set}" != set; then
Guido van Rossum54d93d41997-01-22 20:51:58 +00001519 with_thread="$withval";
1520fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001521[AC_MSG_RESULT(no)])
Guido van Rossum54d93d41997-01-22 20:51:58 +00001522
Martin v. Löwis11437992002-04-12 09:54:03 +00001523# Templates for things AC_DEFINEd more than once.
1524# For a single AC_DEFINE, no template is needed.
1525AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1526AH_TEMPLATE(_REENTRANT,
1527 [Define to force use of thread-safe errno, h_errno, and other functions])
1528AH_TEMPLATE(WITH_THREAD,
1529 [Define if you want to compile in rudimentary thread support])
1530
Guido van Rossum54d93d41997-01-22 20:51:58 +00001531AC_MSG_CHECKING(for --with-threads)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001532dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001533AC_ARG_WITH(threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001534 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
Guido van Rossum54d93d41997-01-22 20:51:58 +00001535
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001536# --with-thread is deprecated, but check for it anyway
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001537dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawa0f3c5c2000-06-30 16:39:35 +00001538AC_ARG_WITH(thread,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001539 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1540 [with_threads=$with_thread])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001541
1542if test -z "$with_threads"
1543then with_threads="yes"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001544fi
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001545AC_MSG_RESULT($with_threads)
Guido van Rossum6400c261997-05-22 20:34:27 +00001546
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001547AC_SUBST(THREADOBJ)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001548if test "$with_threads" = "no"
1549then
1550 USE_THREAD_MODULE="#"
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001551elif test "$ac_cv_pthread_is_default" = yes
1552then
1553 AC_DEFINE(WITH_THREAD)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001554 # Defining _REENTRANT on system with POSIX threads should not hurt.
1555 AC_DEFINE(_REENTRANT)
1556 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001557 THREADOBJ="Python/thread.o"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001558elif test "$ac_cv_kpthread" = "yes"
1559then
1560 CC="$CC -Kpthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001561 if test "$ac_cv_cxx_thread" = "yes"; then
1562 CXX="$CXX -Kpthread"
1563 fi
Martin v. Löwis130fb172001-07-19 11:00:41 +00001564 AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001565 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001566 THREADOBJ="Python/thread.o"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001567elif test "$ac_cv_kthread" = "yes"
1568then
1569 CC="$CC -Kthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001570 if test "$ac_cv_cxx_thread" = "yes"; then
1571 CXX="$CXX -Kthread"
1572 fi
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001573 AC_DEFINE(WITH_THREAD)
1574 posix_threads=yes
1575 THREADOBJ="Python/thread.o"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001576elif test "$ac_cv_pthread" = "yes"
1577then
1578 CC="$CC -pthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001579 if test "$ac_cv_cxx_thread" = "yes"; then
1580 CXX="$CXX -pthread"
1581 fi
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001582 AC_DEFINE(WITH_THREAD)
1583 posix_threads=yes
1584 THREADOBJ="Python/thread.o"
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001585else
Martin v. Löwis130fb172001-07-19 11:00:41 +00001586 if test ! -z "$with_threads" -a -d "$with_threads"
1587 then LDFLAGS="$LDFLAGS -L$with_threads"
1588 fi
1589 if test ! -z "$withval" -a -d "$withval"
1590 then LDFLAGS="$LDFLAGS -L$withval"
1591 fi
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001592
1593 # According to the POSIX spec, a pthreads implementation must
1594 # define _POSIX_THREADS in unistd.h. Some apparently don't (which ones?)
1595 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1596 AC_EGREP_CPP(yes,
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001597 [
1598#include <unistd.h>
1599#ifdef _POSIX_THREADS
1600yes
1601#endif
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001602 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1603 AC_MSG_RESULT($unistd_defines_pthreads)
1604
Martin v. Löwis130fb172001-07-19 11:00:41 +00001605 AC_DEFINE(_REENTRANT)
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001606 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1607 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001608 AC_DEFINE(HURD_C_THREADS, 1,
1609 [Define if you are using Mach cthreads directly under /include])
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001610 LIBS="$LIBS -lthreads"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001611 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001612 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1613 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001614 AC_DEFINE(MACH_C_THREADS, 1,
1615 [Define if you are using Mach cthreads under mach /])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001616 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001617 AC_MSG_CHECKING(for --with-pth)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001618 AC_ARG_WITH([pth],
1619 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1620 [AC_MSG_RESULT($withval)
1621 AC_DEFINE([WITH_THREAD])
1622 AC_DEFINE([HAVE_PTH], 1,
1623 [Define if you have GNU PTH threads.])
1624 LIBS="-lpth $LIBS"
1625 THREADOBJ="Python/thread.o"],
1626 [AC_MSG_RESULT(no)
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001627
1628 # Just looking for pthread_create in libpthread is not enough:
1629 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1630 # So we really have to include pthread.h, and then link.
1631 _libs=$LIBS
1632 LIBS="$LIBS -lpthread"
1633 AC_MSG_CHECKING([for pthread_create in -lpthread])
1634 AC_TRY_LINK([#include <pthread.h>
1635
1636void * start_routine (void *arg) { exit (0); }], [
1637pthread_create (NULL, NULL, start_routine, NULL)], [
1638 AC_MSG_RESULT(yes)
1639 AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001640 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001641 THREADOBJ="Python/thread.o"],[
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001642 LIBS=$_libs
Martin v. Löwis130fb172001-07-19 11:00:41 +00001643 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001644 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001645 THREADOBJ="Python/thread.o"],[
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001646 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1647 AC_DEFINE(ATHEOS_THREADS, 1,
1648 [Define this if you have AtheOS threads.])
1649 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001650 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001651 AC_DEFINE(BEOS_THREADS, 1,
1652 [Define this if you have BeOS threads.])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001653 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001654 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001655 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001656 LIBS="$LIBS -lpthreads"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001657 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001658 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001659 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001660 LIBS="$LIBS -lc_r"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001661 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001662 AC_CHECK_LIB(thread, __d6_pthread_create, [AC_DEFINE(WITH_THREAD)
Martin v. Löwis779ffc02002-12-02 22:17:01 +00001663 echo Systems with __d6_pthread_create are not supported anymore.
1664 echo See README
1665 exit 1
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001666 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001667 LIBS="$LIBS -lthread"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001668 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001669 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001670 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001671 LIBS="$LIBS -lpthread"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001672 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001673 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001674 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001675 LIBS="$LIBS -lcma"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001676 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001677 USE_THREAD_MODULE="#"])
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001678 ])])])])])])])])])])])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001679
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001680 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1681 LIBS="$LIBS -lmpc"
1682 THREADOBJ="Python/thread.o"
1683 USE_THREAD_MODULE=""])
1684
1685 if test "$posix_threads" != "yes"; then
1686 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1687 LIBS="$LIBS -lthread"
1688 THREADOBJ="Python/thread.o"
1689 USE_THREAD_MODULE=""])
1690 fi
1691
1692 if test "$USE_THREAD_MODULE" != "#"
1693 then
1694 # If the above checks didn't disable threads, (at least) OSF1
1695 # needs this '-threads' argument during linking.
1696 case $ac_sys_system in
1697 OSF1) LDLAST=-threads;;
1698 esac
1699 fi
1700fi
1701
1702if test "$posix_threads" = "yes"; then
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001703 if test "$unistd_defines_pthreads" = "no"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001704 AC_DEFINE(_POSIX_THREADS, 1,
1705 [Define if you have POSIX threads,
1706 and your system does not define that.])
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001707 fi
1708
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001709 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1710 case $ac_sys_system/$ac_sys_release in
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001711 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1712 Defined for Solaris 2.6 bug in pthread header.)
1713 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001714 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001715 Define if the Posix semaphores do not work on your system)
1716 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001717 esac
1718
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001719 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1720 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1721 [AC_TRY_RUN([#include <pthread.h>
1722 void *foo(void *parm) {
1723 return NULL;
1724 }
1725 main() {
1726 pthread_attr_t attr;
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001727 pthread_t id;
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001728 if (pthread_attr_init(&attr)) exit(-1);
1729 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001730 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001731 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001732 }],
1733 ac_cv_pthread_system_supported=yes,
1734 ac_cv_pthread_system_supported=no,
1735 ac_cv_pthread_system_supported=no)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001736 ])
1737 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1738 if test "$ac_cv_pthread_system_supported" = "yes"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001739 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001740 fi
Jason Tishlerfac083d2003-07-22 15:20:49 +00001741 AC_CHECK_FUNCS(pthread_sigmask,
1742 [case $ac_sys_system in
1743 CYGWIN*)
1744 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1745 [Define if pthread_sigmask() does not work on your system.])
1746 ;;
1747 esac])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001748fi
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001749
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001750
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001751# Check for enable-ipv6
Martin v. Löwis11437992002-04-12 09:54:03 +00001752AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001753AC_MSG_CHECKING([if --enable-ipv6 is specified])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001754AC_ARG_ENABLE(ipv6,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001755[ --enable-ipv6 Enable ipv6 (with ipv4) support
1756 --disable-ipv6 Disable ipv6 support],
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001757[ case "$enableval" in
1758 no)
1759 AC_MSG_RESULT(no)
1760 ipv6=no
1761 ;;
1762 *) AC_MSG_RESULT(yes)
1763 AC_DEFINE(ENABLE_IPV6)
1764 ipv6=yes
1765 ;;
1766 esac ],
1767
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001768[
1769dnl the check does not work on cross compilation case...
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001770 AC_TRY_RUN([ /* AF_INET6 available check */
1771#include <sys/types.h>
1772#include <sys/socket.h>
1773main()
1774{
1775 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1776 exit(1);
1777 else
1778 exit(0);
1779}
1780],
1781 AC_MSG_RESULT(yes)
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001782 ipv6=yes,
1783 AC_MSG_RESULT(no)
1784 ipv6=no,
1785 AC_MSG_RESULT(no)
1786 ipv6=no
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001787)
1788
1789if test "$ipv6" = "yes"; then
1790 AC_MSG_CHECKING(if RFC2553 API is available)
1791 AC_TRY_COMPILE([#include <sys/types.h>
1792#include <netinet/in.h>],
1793 [struct sockaddr_in6 x;
1794x.sin6_scope_id;],
1795 AC_MSG_RESULT(yes)
1796 ipv6=yes,
1797 AC_MSG_RESULT(no, IPv6 disabled)
1798 ipv6=no)
1799fi
1800
1801if test "$ipv6" = "yes"; then
1802 AC_DEFINE(ENABLE_IPV6)
1803fi
1804])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001805
1806ipv6type=unknown
1807ipv6lib=none
1808ipv6trylibc=no
1809
1810if test "$ipv6" = "yes"; then
1811 AC_MSG_CHECKING([ipv6 stack type])
Guido van Rossumb8552162001-09-05 14:58:11 +00001812 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1813 do
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001814 case $i in
1815 inria)
1816 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001817 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001818#include <netinet/in.h>
1819#ifdef IPV6_INRIA_VERSION
1820yes
1821#endif],
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001822 [ipv6type=$i])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001823 ;;
1824 kame)
1825 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001826 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001827#include <netinet/in.h>
1828#ifdef __KAME__
1829yes
1830#endif],
1831 [ipv6type=$i;
1832 ipv6lib=inet6
1833 ipv6libdir=/usr/local/v6/lib
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001834 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001835 ;;
1836 linux-glibc)
1837 dnl http://www.v6.linux.or.jp/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001838 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001839#include <features.h>
1840#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
1841yes
1842#endif],
1843 [ipv6type=$i;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001844 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001845 ;;
1846 linux-inet6)
1847 dnl http://www.v6.linux.or.jp/
1848 if test -d /usr/inet6; then
1849 ipv6type=$i
1850 ipv6lib=inet6
1851 ipv6libdir=/usr/inet6/lib
Skip Montanarodecc6a42003-01-01 20:07:49 +00001852 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001853 fi
1854 ;;
1855 solaris)
1856 if test -f /etc/netconfig; then
1857 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
1858 ipv6type=$i
1859 ipv6trylibc=yes
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001860 fi
1861 fi
1862 ;;
1863 toshiba)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001864 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001865#include <sys/param.h>
1866#ifdef _TOSHIBA_INET6
1867yes
1868#endif],
1869 [ipv6type=$i;
1870 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001871 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001872 ;;
1873 v6d)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001874 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001875#include </usr/local/v6/include/sys/v6config.h>
1876#ifdef __V6D__
1877yes
1878#endif],
1879 [ipv6type=$i;
1880 ipv6lib=v6;
1881 ipv6libdir=/usr/local/v6/lib;
Skip Montanarodecc6a42003-01-01 20:07:49 +00001882 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001883 ;;
1884 zeta)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001885 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001886#include <sys/param.h>
1887#ifdef _ZETA_MINAMI_INET6
1888yes
1889#endif],
1890 [ipv6type=$i;
1891 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001892 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001893 ;;
1894 esac
1895 if test "$ipv6type" != "unknown"; then
1896 break
1897 fi
1898 done
1899 AC_MSG_RESULT($ipv6type)
1900fi
1901
1902if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
1903 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
1904 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
1905 echo "using lib$ipv6lib"
1906 else
1907 if test $ipv6trylibc = "yes"; then
1908 echo "using libc"
1909 else
1910 echo 'Fatal: no $ipv6lib library found. cannot continue.'
1911 echo "You need to fetch lib$ipv6lib.a from appropriate"
1912 echo 'ipv6 kit and compile beforehand.'
1913 exit 1
1914 fi
1915 fi
1916fi
1917
Jack Jansen7b8c7542002-04-14 20:12:41 +00001918# Check for universal newline support
Guido van Rossum402905e2002-08-15 13:56:35 +00001919AC_MSG_CHECKING(for --with-universal-newlines)
Jack Jansen7b8c7542002-04-14 20:12:41 +00001920AC_ARG_WITH(universal-newlines,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001921 AC_HELP_STRING(--with(out)-universal-newlines, disable/enable foreign newlines))
Jack Jansen7b8c7542002-04-14 20:12:41 +00001922
1923if test -z "$with_universal_newlines"
1924then with_universal_newlines="yes"
1925fi
Martin v. Löwis7e4cfcb2002-12-19 16:21:49 +00001926if test "$with_universal_newlines" = "no"
Martin v. Löwis03d00d52002-12-19 19:03:31 +00001927then
Martin v. Löwis7e4cfcb2002-12-19 16:21:49 +00001928 echo --without-universal-newlines is unsupported, see README
1929 exit 1
Martin v. Löwis03d00d52002-12-19 19:03:31 +00001930else
Martin v. Löwise8aea582002-04-16 05:51:02 +00001931 AC_DEFINE(WITH_UNIVERSAL_NEWLINES, 1,
1932 [Define if you want to read files with foreign newlines.])
Jack Jansen7b8c7542002-04-14 20:12:41 +00001933fi
1934AC_MSG_RESULT($with_universal_newlines)
1935
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001936# Check for --with-doc-strings
1937AC_MSG_CHECKING(for --with-doc-strings)
1938AC_ARG_WITH(doc-strings,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001939 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001940
1941if test -z "$with_doc_strings"
1942then with_doc_strings="yes"
1943fi
1944if test "$with_doc_strings" != "no"
1945then
1946 AC_DEFINE(WITH_DOC_STRINGS, 1,
1947 [Define if you want documentation strings in extension modules])
1948fi
1949AC_MSG_RESULT($with_doc_strings)
1950
Neil Schemenauera35c6882001-02-27 04:45:05 +00001951# Check for Python-specific malloc support
1952AC_MSG_CHECKING(for --with-pymalloc)
1953AC_ARG_WITH(pymalloc,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001954 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
Neil Schemenauer16c22972002-03-22 15:34:49 +00001955
1956if test -z "$with_pymalloc"
1957then with_pymalloc="yes"
1958fi
1959if test "$with_pymalloc" != "no"
1960then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001961 AC_DEFINE(WITH_PYMALLOC, 1,
1962 [Define if you want to compile in Python-specific mallocs])
Neil Schemenauer16c22972002-03-22 15:34:49 +00001963fi
1964AC_MSG_RESULT($with_pymalloc)
Neil Schemenauera35c6882001-02-27 04:45:05 +00001965
Barry Warsawef82cd72000-06-30 16:21:01 +00001966# Check for --with-wctype-functions
1967AC_MSG_CHECKING(for --with-wctype-functions)
1968AC_ARG_WITH(wctype-functions,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001969 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
1970[
Barry Warsawef82cd72000-06-30 16:21:01 +00001971if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001972then
1973 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
1974 [Define if you want wctype.h functions to be used instead of the
1975 one supplied by Python itself. (see Include/unicodectype.h).])
1976 AC_MSG_RESULT(yes)
Barry Warsawef82cd72000-06-30 16:21:01 +00001977else AC_MSG_RESULT(no)
1978fi],
1979[AC_MSG_RESULT(no)])
1980
Guido van Rossum68242b51996-05-28 22:53:03 +00001981# -I${DLINCLDIR} is added to the compile rule for importdl.o
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001982AC_SUBST(DLINCLDIR)
Guido van Rossum98935bf2001-09-05 19:13:16 +00001983DLINCLDIR=.
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001984
Guido van Rossum5739e7e1995-01-20 16:50:53 +00001985AC_MSG_CHECKING(for --with-sgi-dl)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001986AC_ARG_WITH(sgi-dl,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001987 AC_HELP_STRING(--with-sgi-dl=DIRECTORY, IRIX 4 dynamic linking),
1988[
Guido van Rossum5739e7e1995-01-20 16:50:53 +00001989AC_MSG_RESULT($withval)
Martin v. Löwis9ef33762002-12-02 22:23:56 +00001990echo --with-sgi-dl is unsupported, see README
Martin v. Löwis779ffc02002-12-02 22:17:01 +00001991exit 1
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001992AC_DEFINE(WITH_SGI_DL, 1,
1993 [Define if you want to use SGI (IRIX 4) dynamic linking.
1994 This requires the "dl" library by Jack Jansen,
1995 ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
1996 Do not bother on IRIX 5, it already has dynamic linking using SunOS
1997 style shared libraries])
Guido van Rossume97ee181999-12-20 21:27:22 +00001998DYNLOADFILE="dynload_dl.o"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001999dldir=$withval
Guido van Rossum40951012000-10-07 16:21:27 +00002000if test ! -z "$dldir" -a -d "$dldir"
Guido van Rossum300fda71996-08-19 21:58:16 +00002001then LDFLAGS="$LDFLAGS -L$dldir"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002002else AC_MSG_ERROR([proper usage is --with-sgi-dl=DIRECTORY])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002003fi
2004DLINCLDIR=${dldir}
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002005LIBS="$LIBS -ldl -lmld"], AC_MSG_RESULT(no))
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002006
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002007AC_MSG_CHECKING(for --with-dl-dld)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002008AC_ARG_WITH(dl-dld,
2009 AC_HELP_STRING(--with-dl-dld=DL_DIR, GNU dynamic linking),
2010[
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002011AC_MSG_RESULT($withval)
Martin v. Löwis9ef33762002-12-02 22:23:56 +00002012echo --with-dl-dld is unsupported, see README
Martin v. Löwis779ffc02002-12-02 22:17:01 +00002013exit 1
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002014AC_DEFINE(WITH_DL_DLD, 1,
2015 [Define if you want to emulate SGI (IRIX 4) dynamic linking.
2016 This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
2017 Sequent Symmetry (Dynix), and Atari ST.
2018 This requires the 'dl-dld' library,
2019 ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
2020 as well as the 'GNU dld' library,
2021 ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
2022 Do not bother on SunOS 4 or 5, they already have dynamic linking using
2023 shared libraries.])
Guido van Rossume97ee181999-12-20 21:27:22 +00002024DYNLOADFILE="dynload_dl.o"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002025dldir=`echo "$withval" | sed 's/,.*//'`
2026dlddir=`echo "$withval" | sed 's/.*,//'`
Barry Warsaw7d1219d2000-10-05 18:45:53 +00002027if test ! -z "$dldir" -a -d "$dldir" -a ! -z "$dlddir" -a -d "$dlddir"
Guido van Rossum300fda71996-08-19 21:58:16 +00002028then LDFLAGS="$LDFLAGS -L$dldir -L$dlddir"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002029else AC_MSG_ERROR([proper usage is --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002030fi
2031DLINCLDIR=${dldir}
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002032LIBS="$LIBS -ldl -ldld"], AC_MSG_RESULT(no))
Guido van Rossum627b2d71993-12-24 10:39:16 +00002033
Guido van Rossume97ee181999-12-20 21:27:22 +00002034# the dlopen() function means we might want to use dynload_shlib.o. some
2035# platforms, such as AIX, have dlopen(), but don't want to use it.
Thomas Wouters3a584202000-08-05 23:28:51 +00002036AC_CHECK_FUNCS(dlopen)
Guido van Rossume97ee181999-12-20 21:27:22 +00002037
2038# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2039# loading of modules.
2040AC_SUBST(DYNLOADFILE)
2041AC_MSG_CHECKING(DYNLOADFILE)
2042if test -z "$DYNLOADFILE"
2043then
2044 case $ac_sys_system/$ac_sys_release in
Martin v. Löwisc19c5a62003-11-18 20:00:44 +00002045 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2046 if test "$ac_cv_func_dlopen" = yes
2047 then DYNLOADFILE="dynload_shlib.o"
2048 else DYNLOADFILE="dynload_aix.o"
2049 fi
2050 ;;
Guido van Rossume97ee181999-12-20 21:27:22 +00002051 BeOS*) DYNLOADFILE="dynload_beos.o";;
2052 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002053 Darwin/*) DYNLOADFILE="dynload_next.o";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00002054 atheos*) DYNLOADFILE="dynload_atheos.o";;
Guido van Rossume97ee181999-12-20 21:27:22 +00002055 *)
2056 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2057 # out any dynamic loading
2058 if test "$ac_cv_func_dlopen" = yes
2059 then DYNLOADFILE="dynload_shlib.o"
2060 else DYNLOADFILE="dynload_stub.o"
2061 fi
2062 ;;
2063 esac
2064fi
2065AC_MSG_RESULT($DYNLOADFILE)
2066if test "$DYNLOADFILE" != "dynload_stub.o"
2067then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002068 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2069 [Defined when any dynamic module loading is enabled.])
Guido van Rossume97ee181999-12-20 21:27:22 +00002070fi
2071
Jack Jansenc49e5b72001-06-19 15:00:23 +00002072# MACHDEP_OBJS can be set to platform-specific object files needed by Python
2073
2074AC_SUBST(MACHDEP_OBJS)
2075AC_MSG_CHECKING(MACHDEP_OBJS)
2076if test -z "$MACHDEP_OBJS"
2077then
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002078 MACHDEP_OBJS=$extra_machdep_objs
2079else
2080 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
Jack Jansenc49e5b72001-06-19 15:00:23 +00002081fi
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002082AC_MSG_RESULT(MACHDEP_OBJS)
Jack Jansenc49e5b72001-06-19 15:00:23 +00002083
Guido van Rossum627b2d71993-12-24 10:39:16 +00002084# checks for library functions
Martin v. Löwisd5843682002-11-21 20:41:28 +00002085AC_CHECK_FUNCS(alarm chown clock confstr ctermid execv \
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002086 fork fpathconf ftime ftruncate \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002087 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
Martin v. Löwis49ee14d2003-11-10 06:35:36 +00002088 getpriority getpwent getsid getwd \
Martin v. Löwise9416172003-05-03 10:12:45 +00002089 kill killpg lchown lstat mkfifo mknod mktime \
Martin v. Löwisa5f09072002-10-11 05:37:59 +00002090 mremap nice pathconf pause plock poll pthread_init \
Guido van Rossum162e38c2003-02-19 15:25:10 +00002091 putenv readlink realpath \
Martin v. Löwisd5843682002-11-21 20:41:28 +00002092 select setegid seteuid setgid \
Martin v. Löwis4daacb12003-03-28 18:37:01 +00002093 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002094 sigaction siginterrupt sigrelse strftime strptime \
Michael W. Hudson34f20ea2002-05-27 15:08:24 +00002095 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002096 truncate uname unsetenv utimes waitpid wcscoll _getpty)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002097
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002098# For some functions, having a definition is not sufficient, since
2099# we want to take their address.
2100AC_MSG_CHECKING(for chroot)
2101AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2102 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2103 AC_MSG_RESULT(yes),
2104 AC_MSG_RESULT(no)
2105)
2106AC_MSG_CHECKING(for link)
2107AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2108 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2109 AC_MSG_RESULT(yes),
2110 AC_MSG_RESULT(no)
2111)
2112AC_MSG_CHECKING(for symlink)
2113AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2114 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2115 AC_MSG_RESULT(yes),
2116 AC_MSG_RESULT(no)
2117)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002118AC_MSG_CHECKING(for fchdir)
2119AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2120 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2121 AC_MSG_RESULT(yes),
2122 AC_MSG_RESULT(no)
2123)
2124AC_MSG_CHECKING(for fsync)
2125AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
Skip Montanarod4fa8072003-09-25 14:49:15 +00002126 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002127 AC_MSG_RESULT(yes),
2128 AC_MSG_RESULT(no)
2129)
2130AC_MSG_CHECKING(for fdatasync)
2131AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2132 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2133 AC_MSG_RESULT(yes),
2134 AC_MSG_RESULT(no)
2135)
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002136
Martin v. Löwisd5843682002-11-21 20:41:28 +00002137# On some systems (eg. FreeBSD 5), we would find a definition of the
2138# functions ctermid_r, setgroups in the library, but no prototype
2139# (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2140# address to avoid compiler warnings and potential miscompilations
2141# because of the missing prototypes.
2142
2143AC_MSG_CHECKING(for ctermid_r)
2144AC_TRY_COMPILE([
2145#include "confdefs.h"
2146#include <stdio.h>
2147], void* p = ctermid_r,
2148 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2149 AC_MSG_RESULT(yes),
2150 AC_MSG_RESULT(no)
2151)
2152
Martin v. Löwisf26d63b2003-03-30 17:23:49 +00002153AC_MSG_CHECKING(for flock)
2154AC_TRY_COMPILE([
2155#include "confdefs.h"
2156#include <sys/file.h>
2157], void* p = flock,
2158 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2159 AC_MSG_RESULT(yes),
2160 AC_MSG_RESULT(no)
2161)
2162
2163AC_MSG_CHECKING(for getpagesize)
2164AC_TRY_COMPILE([
2165#include "confdefs.h"
2166#include <unistd.h>
2167], void* p = getpagesize,
2168 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2169 AC_MSG_RESULT(yes),
2170 AC_MSG_RESULT(no)
2171)
2172
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002173dnl check for true
2174AC_CHECK_PROGS(TRUE, true, /bin/true)
2175
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002176dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2177dnl On others, they are in the C library, so we to take no action
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002178AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002179 AC_CHECK_LIB(resolv, inet_aton)
2180)
2181
Martin v. Löwise9416172003-05-03 10:12:45 +00002182AC_MSG_CHECKING(for hstrerror)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002183AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002184#include "confdefs.h"
2185#include <netdb.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002186], void* p = hstrerror; hstrerror(0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002187 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2188 AC_MSG_RESULT(yes),
2189 AC_MSG_RESULT(no)
2190)
2191
2192AC_MSG_CHECKING(for inet_aton)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002193AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002194#include "confdefs.h"
2195#include <sys/socket.h>
2196#include <netinet/in.h>
2197#include <arpa/inet.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002198], void* p = inet_aton;inet_aton(0,0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002199 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2200 AC_MSG_RESULT(yes),
2201 AC_MSG_RESULT(no)
2202)
2203
2204AC_MSG_CHECKING(for inet_pton)
2205AC_TRY_COMPILE([
2206#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002207#include <sys/types.h>
Martin v. Löwise9416172003-05-03 10:12:45 +00002208#include <sys/socket.h>
2209#include <netinet/in.h>
2210#include <arpa/inet.h>
2211], void* p = inet_pton,
2212 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2213 AC_MSG_RESULT(yes),
2214 AC_MSG_RESULT(no)
2215)
2216
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002217# On some systems, setgroups is in unistd.h, on others, in grp.h
Martin v. Löwisd5843682002-11-21 20:41:28 +00002218AC_MSG_CHECKING(for setgroups)
2219AC_TRY_COMPILE([
2220#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002221#include <unistd.h>
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002222#ifdef HAVE_GRP_H
2223#include <grp.h>
2224#endif
Martin v. Löwisd5843682002-11-21 20:41:28 +00002225],
2226void* p = setgroups,
2227 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2228 AC_MSG_RESULT(yes),
2229 AC_MSG_RESULT(no)
2230)
2231
Fred Drake8cef4cf2000-06-28 16:40:38 +00002232# check for openpty and forkpty
2233
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002234AC_CHECK_FUNCS(openpty,, AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"]))
2235AC_CHECK_FUNCS(forkpty,, AC_CHECK_LIB(util,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"]))
Fred Drake8cef4cf2000-06-28 16:40:38 +00002236
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002237# check for long file support functions
2238AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2239
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002240AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002241AC_CHECK_FUNCS(getpgrp,
2242 AC_TRY_COMPILE([#include <unistd.h>],
2243 [getpgrp(0);],
2244 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2245 [Define if getpgrp() must be called as getpgrp(0).])
2246 )
2247)
Jack Jansen150753c2003-03-29 22:07:47 +00002248AC_CHECK_FUNCS(setpgrp,
2249 AC_TRY_COMPILE([#include <unistd.h>],
2250 [setpgrp(0,0);],
2251 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2252 [Define if setpgrp() must be called as setpgrp(0, 0).])
2253 )
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002254)
2255AC_CHECK_FUNCS(gettimeofday,
2256 AC_TRY_COMPILE([#include <sys/time.h>],
2257 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2258 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2259 [Define if gettimeofday() does not have second (timezone) argument
2260 This is the case on Motorola V4 (R40V4.2)])
2261 )
2262)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002263
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002264AC_MSG_CHECKING(for major, minor, and makedev)
Martin v. Löwise3271202002-11-07 07:42:30 +00002265AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +00002266#if defined(MAJOR_IN_MKDEV)
2267#include <sys/mkdev.h>
2268#elif defined(MAJOR_IN_SYSMACROS)
2269#include <sys/sysmacros.h>
2270#else
2271#include <sys/types.h>
2272#endif
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002273],[
2274 makedev(major(0),minor(0));
2275],[
2276 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2277 [Define to 1 if you have the device macros.])
2278 AC_MSG_RESULT(yes)
2279],[
2280 AC_MSG_RESULT(no)
2281])
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002282
2283# On OSF/1 V5.1, getaddrinfo is available, but a define
2284# for [no]getaddrinfo in netdb.h.
2285AC_MSG_CHECKING(for getaddrinfo)
2286AC_TRY_LINK([
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002287#include <sys/types.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002288#include <sys/socket.h>
2289#include <netdb.h>
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002290#include <stdio.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002291],[
2292getaddrinfo(NULL, NULL, NULL, NULL);
2293], [
2294AC_MSG_RESULT(yes)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002295AC_MSG_CHECKING(getaddrinfo bug)
2296AC_TRY_RUN([
2297#include <sys/types.h>
2298#include <netdb.h>
2299#include <string.h>
2300#include <sys/socket.h>
2301#include <netinet/in.h>
2302
2303main()
2304{
2305 int passive, gaierr, inet4 = 0, inet6 = 0;
2306 struct addrinfo hints, *ai, *aitop;
2307 char straddr[INET6_ADDRSTRLEN], strport[16];
2308
2309 for (passive = 0; passive <= 1; passive++) {
2310 memset(&hints, 0, sizeof(hints));
2311 hints.ai_family = AF_UNSPEC;
2312 hints.ai_flags = passive ? AI_PASSIVE : 0;
2313 hints.ai_socktype = SOCK_STREAM;
2314 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2315 (void)gai_strerror(gaierr);
2316 goto bad;
2317 }
2318 for (ai = aitop; ai; ai = ai->ai_next) {
2319 if (ai->ai_addr == NULL ||
2320 ai->ai_addrlen == 0 ||
2321 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2322 straddr, sizeof(straddr), strport, sizeof(strport),
2323 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2324 goto bad;
2325 }
2326 switch (ai->ai_family) {
2327 case AF_INET:
2328 if (strcmp(strport, "54321") != 0) {
2329 goto bad;
2330 }
2331 if (passive) {
2332 if (strcmp(straddr, "0.0.0.0") != 0) {
2333 goto bad;
2334 }
2335 } else {
2336 if (strcmp(straddr, "127.0.0.1") != 0) {
2337 goto bad;
2338 }
2339 }
2340 inet4++;
2341 break;
2342 case AF_INET6:
2343 if (strcmp(strport, "54321") != 0) {
2344 goto bad;
2345 }
2346 if (passive) {
2347 if (strcmp(straddr, "::") != 0) {
2348 goto bad;
2349 }
2350 } else {
2351 if (strcmp(straddr, "::1") != 0) {
2352 goto bad;
2353 }
2354 }
2355 inet6++;
2356 break;
2357 case AF_UNSPEC:
2358 goto bad;
2359 break;
2360 default:
2361 /* another family support? */
2362 break;
2363 }
2364 }
2365 }
2366
2367 if (!(inet4 == 0 || inet4 == 2))
2368 goto bad;
2369 if (!(inet6 == 0 || inet6 == 2))
2370 goto bad;
2371
2372 if (aitop)
2373 freeaddrinfo(aitop);
2374 exit(0);
2375
2376 bad:
2377 if (aitop)
2378 freeaddrinfo(aitop);
2379 exit(1);
2380}
2381],
2382AC_MSG_RESULT(good)
2383buggygetaddrinfo=no,
2384AC_MSG_RESULT(buggy)
2385buggygetaddrinfo=yes,
2386AC_MSG_RESULT(buggy)
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002387buggygetaddrinfo=yes)], [
2388AC_MSG_RESULT(no)
2389buggygetaddrinfo=yes
2390])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002391
2392if test "$buggygetaddrinfo" = "yes"; then
2393 if test "$ipv6" = "yes"; then
2394 echo 'Fatal: You must get working getaddrinfo() function.'
2395 echo ' or you can specify "--disable-ipv6"'.
2396 exit 1
2397 fi
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002398else
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002399 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002400fi
Thomas Woutersb0db85a2001-08-08 10:39:03 +00002401AC_CHECK_FUNCS(getnameinfo)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002402
Guido van Rossum627b2d71993-12-24 10:39:16 +00002403# checks for structures
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002404AC_HEADER_TIME
Guido van Rossum627b2d71993-12-24 10:39:16 +00002405AC_STRUCT_TM
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002406AC_STRUCT_TIMEZONE
Martin v. Löwis60a5d722002-10-16 20:28:25 +00002407AC_CHECK_MEMBERS([struct stat.st_rdev])
2408AC_CHECK_MEMBERS([struct stat.st_blksize])
Guido van Rossum98bf58f2001-10-18 20:34:25 +00002409AC_STRUCT_ST_BLOCKS
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002410
2411AC_MSG_CHECKING(for time.h that defines altzone)
2412AC_CACHE_VAL(ac_cv_header_time_altzone,
2413[AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2414 ac_cv_header_time_altzone=yes,
2415 ac_cv_header_time_altzone=no)])
2416AC_MSG_RESULT($ac_cv_header_time_altzone)
2417if test $ac_cv_header_time_altzone = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002418 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002419fi
2420
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002421was_it_defined=no
2422AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002423AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002424#include <sys/types.h>
2425#include <sys/select.h>
2426#include <sys/time.h>
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002427], [;], [
2428 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2429 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2430 (which you can't on SCO ODT 3.0).])
2431 was_it_defined=yes
2432])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002433AC_MSG_RESULT($was_it_defined)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002434
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002435AC_MSG_CHECKING(for addrinfo)
2436AC_CACHE_VAL(ac_cv_struct_addrinfo,
2437AC_TRY_COMPILE([
2438# include <netdb.h>],
2439 [struct addrinfo a],
2440 ac_cv_struct_addrinfo=yes,
2441 ac_cv_struct_addrinfo=no))
2442AC_MSG_RESULT($ac_cv_struct_addrinfo)
2443if test $ac_cv_struct_addrinfo = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002444 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002445fi
2446
2447AC_MSG_CHECKING(for sockaddr_storage)
2448AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2449AC_TRY_COMPILE([
2450# include <sys/types.h>
2451# include <sys/socket.h>],
2452 [struct sockaddr_storage s],
2453 ac_cv_struct_sockaddr_storage=yes,
2454 ac_cv_struct_sockaddr_storage=no))
2455AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2456if test $ac_cv_struct_sockaddr_storage = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002457 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002458fi
2459
Guido van Rossum627b2d71993-12-24 10:39:16 +00002460# checks for compiler characteristics
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002461
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002462AC_C_CHAR_UNSIGNED
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002463AC_C_CONST
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002464
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002465works=no
2466AC_MSG_CHECKING(for working volatile)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002467AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2468 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2469)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002470AC_MSG_RESULT($works)
Guido van Rossumdabb11b1994-10-11 15:04:27 +00002471
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002472works=no
2473AC_MSG_CHECKING(for working signed char)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002474AC_TRY_COMPILE([], [signed char c;], works=yes,
2475 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2476)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002477AC_MSG_RESULT($works)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002478
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002479have_prototypes=no
2480AC_MSG_CHECKING(for prototypes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002481AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2482 AC_DEFINE(HAVE_PROTOTYPES, 1,
2483 [Define if your compiler supports function prototype])
2484 have_prototypes=yes
2485])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002486AC_MSG_RESULT($have_prototypes)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002487
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002488works=no
2489AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002490AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002491#include <stdarg.h>
Guido van Rossum3f13e481996-08-30 20:58:11 +00002492int foo(int x, ...) {
2493 va_list va;
2494 va_start(va, x);
2495 va_arg(va, int);
2496 va_arg(va, char *);
2497 va_arg(va, double);
2498 return 0;
2499}
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002500], [return foo(10, "", 3.14);], [
2501 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2502 [Define if your compiler supports variable length function prototypes
2503 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2504 works=yes
2505])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002506AC_MSG_RESULT($works)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002507
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002508if test "$have_prototypes" = yes; then
2509bad_prototypes=no
2510AC_MSG_CHECKING(for bad exec* prototypes)
2511AC_TRY_COMPILE([#include <unistd.h>], [char **t;execve("@",t,t);], ,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002512 AC_DEFINE(BAD_EXEC_PROTOTYPES, 1,
2513 [Define if your <unistd.h> contains bad prototypes for exec*()
2514 (as it does on SGI IRIX 4.x)])
2515 bad_prototypes=yes
2516)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002517AC_MSG_RESULT($bad_prototypes)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002518fi
2519
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002520# check if sockaddr has sa_len member
2521AC_MSG_CHECKING(if sockaddr has sa_len member)
2522AC_TRY_COMPILE([#include <sys/types.h>
2523#include <sys/socket.h>],
2524[struct sockaddr x;
2525x.sa_len = 0;],
2526 AC_MSG_RESULT(yes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002527 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002528 AC_MSG_RESULT(no))
2529
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002530va_list_is_array=no
2531AC_MSG_CHECKING(whether va_list is an array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002532AC_TRY_COMPILE([
2533#ifdef HAVE_STDARG_PROTOTYPES
2534#include <stdarg.h>
2535#else
2536#include <varargs.h>
2537#endif
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002538], [va_list list1, list2; list1 = list2;], , [
2539 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2540 va_list_is_array=yes
2541])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002542AC_MSG_RESULT($va_list_is_array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002543
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002544# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
Martin v. Löwis11437992002-04-12 09:54:03 +00002545AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2546 [Define this if you have some version of gethostbyname_r()])
2547
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002548AC_CHECK_FUNC(gethostbyname_r, [
2549 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2550 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2551 OLD_CFLAGS=$CFLAGS
2552 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2553 AC_TRY_COMPILE([
2554# include <netdb.h>
2555 ], [
2556 char *name;
2557 struct hostent *he, *res;
2558 char buffer[2048];
2559 int buflen = 2048;
2560 int h_errnop;
2561
2562 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2563 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002564 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002565 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2566 [Define this if you have the 6-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002567 AC_MSG_RESULT(yes)
2568 ], [
2569 AC_MSG_RESULT(no)
2570 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2571 AC_TRY_COMPILE([
2572# include <netdb.h>
2573 ], [
2574 char *name;
2575 struct hostent *he;
2576 char buffer[2048];
2577 int buflen = 2048;
2578 int h_errnop;
2579
2580 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2581 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002582 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002583 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2584 [Define this if you have the 5-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002585 AC_MSG_RESULT(yes)
2586 ], [
2587 AC_MSG_RESULT(no)
2588 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2589 AC_TRY_COMPILE([
2590# include <netdb.h>
2591 ], [
2592 char *name;
2593 struct hostent *he;
2594 struct hostent_data data;
2595
2596 (void) gethostbyname_r(name, he, &data);
2597 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002598 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002599 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2600 [Define this if you have the 3-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002601 AC_MSG_RESULT(yes)
2602 ], [
2603 AC_MSG_RESULT(no)
2604 ])
2605 ])
2606 ])
2607 CFLAGS=$OLD_CFLAGS
2608], [
Thomas Wouters3a584202000-08-05 23:28:51 +00002609 AC_CHECK_FUNCS(gethostbyname)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002610])
2611AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2612AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2613AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002614AC_SUBST(HAVE_GETHOSTBYNAME_R)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002615AC_SUBST(HAVE_GETHOSTBYNAME)
2616
Guido van Rossum627b2d71993-12-24 10:39:16 +00002617# checks for system services
2618# (none yet)
2619
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002620# Linux requires this for correct f.p. operations
Jeremy Hyltonbe28f5b2000-07-27 21:03:04 +00002621AC_CHECK_FUNC(__fpu_control,
2622 [],
2623 [AC_CHECK_LIB(ieee, __fpu_control)
2624])
Guido van Rossum627b2d71993-12-24 10:39:16 +00002625
Guido van Rossum93274221997-05-09 02:42:00 +00002626# Check for --with-fpectl
Guido van Rossum93274221997-05-09 02:42:00 +00002627AC_MSG_CHECKING(for --with-fpectl)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00002628AC_ARG_WITH(fpectl,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002629 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2630[
Guido van Rossum93274221997-05-09 02:42:00 +00002631if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002632then
2633 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2634 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2635 AC_MSG_RESULT(yes)
Guido van Rossum93274221997-05-09 02:42:00 +00002636else AC_MSG_RESULT(no)
Guido van Rossumef2255b2000-03-10 22:30:29 +00002637fi],
2638[AC_MSG_RESULT(no)])
Guido van Rossum93274221997-05-09 02:42:00 +00002639
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002640# check for --with-libm=...
2641AC_SUBST(LIBM)
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002642case $ac_sys_system in
Guido van Rossum3dc0a512000-10-05 18:00:06 +00002643Darwin) ;;
Guido van Rossumec95c7b1998-08-04 17:59:56 +00002644BeOS) ;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002645*) LIBM=-lm
2646esac
Guido van Rossum93274221997-05-09 02:42:00 +00002647AC_MSG_CHECKING(for --with-libm=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002648AC_ARG_WITH(libm,
2649 AC_HELP_STRING(--with-libm=STRING, math library),
2650[
Guido van Rossum93274221997-05-09 02:42:00 +00002651if test "$withval" = no
2652then LIBM=
2653 AC_MSG_RESULT(force LIBM empty)
2654elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002655then LIBM=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002656 AC_MSG_RESULT(set LIBM="$withval")
2657else AC_MSG_ERROR([proper usage is --with-libm=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002658fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002659[AC_MSG_RESULT(default LIBM="$LIBM")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002660
2661# check for --with-libc=...
2662AC_SUBST(LIBC)
Guido van Rossum93274221997-05-09 02:42:00 +00002663AC_MSG_CHECKING(for --with-libc=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002664AC_ARG_WITH(libc,
2665 AC_HELP_STRING(--with-libc=STRING, C library),
2666[
Guido van Rossum93274221997-05-09 02:42:00 +00002667if test "$withval" = no
2668then LIBC=
2669 AC_MSG_RESULT(force LIBC empty)
2670elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002671then LIBC=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002672 AC_MSG_RESULT(set LIBC="$withval")
2673else AC_MSG_ERROR([proper usage is --with-libc=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002674fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002675[AC_MSG_RESULT(default LIBC="$LIBC")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002676
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002677# check for hypot() in math library
2678LIBS_SAVE=$LIBS
2679LIBS="$LIBS $LIBM"
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002680AC_REPLACE_FUNCS(hypot)
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002681LIBS=$LIBS_SAVE
2682
Guido van Rossumef2255b2000-03-10 22:30:29 +00002683# check for wchar.h
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002684AC_CHECK_HEADER(wchar.h, [
2685 AC_DEFINE(HAVE_WCHAR_H, 1,
2686 [Define if the compiler provides a wchar.h header file.])
2687 wchar_h="yes"
2688],
Guido van Rossumef2255b2000-03-10 22:30:29 +00002689wchar_h="no"
2690)
2691
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002692# determine wchar_t size
2693if test "$wchar_h" = yes
2694then
Guido van Rossum67b26592001-10-20 14:21:45 +00002695 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002696fi
2697
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002698AC_MSG_CHECKING(for UCS-4 tcl)
2699have_ucs4_tcl=no
2700AC_TRY_COMPILE([
2701#include <tcl.h>
2702#if TCL_UTF_MAX != 6
2703# error "NOT UCS4_TCL"
2704#endif], [], [
2705 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2706 have_ucs4_tcl=yes
2707])
2708AC_MSG_RESULT($have_ucs4_tcl)
2709
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002710# check whether wchar_t is signed or not
2711if test "$wchar_h" = yes
2712then
2713 # check whether wchar_t is signed or not
2714 AC_MSG_CHECKING(whether wchar_t is signed)
2715 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2716 AC_TRY_RUN([
2717 #include <wchar.h>
2718 int main()
2719 {
2720 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 1 : 0);
2721 }
2722 ],
2723 ac_cv_wchar_t_signed=yes,
2724 ac_cv_wchar_t_signed=no,
2725 ac_cv_wchar_t_signed=yes)])
2726 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2727fi
2728
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002729AC_MSG_CHECKING(what type to use for unicode)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002730dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002731AC_ARG_ENABLE(unicode,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002732 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2733 [],
2734 [enable_unicode=yes])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002735
2736if test $enable_unicode = yes
2737then
Martin v. Löwisfd917792001-06-27 20:22:04 +00002738 # Without any arguments, Py_UNICODE defaults to two-byte mode
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002739 case "$have_ucs4_tcl" in
2740 yes) enable_unicode="ucs4"
2741 ;;
2742 *) enable_unicode="ucs2"
2743 ;;
2744 esac
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002745fi
2746
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002747AH_TEMPLATE(Py_UNICODE_SIZE,
2748 [Define as the size of the unicode type.])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002749case "$enable_unicode" in
2750ucs2) unicode_size="2"
2751 AC_DEFINE(Py_UNICODE_SIZE,2)
2752 ;;
2753ucs4) unicode_size="4"
2754 AC_DEFINE(Py_UNICODE_SIZE,4)
2755 ;;
2756esac
2757
Martin v. Löwis11437992002-04-12 09:54:03 +00002758AH_TEMPLATE(PY_UNICODE_TYPE,
2759 [Define as the integral type used for Unicode representation.])
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002760
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002761AC_SUBST(UNICODE_OBJS)
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002762if test "$enable_unicode" = "no"
2763then
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002764 UNICODE_OBJS=""
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002765 AC_MSG_RESULT(not used)
2766else
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002767 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002768 AC_DEFINE(Py_USING_UNICODE, 1,
2769 [Define if you want to have a Unicode type.])
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002770
2771 # wchar_t is only usable if it maps to an unsigned type
2772 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2773 -a "$ac_cv_wchar_t_signed" == "no"
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002774 then
2775 PY_UNICODE_TYPE="wchar_t"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002776 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2777 [Define if you have a useable wchar_t type defined in wchar.h; useable
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002778 means wchar_t must be an unsigned type with at least 16 bits. (see
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002779 Include/unicodeobject.h).])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002780 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2781 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2782 then
2783 PY_UNICODE_TYPE="unsigned short"
2784 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2785 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2786 then
2787 PY_UNICODE_TYPE="unsigned long"
2788 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2789 else
2790 PY_UNICODE_TYPE="no type found"
2791 fi
2792 AC_MSG_RESULT($PY_UNICODE_TYPE)
2793fi
Guido van Rossumef2255b2000-03-10 22:30:29 +00002794
2795# check for endianness
2796AC_C_BIGENDIAN
2797
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002798# Check whether right shifting a negative integer extends the sign bit
2799# or fills with zeros (like the Cray J90, according to Tim Peters).
2800AC_MSG_CHECKING(whether right shift extends the sign bit)
Vladimir Marangozova6180282000-07-12 05:05:06 +00002801AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002802AC_TRY_RUN([
2803int main()
2804{
Vladimir Marangozova6180282000-07-12 05:05:06 +00002805 exit(((-1)>>3 == -1) ? 0 : 1);
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002806}
Guido van Rossum3065c942001-09-17 04:03:14 +00002807],
2808ac_cv_rshift_extends_sign=yes,
2809ac_cv_rshift_extends_sign=no,
2810ac_cv_rshift_extends_sign=yes)])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002811AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2812if test "$ac_cv_rshift_extends_sign" = no
2813then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002814 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2815 [Define if i>>j for signed int i does not extend the sign bit
2816 when i < 0])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002817fi
2818
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002819# check for getc_unlocked and related locking functions
2820AC_MSG_CHECKING(for getc_unlocked() and friends)
2821AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2822AC_TRY_LINK([#include <stdio.h>],[
2823 FILE *f = fopen("/dev/null", "r");
2824 flockfile(f);
2825 getc_unlocked(f);
2826 funlockfile(f);
2827], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2828AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2829if test "$ac_cv_have_getc_unlocked" = yes
2830then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002831 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2832 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002833fi
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002834
Guido van Rossumfaf5e4d2002-12-30 16:25:41 +00002835# check for readline 2.2
2836AC_TRY_CPP([#include <readline/readline.h>],
2837have_readline=yes, have_readline=no)
2838if test $have_readline = yes
2839then
2840 AC_EGREP_HEADER([extern int rl_completion_append_character;],
2841 [readline/readline.h],
2842 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
2843 [Define if you have readline 2.2]), )
2844fi
2845
Martin v. Löwis0daad592001-09-30 21:09:59 +00002846# check for readline 4.0
2847AC_CHECK_LIB(readline, rl_pre_input_hook,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002848 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
2849 [Define if you have readline 4.0]), , -ltermcap)
Martin v. Löwis0daad592001-09-30 21:09:59 +00002850
Guido van Rossum353ae582001-07-10 16:45:32 +00002851# check for readline 4.2
2852AC_CHECK_LIB(readline, rl_completion_matches,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002853 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
2854 [Define if you have readline 4.2]), , -ltermcap)
Guido van Rossum353ae582001-07-10 16:45:32 +00002855
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002856AC_MSG_CHECKING(for broken nice())
2857AC_CACHE_VAL(ac_cv_broken_nice, [
2858AC_TRY_RUN([
2859int main()
2860{
2861 int val1 = nice(1);
2862 if (val1 != -1 && val1 == nice(2))
2863 exit(0);
2864 exit(1);
2865}
Guido van Rossum3065c942001-09-17 04:03:14 +00002866],
2867ac_cv_broken_nice=yes,
2868ac_cv_broken_nice=no,
2869ac_cv_broken_nice=no)])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002870AC_MSG_RESULT($ac_cv_broken_nice)
2871if test "$ac_cv_broken_nice" = yes
2872then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002873 AC_DEFINE(HAVE_BROKEN_NICE, 1,
2874 [Define if nice() returns success/failure instead of the new priority.])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002875fi
2876
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002877# tzset(3) exists and works like we expect it to
2878AC_MSG_CHECKING(for working tzset())
2879AC_CACHE_VAL(ac_cv_working_tzset, [
2880AC_TRY_RUN([
2881#include <stdlib.h>
2882#include <time.h>
Brett Cannon18367812003-09-19 00:59:16 +00002883#include <string.h>
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002884int main()
2885{
Brett Cannon18367812003-09-19 00:59:16 +00002886 /* Note that we need to ensure that not only does tzset(3)
2887 do 'something' with localtime, but it works as documented
2888 in the library reference and as expected by the test suite.
2889
2890 Red Hat 6.2 doesn't understand the southern hemisphere
2891 after New Year's Day; it thinks swaps on that day.
2892 */
2893
2894 time_t groundhogday = 1044144000; /* GMT-based; well, it's a colony */
2895 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
2896
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002897 putenv("TZ=UTC+0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002898 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002899 if (localtime(&groundhogday)->tm_hour != 0)
2900 exit(1);
2901
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002902 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002903 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002904 if (localtime(&groundhogday)->tm_hour != 19)
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002905 exit(1);
Brett Cannon18367812003-09-19 00:59:16 +00002906
2907 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
2908 tzset();
2909 if (localtime(&groundhogday)->tm_hour != 11)
2910 exit(1);
2911 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
2912 exit(1);
2913 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
2914 exit(1);
2915
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002916 exit(0);
2917}
2918],
2919ac_cv_working_tzset=yes,
2920ac_cv_working_tzset=no,
2921ac_cv_working_tzset=no)])
2922AC_MSG_RESULT($ac_cv_working_tzset)
2923if test "$ac_cv_working_tzset" = yes
2924then
2925 AC_DEFINE(HAVE_WORKING_TZSET, 1,
2926 [Define if tzset() actually switches the local timezone in a meaningful way.])
2927fi
2928
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002929# Look for subsecond timestamps in struct stat
2930AC_MSG_CHECKING(for tv_nsec in struct stat)
2931AC_CACHE_VAL(ac_cv_stat_tv_nsec,
2932AC_TRY_COMPILE([#include <sys/stat.h>], [
2933struct stat st;
2934st.st_mtim.tv_nsec = 1;
2935],
Martin v. Löwisa32c9942002-09-09 16:17:47 +00002936ac_cv_stat_tv_nsec=yes,
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002937ac_cv_stat_tv_nsec=no,
2938ac_cv_stat_tv_nsec=no))
2939AC_MSG_RESULT($ac_cv_stat_tv_nsec)
2940if test "$ac_cv_stat_tv_nsec" = yes
2941then
2942 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
2943 [Define if you have struct stat.st_mtim.tv_nsec])
2944fi
2945
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002946# On HP/UX 11.0, mvwdelch is a block with a return statement
2947AC_MSG_CHECKING(whether mvwdelch is an expression)
2948AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
2949AC_TRY_COMPILE([#include <curses.h>], [
2950 int rtn;
2951 rtn = mvwdelch(0,0,0);
2952], ac_cv_mvwdelch_is_expression=yes,
2953 ac_cv_mvwdelch_is_expression=no,
2954 ac_cv_mvwdelch_is_expression=yes))
2955AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
2956
2957if test "$ac_cv_mvwdelch_is_expression" = yes
2958then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002959 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
2960 [Define if mvwdelch in curses.h is an expression.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002961fi
2962
2963AC_MSG_CHECKING(whether WINDOW has _flags)
2964AC_CACHE_VAL(ac_cv_window_has_flags,
2965AC_TRY_COMPILE([#include <curses.h>], [
2966 WINDOW *w;
2967 w->_flags = 0;
2968], ac_cv_window_has_flags=yes,
2969 ac_cv_window_has_flags=no,
2970 ac_cv_window_has_flags=no))
2971AC_MSG_RESULT($ac_cv_window_has_flags)
2972
2973
2974if test "$ac_cv_window_has_flags" = yes
2975then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002976 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
2977 [Define if WINDOW in curses.h offers a field _flags.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002978fi
2979
Martin v. Löwis24a880b2002-12-31 12:55:15 +00002980AC_MSG_CHECKING(for /dev/ptmx)
2981
2982if test -e /dev/ptmx
2983then
2984 AC_MSG_RESULT(yes)
2985 AC_DEFINE(HAVE_DEV_PTMX, 1,
2986 [Define if we have /dev/ptmx.])
2987else
2988 AC_MSG_RESULT(no)
2989fi
2990
Neal Norwitz865400f2003-03-21 01:42:58 +00002991AC_MSG_CHECKING(for /dev/ptc)
2992
2993if test -e /dev/ptc
2994then
2995 AC_MSG_RESULT(yes)
2996 AC_DEFINE(HAVE_DEV_PTC, 1,
2997 [Define if we have /dev/ptc.])
2998else
2999 AC_MSG_RESULT(no)
3000fi
3001
Martin v. Löwis01c04012002-11-11 14:58:44 +00003002AC_CHECK_TYPE(socklen_t,,
3003 AC_DEFINE(socklen_t,int,
3004 Define to `int' if <sys/socket.h> does not define.),[
3005#ifdef HAVE_SYS_TYPES_H
3006#include <sys/types.h>
3007#endif
Guido van Rossum95713eb2000-05-18 20:53:31 +00003008#ifdef HAVE_SYS_SOCKET_H
3009#include <sys/socket.h>
3010#endif
Martin v. Löwis01c04012002-11-11 14:58:44 +00003011])
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003012
Martin v. Löwis06f15bb2001-12-02 13:02:32 +00003013AC_SUBST(THREADHEADERS)
3014
3015for h in `(cd $srcdir;echo Python/thread_*.h)`
3016do
3017 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3018done
3019
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003020AC_SUBST(SRCDIRS)
Jack Jansen0b06be72002-06-21 14:48:38 +00003021SRCDIRS="Parser Grammar Objects Python Modules Mac Mac/Python"
Andrew M. Kuchling8abedde2001-01-26 22:55:24 +00003022AC_MSG_CHECKING(for build directories)
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003023for dir in $SRCDIRS; do
3024 if test ! -d $dir; then
3025 mkdir $dir
Fred Drake884d3ba2000-11-02 17:52:56 +00003026 fi
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003027done
3028AC_MSG_RESULT(done)
Fred Drake036144d2000-10-26 17:09:35 +00003029
Guido van Rossum627b2d71993-12-24 10:39:16 +00003030# generate output files
Martin v. Löwis88afe662002-10-26 13:47:44 +00003031AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3032AC_OUTPUT
Neil Schemenauer61c51152001-01-26 16:18:16 +00003033
3034echo "creating Setup"
3035if test ! -f Modules/Setup
3036then
3037 cp $srcdir/Modules/Setup.dist Modules/Setup
3038fi
3039
3040echo "creating Setup.local"
3041if test ! -f Modules/Setup.local
3042then
3043 echo "# Edit this file for local setup changes" >Modules/Setup.local
3044fi
3045
3046echo "creating Makefile"
3047$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3048 -s Modules Modules/Setup.config \
Neil Schemenauerf8b71c52001-04-21 17:41:16 +00003049 Modules/Setup.local Modules/Setup
Neil Schemenauer66252162001-02-19 04:47:42 +00003050mv config.c Modules