blob: 60ad582cc16c564a7cf5a3d417bd238173b10f63 [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öwisd6320502004-08-12 13:45:08 +000053# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
54# u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
55AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
56
Martin v. Löwise981a4e2002-11-11 13:26:51 +000057define_xopen_source=yes
Martin v. Löwis6f18a3c2002-07-20 08:51:52 +000058
Neil Schemenauer4edbc2a2001-03-22 00:34:03 +000059# Arguments passed to configure.
60AC_SUBST(CONFIG_ARGS)
61CONFIG_ARGS="$ac_configure_args"
62
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000063dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Jack Jansenb6e9cad2001-08-15 01:26:28 +000064AC_ARG_ENABLE(framework,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000065 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
66[
Jack Jansenb6e9cad2001-08-15 01:26:28 +000067 case $enableval in
68 yes)
69 enableval=/Library/Frameworks
Jack Jansen127e56e2001-09-11 14:41:54 +000070 esac
71 case $enableval in
72 no)
73 PYTHONFRAMEWORK=
74 PYTHONFRAMEWORKDIR=no-framework
75 PYTHONFRAMEWORKPREFIX=
76 PYTHONFRAMEWORKINSTALLDIR=
77 enable_framework=
Jack Jansenb6e9cad2001-08-15 01:26:28 +000078 ;;
79 *)
Jack Jansen127e56e2001-09-11 14:41:54 +000080 PYTHONFRAMEWORK=Python
81 PYTHONFRAMEWORKDIR=Python.framework
Jack Jansenb6e9cad2001-08-15 01:26:28 +000082 PYTHONFRAMEWORKPREFIX=$enableval
Jack Jansen127e56e2001-09-11 14:41:54 +000083 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
84 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
Jack Jansenb6e9cad2001-08-15 01:26:28 +000085 esac
Jack Jansenb6e9cad2001-08-15 01:26:28 +000086 ],[
87 PYTHONFRAMEWORK=
Jack Jansen127e56e2001-09-11 14:41:54 +000088 PYTHONFRAMEWORKDIR=no-framework
Jack Jansenb6e9cad2001-08-15 01:26:28 +000089 PYTHONFRAMEWORKPREFIX=
90 PYTHONFRAMEWORKINSTALLDIR=
91 enable_framework=
92])
93AC_SUBST(PYTHONFRAMEWORK)
94AC_SUBST(PYTHONFRAMEWORKDIR)
95AC_SUBST(PYTHONFRAMEWORKPREFIX)
96AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
Guido van Rossum4b6b5791996-09-09 20:09:34 +000097
Jack Jansenb6e9cad2001-08-15 01:26:28 +000098##AC_ARG_WITH(dyld,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000099## AC_HELP_STRING(--with-dyld,
100## Use (OpenStep|Rhapsody) dynamic linker))
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000101##
Guido van Rossumb418f891996-07-30 18:06:02 +0000102# Set name for machine-dependent library files
103AC_SUBST(MACHDEP)
104AC_MSG_CHECKING(MACHDEP)
105if test -z "$MACHDEP"
106then
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000107 ac_sys_system=`uname -s`
Martin v. Löwis21ee4092002-09-30 16:19:48 +0000108 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
109 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000110 ac_sys_release=`uname -v`
Guido van Rossumb418f891996-07-30 18:06:02 +0000111 else
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000112 ac_sys_release=`uname -r`
Guido van Rossumb418f891996-07-30 18:06:02 +0000113 fi
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000114 ac_md_system=`echo $ac_sys_system |
115 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
116 ac_md_release=`echo $ac_sys_release |
Guido van Rossum67b26592001-10-20 14:21:45 +0000117 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
Guido van Rossumb97ef171997-09-28 05:44:03 +0000118 MACHDEP="$ac_md_system$ac_md_release"
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000119
Guido van Rossumbcd91e01997-03-20 20:46:29 +0000120 case $MACHDEP in
Andrew M. Kuchling5a3e4cb2001-07-20 19:29:04 +0000121 cygwin*) MACHDEP="cygwin";;
Jack Jansen8a97f4a2001-12-05 23:27:32 +0000122 darwin*) MACHDEP="darwin";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000123 atheos*) MACHDEP="atheos";;
Martin v. Löwisf3322282003-07-13 09:46:13 +0000124 irix646) MACHDEP="irix6";;
Guido van Rossumb97ef171997-09-28 05:44:03 +0000125 '') MACHDEP="unknown";;
Guido van Rossumb418f891996-07-30 18:06:02 +0000126 esac
127fi
Jack Jansen83f898c2002-12-30 22:23:40 +0000128
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000129# Some systems cannot stand _XOPEN_SOURCE being defined at all; they
130# disable features if it is defined, without any means to access these
131# features as extensions. For these systems, we skip the definition of
132# _XOPEN_SOURCE. Before adding a system to the list to gain access to
133# some feature, make sure there is no alternative way to access this
134# feature. Also, when using wildcards, make sure you have verified the
135# need for not defining _XOPEN_SOURCE on all systems matching the
136# wildcard, and that the wildcard does not include future systems
137# (which may remove their limitations).
138dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
139case $ac_sys_system/$ac_sys_release in
140 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
141 # even though select is a POSIX function. Reported by J. Ribbens.
Martin v. Löwis76bafc62003-10-03 13:47:44 +0000142 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
143 OpenBSD/2.* | OpenBSD/3.@<:@01234@:>@)
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000144 define_xopen_source=no;;
Martin v. Löwisa9d71422003-03-28 18:43:31 +0000145 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
146 # of union __?sigval. Reported by Stuart Bishop.
147 SunOS/5.6)
148 define_xopen_source=no;;
Martin v. Löwisc2409b42003-05-11 05:53:41 +0000149 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
150 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
Martin v. Löwis253d1f42004-05-07 19:14:14 +0000151 # Reconfirmed for 7.1.4 by Martin v. Loewis.
152 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
Martin v. Löwisc2409b42003-05-11 05:53:41 +0000153 define_xopen_source=no;;
154 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
Martin v. Löwis53e73c32003-05-05 05:13:18 +0000155 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
Martin v. Löwisc2409b42003-05-11 05:53:41 +0000156 SCO_SV/3.2)
Martin v. Löwis53e73c32003-05-05 05:13:18 +0000157 define_xopen_source=no;;
Anthony Baxter6169c6b2003-10-04 07:46:23 +0000158 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
159 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
160 # this is fixed in 10.3, which identifies itself as Darwin/7.*
161 # This should hopefully be fixed in FreeBSD 4.9
162 FreeBSD/4.8* | Darwin/6* )
163 define_xopen_source=no;;
Martin v. Löwisc19c5a62003-11-18 20:00:44 +0000164 # On AIX 4, mbstate_t is defined only when _XOPEN_SOURCE == 500 but used in
165 # wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined or
166 # has another value. By not (re)defining it, the defaults come in place.
167 AIX/4)
168 define_xopen_source=no;;
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000169esac
170
171if test $define_xopen_source = yes
172then
Skip Montanarof0d5f792004-08-15 14:08:23 +0000173 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
174 # defined precisely as g++ defines it
175 case $ac_sys_system/$ac_sys_release in
176 SunOS/5.8|SunOS/5.9)
177 AC_DEFINE(_XOPEN_SOURCE, 500,
178 Define to the level of X/Open that your system supports)
179 ;;
180 *)
181 AC_DEFINE(_XOPEN_SOURCE, 600,
182 Define to the level of X/Open that your system supports)
183 ;;
184 esac
Martin v. Löwis678fc1e2002-11-12 06:04:39 +0000185
186 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
187 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
188 # several APIs are not declared. Since this is also needed in some
189 # cases for HP-UX, we define it globally.
190
191 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Define to activate Unix95-and-earlier features)
192 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
193
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000194fi
195
Guido van Rossum91922671997-10-09 20:24:13 +0000196#
197# SGI compilers allow the specification of the both the ABI and the
198# ISA on the command line. Depending on the values of these switches,
199# different and often incompatable code will be generated.
200#
201# The SGI_ABI variable can be used to modify the CC and LDFLAGS and
202# thus supply support for various ABI/ISA combinations. The MACHDEP
203# variable is also adjusted.
204#
205AC_SUBST(SGI_ABI)
206if test ! -z "$SGI_ABI"
207then
208 CC="cc $SGI_ABI"
209 LDFLAGS="$SGI_ABI $LDFLAGS"
210 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
211fi
Guido van Rossumb418f891996-07-30 18:06:02 +0000212AC_MSG_RESULT($MACHDEP)
213
Jack Jansen83f898c2002-12-30 22:23:40 +0000214# And add extra plat-mac for darwin
215AC_SUBST(EXTRAPLATDIR)
Jack Jansen7b59b422003-03-17 15:44:10 +0000216AC_SUBST(EXTRAMACHDEPPATH)
Jack Jansen83f898c2002-12-30 22:23:40 +0000217AC_MSG_CHECKING(EXTRAPLATDIR)
218if test -z "$EXTRAPLATDIR"
219then
220 case $MACHDEP in
Jack Jansen7b59b422003-03-17 15:44:10 +0000221 darwin)
222 EXTRAPLATDIR="\$(PLATMACDIRS)"
223 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
224 ;;
225 *)
226 EXTRAPLATDIR=""
227 EXTRAMACHDEPPATH=""
228 ;;
Jack Jansen83f898c2002-12-30 22:23:40 +0000229 esac
230fi
231AC_MSG_RESULT($EXTRAPLATDIR)
232
Jack Jansen6b08a402004-06-03 12:41:45 +0000233# Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
234# it may influence the way we can build extensions, so distutils
235# needs to check it
236AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
237CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
238
Guido van Rossum627b2d71993-12-24 10:39:16 +0000239# checks for alternative programs
Skip Montanarodecc6a42003-01-01 20:07:49 +0000240
241# compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
242# for debug/optimization stuff. BASECFLAGS is for flags that are required
243# just to get things to compile and link. Users are free to override OPT
244# when running configure or make. The build should not break if they do.
245# BASECFLAGS should generally not be messed with, however.
246
247# XXX shouldn't some/most/all of this code be merged with the stuff later
248# on that fiddles with OPT and BASECFLAGS?
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000249AC_MSG_CHECKING(for --without-gcc)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000250AC_ARG_WITH(gcc,
251 AC_HELP_STRING(--without-gcc,never use gcc),
252[
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000253 case $withval in
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000254 no) CC=cc
255 without_gcc=yes;;
256 yes) CC=gcc
257 without_gcc=no;;
258 *) CC=$withval
259 without_gcc=$withval;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000260 esac], [
Guido van Rossumb418f891996-07-30 18:06:02 +0000261 case $ac_sys_system in
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000262 AIX*) CC=cc_r
263 without_gcc=;;
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000264 BeOS*)
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000265 case $BE_HOST_CPU in
266 ppc)
Fred Drake5790be12000-10-09 17:06:13 +0000267 CC=mwcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000268 without_gcc=yes
Skip Montanarodecc6a42003-01-01 20:07:49 +0000269 BASECFLAGS="$BASECFLAGS -export pragma"
270 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000271 LDFLAGS="$LDFLAGS -nodup"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000272 ;;
273 x86)
Fred Drake5790be12000-10-09 17:06:13 +0000274 CC=gcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000275 without_gcc=no
Skip Montanarodecc6a42003-01-01 20:07:49 +0000276 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000277 ;;
278 *)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000279 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000280 ;;
281 esac
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000282 AR="\$(srcdir)/Modules/ar_beos"
283 RANLIB=:
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000284 ;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000285 Monterey*)
286 RANLIB=:
Martin v. Löwis130fb172001-07-19 11:00:41 +0000287 without_gcc=;;
288 *) without_gcc=no;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000289 esac])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000290AC_MSG_RESULT($without_gcc)
291
Guido van Rossum27552902001-01-23 01:52:26 +0000292AC_SUBST(CXX)
Guido van Rossum95012191999-12-16 17:50:52 +0000293AC_SUBST(MAINOBJ)
Fred Drakea1a84e72001-03-06 05:52:16 +0000294MAINOBJ=python.o
Guido van Rossum95012191999-12-16 17:50:52 +0000295AC_MSG_CHECKING(for --with-cxx=<compiler>)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000296AC_ARG_WITH(cxx,
297 AC_HELP_STRING(--with-cxx=<compiler>, enable C++ support),
298[
Martin v. Löwis537970f2000-12-13 17:37:02 +0000299 check_cxx=no
Guido van Rossum95012191999-12-16 17:50:52 +0000300 case $withval in
301 no) CXX=
302 with_cxx=no;;
303 *) CXX=$withval
Fred Drakea1a84e72001-03-06 05:52:16 +0000304 MAINOBJ=ccpython.o
Guido van Rossum95012191999-12-16 17:50:52 +0000305 with_cxx=$withval;;
306 esac], [
307 with_cxx=no
Martin v. Löwis537970f2000-12-13 17:37:02 +0000308 check_cxx=yes
Guido van Rossum95012191999-12-16 17:50:52 +0000309])
310AC_MSG_RESULT($with_cxx)
Martin v. Löwis537970f2000-12-13 17:37:02 +0000311
Michael W. Hudson54241132001-12-07 15:38:26 +0000312if test "$with_cxx" = "yes"
313then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000314 AC_MSG_ERROR([must supply a compiler when using --with-cxx])
Michael W. Hudson54241132001-12-07 15:38:26 +0000315fi
316
Martin v. Löwis537970f2000-12-13 17:37:02 +0000317dnl The following fragment works similar to AC_PROG_CXX.
318dnl It does not fail if CXX is not found, and it is not executed if
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000319dnl --without-cxx was given.
Martin v. Löwis537970f2000-12-13 17:37:02 +0000320dnl Finally, it does not test whether CXX is g++.
321
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000322dnl Autoconf 2.5x does not have AC_PROG_CXX_WORKS anymore
323ifdef([AC_PROG_CXX_WORKS],[],
324 [AC_DEFUN([AC_PROG_CXX_WORKS],
325 [AC_LANG_PUSH(C++)dnl
326 _AC_COMPILER_EXEEXT
327 AC_LANG_POP()
328 ]
329)])
330
Martin v. Löwis537970f2000-12-13 17:37:02 +0000331if test "$check_cxx" = "yes"
332then
333 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
334 if test "$CXX" = "notfound"
335 then
336 CXX=
337 else
338 AC_PROG_CXX_WORKS
339 fi
340fi
341
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000342# If the user switches compilers, we can't believe the cache
343if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
344then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000345 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
346(it is also a good idea to do 'make clean' before compiling)])
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000347fi
348
Guido van Rossum627b2d71993-12-24 10:39:16 +0000349AC_PROG_CC
Martin v. Löwis1d5ecb72001-08-09 10:29:44 +0000350
351# checks for UNIX variants that set C preprocessor variables
352AC_AIX
Martin v. Löwis1d5ecb72001-08-09 10:29:44 +0000353
Martin v. Löwis779ffc02002-12-02 22:17:01 +0000354# Check for unsupported systems
355case $ac_sys_system/$ac_sys_release in
Skip Montanaroce59c042004-01-17 14:19:44 +0000356Linux*/1*)
Martin v. Löwis779ffc02002-12-02 22:17:01 +0000357 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
358 echo See README for details.
359 exit 1;;
360esac
361
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000362AC_EXEEXT
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000363AC_MSG_CHECKING(for --with-suffix)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000364AC_ARG_WITH(suffix,
365 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
366[
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000367 case $withval in
368 no) EXEEXT=;;
369 yes) EXEEXT=.exe;;
370 *) EXEEXT=$withval;;
371 esac])
372AC_MSG_RESULT($EXEEXT)
Jack Jansen1999ef42001-12-06 21:47:20 +0000373
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000374# Test whether we're running on a non-case-sensitive system, in which
375# case we give a warning if no ext is given
Jack Jansen1999ef42001-12-06 21:47:20 +0000376AC_SUBST(BUILDEXEEXT)
377AC_MSG_CHECKING(for case-insensitive build directory)
Jack Jansen3c2c4332002-11-06 13:33:32 +0000378if test ! -d CaseSensitiveTestDir; then
379mkdir CaseSensitiveTestDir
380fi
381
382if test -d casesensitivetestdir
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000383then
Jack Jansen1999ef42001-12-06 21:47:20 +0000384 AC_MSG_RESULT(yes)
385 BUILDEXEEXT=.exe
386else
387 AC_MSG_RESULT(no)
Jack Jansendd19cf82001-12-06 22:36:17 +0000388 BUILDEXEEXT=$EXEEXT
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000389fi
Jack Jansen3c2c4332002-11-06 13:33:32 +0000390rmdir CaseSensitiveTestDir
Guido van Rossumfb842551997-08-06 23:42:07 +0000391
Guido van Rossumdd997f71998-10-07 19:58:26 +0000392case $MACHDEP in
393bsdos*)
394 case $CC in
395 gcc) CC="$CC -D_HAVE_BSDI";;
396 esac;;
397esac
398
Guido van Rossum84561611997-08-21 00:08:11 +0000399case $ac_sys_system in
400hp*|HP*)
401 case $CC in
Guido van Rossumcd5ff9f2000-09-22 16:15:54 +0000402 cc|*/cc) CC="$CC -Ae";;
Guido van Rossum84561611997-08-21 00:08:11 +0000403 esac;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000404Monterey*)
405 case $CC in
406 cc) CC="$CC -Wl,-Bexport";;
407 esac;;
Martin v. Löwise8964d42001-03-06 12:09:07 +0000408SunOS*)
409 # Some functions have a prototype only with that define, e.g. confstr
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000410 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
Martin v. Löwise8964d42001-03-06 12:09:07 +0000411 ;;
Guido van Rossum84561611997-08-21 00:08:11 +0000412esac
413
Martin v. Löwise8964d42001-03-06 12:09:07 +0000414
Neil Schemenauer61c51152001-01-26 16:18:16 +0000415AC_SUBST(LIBRARY)
416AC_MSG_CHECKING(LIBRARY)
417if test -z "$LIBRARY"
418then
419 LIBRARY='libpython$(VERSION).a'
420fi
421AC_MSG_RESULT($LIBRARY)
422
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000423# LDLIBRARY is the name of the library to link against (as opposed to the
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000424# name of the library into which to insert object files). BLDLIBRARY is also
425# the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
426# is blank as the main program is not linked directly against LDLIBRARY.
427# LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
428# systems without shared libraries, LDLIBRARY is the same as LIBRARY
429# (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
430# DLLLIBRARY is the shared (i.e., DLL) library.
431#
Martin v. Löwis1142de32002-03-29 16:28:31 +0000432# RUNSHARED is used to run shared python without installed libraries
433#
434# INSTSONAME is the name of the shared library that will be use to install
435# on the system - some systems like version suffix, others don't
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000436AC_SUBST(LDLIBRARY)
Guido van Rossum27552902001-01-23 01:52:26 +0000437AC_SUBST(DLLLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000438AC_SUBST(BLDLIBRARY)
439AC_SUBST(LDLIBRARYDIR)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000440AC_SUBST(INSTSONAME)
441AC_SUBST(RUNSHARED)
Neil Schemenauer61c51152001-01-26 16:18:16 +0000442LDLIBRARY="$LIBRARY"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000443BLDLIBRARY='$(LDLIBRARY)'
Martin v. Löwis09bdf722002-05-08 08:51:29 +0000444INSTSONAME='$(LDLIBRARY)'
Guido van Rossum27552902001-01-23 01:52:26 +0000445DLLLIBRARY=''
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000446LDLIBRARYDIR=''
Martin v. Löwis1142de32002-03-29 16:28:31 +0000447RUNSHARED=''
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000448
Guido van Rossumfb842551997-08-06 23:42:07 +0000449# LINKCC is the command that links the python executable -- default is $(CC).
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000450# If CXX is set, and if it is needed to link a main function that was
451# compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
452# python might then depend on the C++ runtime
Fred Drake5790be12000-10-09 17:06:13 +0000453# This is altered for AIX in order to build the export list before
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000454# linking.
Guido van Rossumfb842551997-08-06 23:42:07 +0000455AC_SUBST(LINKCC)
456AC_MSG_CHECKING(LINKCC)
457if test -z "$LINKCC"
458then
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000459 if test -z "$CXX"; then
460 LINKCC="\$(PURIFY) \$(CC)"
461 else
Martin v. Löwis1931ca72002-06-01 21:39:58 +0000462 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000463 $CXX -c conftest.$ac_ext 2>&5
464 if $CC -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
465 && test -s conftest$ac_exeext && ./conftest$ac_exeext
466 then
467 LINKCC="\$(PURIFY) \$(CC)"
468 else
469 LINKCC="\$(PURIFY) \$(CXX)"
470 fi
471 rm -fr conftest*
472 fi
Guido van Rossumfb842551997-08-06 23:42:07 +0000473 case $ac_sys_system in
474 AIX*)
Neal Norwitz0b27ff92003-03-31 15:53:49 +0000475 exp_extra="\"\""
476 if test $ac_sys_release -ge 5 -o \
477 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
478 exp_extra="."
479 fi
480 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
Trent Mick635f6fb2000-08-23 21:33:05 +0000481 Monterey64*)
Martin v. Löwis4e732dc2002-03-19 15:15:32 +0000482 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
Guido van Rossumfb842551997-08-06 23:42:07 +0000483 esac
484fi
485AC_MSG_RESULT($LINKCC)
486
Martin v. Löwis1142de32002-03-29 16:28:31 +0000487AC_MSG_CHECKING(for --enable-shared)
488AC_ARG_ENABLE(shared,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000489 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000490
Martin v. Löwis1142de32002-03-29 16:28:31 +0000491if test -z "$enable_shared"
492then
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000493 case $ac_sys_system in
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000494 CYGWIN* | atheos*)
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000495 enable_shared="yes";;
496 *)
497 enable_shared="no";;
498 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000499fi
500AC_MSG_RESULT($enable_shared)
501
Skip Montanaro56f6a4f2004-06-18 02:47:22 +0000502AC_MSG_CHECKING(for --enable-profiling)
503AC_ARG_ENABLE(profiling,
504 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
505[ac_save_cc="$CC"
506 CC="$CC -pg"
507 AC_TRY_RUN([int main() { return 0; }],
508 ac_enable_profiling="yes",
509 ac_enable_profiling="no",
510 ac_enable_profiling="no")
511 CC="$ac_save_cc"])
512AC_MSG_RESULT($ac_enable_profiling)
513
514case "$ac_enable_profiling" in
515 "yes")
516 BASECFLAGS="-pg $BASECFLAGS"
517 LDFLAGS="-pg $LDFLAGS"
518 ;;
519esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000520
521AC_MSG_CHECKING(LDLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000522
Guido van Rossumb8552162001-09-05 14:58:11 +0000523# MacOSX framework builds need more magic. LDLIBRARY is the dynamic
524# library that we build, but we do not want to link against it (we
525# will find it with a -framework option). For this reason there is an
526# extra variable BLDLIBRARY against which Python and the extension
527# modules are linked, BLDLIBRARY. This is normally the same as
528# LDLIBRARY, but empty for MacOSX framework builds.
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000529if test "$enable_framework"
530then
531 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
Jack Jansen66b84832003-07-04 12:14:39 +0000532 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000533 BLDLIBRARY=''
534else
535 BLDLIBRARY='$(LDLIBRARY)'
536fi
537
Martin v. Löwis1142de32002-03-29 16:28:31 +0000538# Other platforms follow
539if test $enable_shared = "yes"; then
Mark Hammond8235ea12002-07-19 06:55:41 +0000540 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
Martin v. Löwis1142de32002-03-29 16:28:31 +0000541 case $ac_sys_system in
542 BeOS*)
543 LDLIBRARY='libpython$(VERSION).so'
544 ;;
545 CYGWIN*)
546 LDLIBRARY='libpython$(VERSION).dll.a'
547 DLLLIBRARY='libpython$(VERSION).dll'
548 ;;
549 SunOS*)
550 LDLIBRARY='libpython$(VERSION).so'
Martin v. Löwisd141a8c2003-06-14 15:20:28 +0000551 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000552 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis2389c412003-10-31 15:42:07 +0000553 INSTSONAME="$LDLIBRARY".$SOVERSION
Martin v. Löwis1142de32002-03-29 16:28:31 +0000554 ;;
Martin v. Löwis96ce8052003-05-31 07:58:45 +0000555 Linux*|GNU*|NetBSD*)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000556 LDLIBRARY='libpython$(VERSION).so'
557 BLDLIBRARY='-L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000558 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000559 INSTSONAME="$LDLIBRARY".$SOVERSION
560 ;;
561 hp*|HP*)
562 LDLIBRARY='libpython$(VERSION).sl'
563 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000564 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000565 ;;
566 OSF*)
567 LDLIBRARY='libpython$(VERSION).so'
568 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000569 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000570 ;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000571 atheos*)
572 LDLIBRARY='libpython$(VERSION).so'
573 BLDLIBRARY='-L. -lpython$(VERSION)'
574 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
575 ;;
Martin v. Löwis1142de32002-03-29 16:28:31 +0000576 esac
Jason Tishler30765592003-09-04 11:04:06 +0000577else # shared is disabled
578 case $ac_sys_system in
579 CYGWIN*)
580 BLDLIBRARY='$(LIBRARY)'
581 LDLIBRARY='libpython$(VERSION).dll.a'
582 ;;
583 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000584fi
585
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000586AC_MSG_RESULT($LDLIBRARY)
587
Guido van Rossum627b2d71993-12-24 10:39:16 +0000588AC_PROG_RANLIB
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000589AC_SUBST(AR)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000590AC_CHECK_PROGS(AR, ar aal, ar)
Neil Schemenauera42c8272001-03-31 00:01:55 +0000591
592case $MACHDEP in
Neil Schemenaueraf5567f2001-10-21 22:32:04 +0000593bsdos*|hp*|HP*)
594 # install -d does not work on BSDI or HP-UX
Neil Schemenauera42c8272001-03-31 00:01:55 +0000595 if test -z "$INSTALL"
596 then
597 INSTALL="${srcdir}/install-sh -c"
598 fi
599esac
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000600AC_PROG_INSTALL
Guido van Rossumb418f891996-07-30 18:06:02 +0000601
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000602# Not every filesystem supports hard links
603AC_SUBST(LN)
604if test -z "$LN" ; then
605 case $ac_sys_system in
606 BeOS*) LN="ln -s";;
Guido van Rossumaef734b2001-01-10 21:09:12 +0000607 CYGWIN*) LN="ln -s";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000608 atheos*) LN="ln -s";;
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000609 *) LN=ln;;
610 esac
611fi
612
Fred Drake9f715822001-07-11 06:27:00 +0000613# Check for --with-pydebug
614AC_MSG_CHECKING(for --with-pydebug)
615AC_ARG_WITH(pydebug,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000616 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
617[
Fred Drake9f715822001-07-11 06:27:00 +0000618if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000619then
620 AC_DEFINE(Py_DEBUG, 1,
621 [Define if you want to build an interpreter with many run-time checks.])
622 AC_MSG_RESULT(yes);
623 Py_DEBUG='true'
Fred Drake9f715822001-07-11 06:27:00 +0000624else AC_MSG_RESULT(no); Py_DEBUG='false'
625fi],
626[AC_MSG_RESULT(no)])
627
Skip Montanarodecc6a42003-01-01 20:07:49 +0000628# XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
629# merged with this chunk of code?
630
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000631# Optimizer/debugger flags
Skip Montanarodecc6a42003-01-01 20:07:49 +0000632# ------------------------
633# (The following bit of code is complicated enough - please keep things
634# indented properly. Just pretend you're editing Python code. ;-)
635
636# There are two parallel sets of case statements below, one that checks to
637# see if OPT was set and one that does BASECFLAGS setting based upon
638# compiler and platform. BASECFLAGS tweaks need to be made even if the
639# user set OPT.
640
641# tweak OPT based on compiler and platform, only if the user didn't set
642# it on the command line
Guido van Rossumb418f891996-07-30 18:06:02 +0000643AC_SUBST(OPT)
Guido van Rossum4e8af441994-08-19 15:33:54 +0000644if test -z "$OPT"
Guido van Rossumb418f891996-07-30 18:06:02 +0000645then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000646 case $GCC in
647 yes)
648 case $ac_cv_prog_cc_g in
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000649 yes)
Fred Drake9f715822001-07-11 06:27:00 +0000650 if test "$Py_DEBUG" = 'true' ; then
651 # Optimization messes up debuggers, so turn it off for
652 # debug builds.
653 OPT="-g -Wall -Wstrict-prototypes"
654 else
655 OPT="-g -O3 -Wall -Wstrict-prototypes"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000656 fi
657 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000658 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000659 OPT="-O3 -Wall -Wstrict-prototypes"
660 ;;
Fred Drake9f715822001-07-11 06:27:00 +0000661 esac
Martin v. Löwis21ee4092002-09-30 16:19:48 +0000662 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000663 SCO_SV*) OPT="$OPT -m486 -DSCO5"
664 ;;
665 esac
Fred Drake9f715822001-07-11 06:27:00 +0000666 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000667
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000668 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000669 OPT="-O"
670 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000671 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000672
673 # The current (beta) Monterey compiler dies with optimizations
674 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
Jack Jansenca06bc62001-08-03 15:32:23 +0000675 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000676 Monterey*)
677 OPT=""
678 ;;
Jack Jansenca06bc62001-08-03 15:32:23 +0000679 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000680
Guido van Rossum4e8af441994-08-19 15:33:54 +0000681fi
Guido van Rossum627b2d71993-12-24 10:39:16 +0000682
Skip Montanarodecc6a42003-01-01 20:07:49 +0000683AC_SUBST(BASECFLAGS)
684# tweak BASECFLAGS based on compiler and platform
685case $GCC in
686yes)
Martin v. Löwis70fedcd2003-07-07 21:26:19 +0000687 # Python violates C99 rules, by casting between incompatible
688 # pointer types. GCC may generate bad code as a result of that,
689 # so use -fno-strict-aliasing if supported.
690 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
691 ac_save_cc="$CC"
692 CC="$CC -fno-strict-aliasing"
693 AC_TRY_RUN([int main() { return 0; }],
694 ac_cv_no_strict_aliasing_ok=yes,
695 ac_cv_no_strict_aliasing_ok=no,
696 ac_cv_no_strict_aliasing_ok=no)
697 CC="$ac_save_cc"
698 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
699 if test $ac_cv_no_strict_aliasing_ok = yes
700 then
701 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
702 fi
Skip Montanarodecc6a42003-01-01 20:07:49 +0000703 case $ac_sys_system in
704 SCO_SV*)
705 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
706 ;;
707 # is there any other compiler on Darwin besides gcc?
708 Darwin*)
Jack Jansene0040412003-07-23 22:17:28 +0000709 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000710 ;;
711 esac
712 ;;
713
714*)
715 case $ac_sys_system in
716 OpenUNIX*|UnixWare*)
717 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
718 ;;
Neal Norwitzb44f1652003-05-26 14:11:55 +0000719 OSF*)
720 BASECFLAGS="$BASECFLAGS -ieee -std"
721 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000722 SCO_SV*)
723 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
724 ;;
725 esac
726 ;;
727esac
728
Fred Drakee1ceaa02001-12-04 20:55:47 +0000729if test "$Py_DEBUG" = 'true'; then
730 :
731else
732 OPT="-DNDEBUG $OPT"
733fi
734
Guido van Rossum6f2260e1996-09-09 16:21:03 +0000735if test "$ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000736then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000737 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000738fi
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000739
Guido van Rossum91922671997-10-09 20:24:13 +0000740AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
741AC_CACHE_VAL(ac_cv_opt_olimit_ok,
742[ac_save_cc="$CC"
743CC="$CC -OPT:Olimit=0"
744AC_TRY_RUN([int main() { return 0; }],
745 ac_cv_opt_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000746 ac_cv_opt_olimit_ok=no,
Guido van Rossum91922671997-10-09 20:24:13 +0000747 ac_cv_opt_olimit_ok=no)
748CC="$ac_save_cc"])
749AC_MSG_RESULT($ac_cv_opt_olimit_ok)
Guido van Rossum2efa34b1997-10-23 17:43:11 +0000750if test $ac_cv_opt_olimit_ok = yes; then
Guido van Rossum5839e582000-10-09 19:52:35 +0000751 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000752 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
753 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
754 # environment?
755 Darwin*)
756 ;;
757 *)
758 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
759 ;;
Guido van Rossum5839e582000-10-09 19:52:35 +0000760 esac
Guido van Rossumf8678121998-07-07 21:05:09 +0000761else
762 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
763 AC_CACHE_VAL(ac_cv_olimit_ok,
764 [ac_save_cc="$CC"
765 CC="$CC -Olimit 1500"
766 AC_TRY_RUN([int main() { return 0; }],
767 ac_cv_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000768 ac_cv_olimit_ok=no,
Guido van Rossumf8678121998-07-07 21:05:09 +0000769 ac_cv_olimit_ok=no)
770 CC="$ac_save_cc"])
771 AC_MSG_RESULT($ac_cv_olimit_ok)
772 if test $ac_cv_olimit_ok = yes; then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000773 BASECFLAGS="$BASECFLAGS -Olimit 1500"
Guido van Rossumf8678121998-07-07 21:05:09 +0000774 fi
Guido van Rossum201afe51997-05-14 21:14:44 +0000775fi
Guido van Rossumf8678121998-07-07 21:05:09 +0000776
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000777# On some compilers, pthreads are available without further options
778# (e.g. MacOS X). On some of these systems, the compiler will not
779# complain if unaccepted options are passed (e.g. gcc on Mac OS X).
780# So we have to see first whether pthreads are available without
781# options before we can check whether -Kpthread improves anything.
782AC_MSG_CHECKING(whether pthreads are available without options)
783AC_CACHE_VAL(ac_cv_pthread_is_default,
784[AC_TRY_RUN([
785#include <pthread.h>
786
787void* routine(void* p){return NULL;}
788
789int main(){
790 pthread_t p;
791 if(pthread_create(&p,NULL,routine,NULL)!=0)
792 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000793 (void)pthread_detach(p);
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000794 return 0;
795}
796],
Skip Montanarod8d39a02003-07-10 20:44:10 +0000797[
798 ac_cv_pthread_is_default=yes
799 ac_cv_kthread=no
800 ac_cv_pthread=no
801],
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000802 ac_cv_pthread_is_default=no,
803 ac_cv_pthread_is_default=no)
804])
805AC_MSG_RESULT($ac_cv_pthread_is_default)
806
807
808if test $ac_cv_pthread_is_default = yes
809then
810 ac_cv_kpthread=no
811else
Martin v. Löwis130fb172001-07-19 11:00:41 +0000812# -Kpthread, if available, provides the right #defines
813# and linker options to make pthread_create available
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000814# Some compilers won't report that they do not support -Kpthread,
815# so we need to run a program to see whether it really made the
816# function available.
Martin v. Löwis130fb172001-07-19 11:00:41 +0000817AC_MSG_CHECKING(whether $CC accepts -Kpthread)
818AC_CACHE_VAL(ac_cv_kpthread,
819[ac_save_cc="$CC"
820CC="$CC -Kpthread"
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000821AC_TRY_RUN([
822#include <pthread.h>
823
824void* routine(void* p){return NULL;}
825
826int main(){
827 pthread_t p;
828 if(pthread_create(&p,NULL,routine,NULL)!=0)
829 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000830 (void)pthread_detach(p);
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000831 return 0;
832}
833],
Martin v. Löwis130fb172001-07-19 11:00:41 +0000834 ac_cv_kpthread=yes,
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000835 ac_cv_kpthread=no,
Martin v. Löwis130fb172001-07-19 11:00:41 +0000836 ac_cv_kpthread=no)
837CC="$ac_save_cc"])
Martin v. Löwis130fb172001-07-19 11:00:41 +0000838AC_MSG_RESULT($ac_cv_kpthread)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000839fi
Martin v. Löwis130fb172001-07-19 11:00:41 +0000840
Skip Montanarod8d39a02003-07-10 20:44:10 +0000841if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis5f433f02003-05-05 05:05:30 +0000842then
843# -Kthread, if available, provides the right #defines
844# and linker options to make pthread_create available
845# Some compilers won't report that they do not support -Kthread,
846# so we need to run a program to see whether it really made the
847# function available.
848AC_MSG_CHECKING(whether $CC accepts -Kthread)
849AC_CACHE_VAL(ac_cv_kthread,
850[ac_save_cc="$CC"
851CC="$CC -Kthread"
852AC_TRY_RUN([
853#include <pthread.h>
854
855void* routine(void* p){return NULL;}
856
857int main(){
858 pthread_t p;
859 if(pthread_create(&p,NULL,routine,NULL)!=0)
860 return 1;
861 (void)pthread_detach(p);
862 return 0;
863}
864],
865 ac_cv_kthread=yes,
866 ac_cv_kthread=no,
867 ac_cv_kthread=no)
868CC="$ac_save_cc"])
869AC_MSG_RESULT($ac_cv_kthread)
870fi
871
Skip Montanarod8d39a02003-07-10 20:44:10 +0000872if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +0000873then
874# -pthread, if available, provides the right #defines
875# and linker options to make pthread_create available
876# Some compilers won't report that they do not support -pthread,
877# so we need to run a program to see whether it really made the
878# function available.
879AC_MSG_CHECKING(whether $CC accepts -pthread)
880AC_CACHE_VAL(ac_cv_thread,
881[ac_save_cc="$CC"
882CC="$CC -pthread"
883AC_TRY_RUN([
884#include <pthread.h>
885
886void* routine(void* p){return NULL;}
887
888int main(){
889 pthread_t p;
890 if(pthread_create(&p,NULL,routine,NULL)!=0)
891 return 1;
892 (void)pthread_detach(p);
893 return 0;
894}
895],
896 ac_cv_pthread=yes,
897 ac_cv_pthread=no,
898 ac_cv_pthread=no)
899CC="$ac_save_cc"])
900AC_MSG_RESULT($ac_cv_pthread)
901fi
902
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000903# If we have set a CC compiler flag for thread support then
904# check if it works for CXX, too.
905ac_cv_cxx_thread=no
906if test ! -z "$CXX"
907then
908AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
909ac_save_cxx="$CXX"
910
911if test "$ac_cv_kpthread" = "yes"
912then
Martin v. Löwis519adae2003-09-20 10:47:47 +0000913 CXX="$CXX -Kpthread"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000914 ac_cv_cxx_thread=yes
915elif test "$ac_cv_kthread" = "yes"
916then
917 CXX="$CXX -Kthread"
918 ac_cv_cxx_thread=yes
919elif test "$ac_cv_pthread" = "yes"
920then
921 CXX="$CXX -pthread"
922 ac_cv_cxx_thread=yes
923fi
924
925if test $ac_cv_cxx_thread = yes
926then
927 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
928 $CXX -c conftest.$ac_ext 2>&5
929 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
930 && test -s conftest$ac_exeext && ./conftest$ac_exeext
931 then
932 ac_cv_cxx_thread=yes
933 else
934 ac_cv_cxx_thread=no
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000935 fi
936 rm -fr conftest*
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000937fi
938fi
Martin v. Löwis519adae2003-09-20 10:47:47 +0000939CXX="$ac_save_cxx"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000940AC_MSG_RESULT($ac_cv_cxx_thread)
941
Fred Drakece81d592000-07-09 14:39:29 +0000942dnl # check for ANSI or K&R ("traditional") preprocessor
943dnl AC_MSG_CHECKING(for C preprocessor type)
944dnl AC_TRY_COMPILE([
945dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
946dnl int foo;
947dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
948dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
949dnl AC_MSG_RESULT($cpp_type)
Guido van Rossum300fda71996-08-19 21:58:16 +0000950
Guido van Rossum627b2d71993-12-24 10:39:16 +0000951# checks for header files
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000952AC_HEADER_STDC
Skip Montanaro7befb992004-02-10 16:50:21 +0000953AC_CHECK_HEADERS(dlfcn.h fcntl.h grp.h langinfo.h \
954libintl.h ncurses.h poll.h pthread.h \
955stropts.h termios.h thread.h \
Martin v. Löwis14e73b12003-01-01 09:51:12 +0000956unistd.h utime.h \
Neal Norwitz82251032003-05-23 14:35:24 +0000957sys/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 +0000958sys/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 +0000959sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
Hye-Shik Chang81268602004-02-02 06:05:24 +0000960sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
961bluetooth/bluetooth.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000962AC_HEADER_DIRENT
Martin v. Löwisdbe3f762002-10-10 14:27:30 +0000963AC_HEADER_MAJOR
Guido van Rossum627b2d71993-12-24 10:39:16 +0000964
965# checks for typedefs
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000966was_it_defined=no
967AC_MSG_CHECKING(for clock_t in time.h)
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000968AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
969 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
970])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000971AC_MSG_RESULT($was_it_defined)
972
Neal Norwitz11690112002-07-30 01:08:28 +0000973# Check whether using makedev requires defining _OSF_SOURCE
974AC_MSG_CHECKING(for makedev)
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000975AC_TRY_LINK([#include <sys/types.h> ],
Neal Norwitz11690112002-07-30 01:08:28 +0000976 [ makedev(0, 0) ],
977 ac_cv_has_makedev=yes,
978 ac_cv_has_makedev=no)
979if test "$ac_cv_has_makedev" = "no"; then
980 # we didn't link, try if _OSF_SOURCE will allow us to link
981 AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000982#define _OSF_SOURCE 1
983#include <sys/types.h>
Neal Norwitz11690112002-07-30 01:08:28 +0000984 ],
985 [ makedev(0, 0) ],
986 ac_cv_has_makedev=yes,
987 ac_cv_has_makedev=no)
988 if test "$ac_cv_has_makedev" = "yes"; then
989 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
990 fi
991fi
992AC_MSG_RESULT($ac_cv_has_makedev)
993if test "$ac_cv_has_makedev" = "yes"; then
994 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
995fi
996
Martin v. Löwis399a6892002-10-04 10:22:02 +0000997# Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
998# the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
999# defined, but the compiler does not support pragma redefine_extname,
1000# and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1001# structures (such as rlimit64) without declaring them. As a
1002# work-around, disable LFS on such configurations
1003
1004use_lfs=yes
1005AC_MSG_CHECKING(Solaris LFS bug)
1006AC_TRY_COMPILE([
1007#define _LARGEFILE_SOURCE 1
1008#define _FILE_OFFSET_BITS 64
1009#include <sys/resource.h>
1010],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1011AC_MSG_RESULT($sol_lfs_bug)
1012if test "$sol_lfs_bug" = "yes"; then
1013 use_lfs=no
1014fi
1015
1016if test "$use_lfs" = "yes"; then
Guido van Rossum810cc512001-09-09 23:51:39 +00001017# Two defines needed to enable largefile support on various platforms
1018# These may affect some typedefs
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001019AC_DEFINE(_LARGEFILE_SOURCE, 1,
1020[This must be defined on some systems to enable large file support.])
1021AC_DEFINE(_FILE_OFFSET_BITS, 64,
1022[This must be set to 64 on some systems to enable large file support.])
Martin v. Löwis399a6892002-10-04 10:22:02 +00001023fi
Guido van Rossum810cc512001-09-09 23:51:39 +00001024
Guido van Rossum300fda71996-08-19 21:58:16 +00001025# Add some code to confdefs.h so that the test for off_t works on SCO
1026cat >> confdefs.h <<\EOF
1027#if defined(SCO_DS)
1028#undef _OFF_T
1029#endif
1030EOF
1031
Guido van Rossumef2255b2000-03-10 22:30:29 +00001032# Type availability checks
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001033AC_TYPE_MODE_T
1034AC_TYPE_OFF_T
1035AC_TYPE_PID_T
1036AC_TYPE_SIGNAL
1037AC_TYPE_SIZE_T
1038AC_TYPE_UID_T
Guido van Rossum627b2d71993-12-24 10:39:16 +00001039
Guido van Rossumef2255b2000-03-10 22:30:29 +00001040# Sizes of various common basic types
Skip Montanarob9820a32004-01-17 00:16:12 +00001041# ANSI C requires sizeof(char) == 1, so no need to check it
Guido van Rossum3065c942001-09-17 04:03:14 +00001042AC_CHECK_SIZEOF(int, 4)
1043AC_CHECK_SIZEOF(long, 4)
1044AC_CHECK_SIZEOF(void *, 4)
Guido van Rossum3065c942001-09-17 04:03:14 +00001045AC_CHECK_SIZEOF(short, 2)
1046AC_CHECK_SIZEOF(float, 4)
1047AC_CHECK_SIZEOF(double, 8)
1048AC_CHECK_SIZEOF(fpos_t, 4)
Guido van Rossumac405f61994-09-12 10:56:06 +00001049
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001050AC_MSG_CHECKING(for long long support)
1051have_long_long=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001052AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1053 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1054 have_long_long=yes
1055])
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001056AC_MSG_RESULT($have_long_long)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001057if test "$have_long_long" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001058AC_CHECK_SIZEOF(long long, 8)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001059fi
1060
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001061AC_MSG_CHECKING(for uintptr_t support)
1062have_uintptr_t=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001063AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1064 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1065 have_uintptr_t=yes
1066])
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001067AC_MSG_RESULT($have_uintptr_t)
1068if test "$have_uintptr_t" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001069AC_CHECK_SIZEOF(uintptr_t, 4)
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001070fi
1071
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001072# Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1073AC_MSG_CHECKING(size of off_t)
1074AC_CACHE_VAL(ac_cv_sizeof_off_t,
1075[AC_TRY_RUN([#include <stdio.h>
1076#include <sys/types.h>
1077main()
1078{
1079 FILE *f=fopen("conftestval", "w");
1080 if (!f) exit(1);
1081 fprintf(f, "%d\n", sizeof(off_t));
1082 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001083}],
1084ac_cv_sizeof_off_t=`cat conftestval`,
1085ac_cv_sizeof_off_t=0,
1086ac_cv_sizeof_off_t=4)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001087])
1088AC_MSG_RESULT($ac_cv_sizeof_off_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001089AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1090[The number of bytes in an off_t.])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001091
1092AC_MSG_CHECKING(whether to enable large file support)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001093if test "$have_long_long" = yes -a \
1094 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1095 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001096 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1097 [Defined to enable large file support when an off_t is bigger than a long
1098 and long long is available and at least as big as an off_t. You may need
1099 to add some flags for configuration and compilation to enable this mode.
1100 (For Solaris and Linux, the necessary defines are already defined.)])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001101 AC_MSG_RESULT(yes)
1102else
1103 AC_MSG_RESULT(no)
1104fi
1105
Fred Drakea3f6e912000-06-29 20:44:47 +00001106# AC_CHECK_SIZEOF() doesn't include <time.h>.
1107AC_MSG_CHECKING(size of time_t)
1108AC_CACHE_VAL(ac_cv_sizeof_time_t,
1109[AC_TRY_RUN([#include <stdio.h>
1110#include <time.h>
1111main()
1112{
1113 FILE *f=fopen("conftestval", "w");
1114 if (!f) exit(1);
1115 fprintf(f, "%d\n", sizeof(time_t));
1116 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001117}],
1118ac_cv_sizeof_time_t=`cat conftestval`,
1119ac_cv_sizeof_time_t=0,
1120ac_cv_sizeof_time_t=4)
Fred Drakea3f6e912000-06-29 20:44:47 +00001121])
1122AC_MSG_RESULT($ac_cv_sizeof_time_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001123AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1124[The number of bytes in a time_t.])
Fred Drakea3f6e912000-06-29 20:44:47 +00001125
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001126
Trent Mick635f6fb2000-08-23 21:33:05 +00001127# if have pthread_t then define SIZEOF_PTHREAD_T
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001128ac_save_cc="$CC"
1129if test "$ac_cv_kpthread" = "yes"
1130then CC="$CC -Kpthread"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001131elif test "$ac_cv_kthread" = "yes"
1132then CC="$CC -Kthread"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001133elif test "$ac_cv_pthread" = "yes"
1134then CC="$CC -pthread"
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001135fi
Trent Mick635f6fb2000-08-23 21:33:05 +00001136AC_MSG_CHECKING(for pthread_t)
1137have_pthread_t=no
Guido van Rossum12580492000-09-24 16:47:19 +00001138AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
Trent Mick635f6fb2000-08-23 21:33:05 +00001139AC_MSG_RESULT($have_pthread_t)
1140if test "$have_pthread_t" = yes ; then
1141 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1142 AC_MSG_CHECKING(size of pthread_t)
1143 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1144 [AC_TRY_RUN([#include <stdio.h>
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001145#include <pthread.h>
Trent Mick635f6fb2000-08-23 21:33:05 +00001146 main()
1147 {
1148 FILE *f=fopen("conftestval", "w");
1149 if (!f) exit(1);
1150 fprintf(f, "%d\n", sizeof(pthread_t));
1151 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001152 }],
1153 ac_cv_sizeof_pthread_t=`cat conftestval`,
1154 ac_cv_sizeof_pthread_t=0,
1155 ac_cv_sizeof_pthread_t=4)
Trent Mick635f6fb2000-08-23 21:33:05 +00001156 ])
1157 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001158 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1159 [The number of bytes in a pthread_t.])
Trent Mick635f6fb2000-08-23 21:33:05 +00001160fi
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001161CC="$ac_save_cc"
Trent Mick635f6fb2000-08-23 21:33:05 +00001162
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001163AC_MSG_CHECKING(for --enable-toolbox-glue)
1164AC_ARG_ENABLE(toolbox-glue,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001165 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001166
1167if test -z "$enable_toolbox_glue"
1168then
1169 case $ac_sys_system/$ac_sys_release in
1170 Darwin/*)
1171 enable_toolbox_glue="yes";;
1172 *)
1173 enable_toolbox_glue="no";;
1174 esac
1175fi
1176case "$enable_toolbox_glue" in
1177yes)
Jack Jansen666b1e72001-10-31 12:11:48 +00001178 extra_frameworks="-framework CoreServices -framework Foundation"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001179 extra_machdep_objs="Python/mactoolboxglue.o"
Jack Jansen591cbed2001-08-15 13:55:15 +00001180 extra_undefs="-u __dummy -u _PyMac_Error"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001181 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1182 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001183 ;;
1184*)
1185 extra_frameworks=""
1186 extra_machdep_objs=""
Jack Jansen591cbed2001-08-15 13:55:15 +00001187 extra_undefs=""
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001188 ;;
1189esac
1190AC_MSG_RESULT($enable_toolbox_glue)
1191
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001192AC_SUBST(LIBTOOL_CRUFT)
1193case $ac_sys_system/$ac_sys_release in
Jack Jansen418c3b12001-11-14 10:59:57 +00001194 Darwin/1.3*)
Jack Jansenea0c3822002-08-01 21:57:49 +00001195 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
Jack Jansen418c3b12001-11-14 10:59:57 +00001196 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
Jack Jansenb36687a2004-07-16 08:43:47 +00001197 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
Jack Jansena3891ea2001-09-07 14:25:12 +00001198 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum5839e582000-10-09 19:52:35 +00001199 Darwin/*)
Jack Jansenea0c3822002-08-01 21:57:49 +00001200 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
Jack Jansen418c3b12001-11-14 10:59:57 +00001201 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
Jack Jansenb36687a2004-07-16 08:43:47 +00001202 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001203 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001204esac
1205
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001206AC_MSG_CHECKING(for --enable-framework)
1207if test "$enable_framework"
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001208then
Skip Montanarodecc6a42003-01-01 20:07:49 +00001209 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001210 # -F. is needed to allow linking to the framework while
1211 # in the build location.
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001212 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1213 [Define if you want to produce an OpenStep/Rhapsody framework
1214 (shared library plus accessory files).])
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001215 AC_MSG_RESULT(yes)
1216else
1217 AC_MSG_RESULT(no)
1218fi
1219
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001220AC_MSG_CHECKING(for dyld)
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001221case $ac_sys_system/$ac_sys_release in
1222 Darwin/*)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001223 AC_DEFINE(WITH_DYLD, 1,
1224 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1225 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1226 linker (rld). Dyld is necessary to support frameworks.])
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001227 AC_MSG_RESULT(always on for Darwin)
1228 ;;
1229 *)
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001230 AC_MSG_RESULT(no)
1231 ;;
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001232esac
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001233
Guido van Rossumac405f61994-09-12 10:56:06 +00001234# Set info about shared libraries.
Guido van Rossumac405f61994-09-12 10:56:06 +00001235AC_SUBST(SO)
1236AC_SUBST(LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001237AC_SUBST(BLDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001238AC_SUBST(CCSHARED)
1239AC_SUBST(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001240# SO is the extension of shared libraries `(including the dot!)
Guido van Rossumaef734b2001-01-10 21:09:12 +00001241# -- usually .so, .sl on HP-UX, .dll on Cygwin
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001242AC_MSG_CHECKING(SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001243if test -z "$SO"
1244then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001245 case $ac_sys_system in
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001246 hp*|HP*) SO=.sl;;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001247 CYGWIN*) SO=.dll;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001248 *) SO=.so;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001249 esac
Martin v. Löwis368de8f2003-06-14 14:46:38 +00001250else
1251 # this might also be a termcap variable, see #610332
1252 echo
1253 echo '====================================================================='
1254 echo '+ +'
1255 echo '+ WARNING: You have set SO in your environment. +'
1256 echo '+ Do you really mean to change the extension for shared libraries? +'
1257 echo '+ Continuing in 10 seconds to let you to ponder. +'
1258 echo '+ +'
1259 echo '====================================================================='
1260 sleep 10
Guido van Rossumac405f61994-09-12 10:56:06 +00001261fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001262AC_MSG_RESULT($SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001263# LDSHARED is the ld *command* used to create shared library
Skip Montanaroce59c042004-01-17 14:19:44 +00001264# -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001265# (Shared libraries in this instance are shared modules to be loaded into
1266# Python, as opposed to building Python itself as a shared library.)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001267AC_MSG_CHECKING(LDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001268if test -z "$LDSHARED"
1269then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001270 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001271 AIX*)
1272 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
Guido van Rossumce608b02001-09-28 15:59:38 +00001273 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001274 ;;
1275 BeOS*)
1276 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
Guido van Rossumce608b02001-09-28 15:59:38 +00001277 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001278 ;;
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001279 IRIX/5*) LDSHARED="ld -shared";;
Guido van Rossum91922671997-10-09 20:24:13 +00001280 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
Greg Ward57c9a6632000-05-26 12:22:54 +00001281 SunOS/5*)
1282 if test "$GCC" = "yes"
Neil Schemenauer95052722001-02-19 18:17:33 +00001283 then LDSHARED='$(CC) -shared'
Martin v. Löwisaa5afe12002-10-07 06:21:41 +00001284 else LDSHARED='$(CC) -G';
Greg Ward57c9a6632000-05-26 12:22:54 +00001285 fi ;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001286 hp*|HP*) LDSHARED="ld -b";;
Guido van Rossum71001e41995-01-26 00:44:03 +00001287 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
Jack Jansen418c3b12001-11-14 10:59:57 +00001288 Darwin/1.3*)
Jack Jansena3891ea2001-09-07 14:25:12 +00001289 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1290 if test "$enable_framework" ; then
1291 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001292 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1293 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansena3891ea2001-09-07 14:25:12 +00001294 else
1295 # No framework. Ignore undefined symbols, assuming they come from Python
Jack Jansen418c3b12001-11-14 10:59:57 +00001296 LDSHARED="$LDSHARED -undefined suppress"
Jack Jansena3891ea2001-09-07 14:25:12 +00001297 fi ;;
Jack Jansen6b08a402004-06-03 12:41:45 +00001298 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001299 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1300 if test "$enable_framework" ; then
1301 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001302 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1303 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001304 else
Michael W. Hudson0c46c0c2002-03-07 09:58:56 +00001305 # No framework, use the Python app as bundle-loader
1306 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
Jack Jansenc28fc372003-02-25 13:14:43 +00001307 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001308 fi ;;
Jack Jansen6b08a402004-06-03 12:41:45 +00001309 Darwin/*)
1310 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1311 # This allows an extension to be used in any Python
1312 if test ${MACOSX_DEPLOYMENT_TARGET-10.1} '>' 10.2
1313 then
1314 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1315 BLDSHARED="$LDSHARED"
1316 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
1317 else
1318 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1319 if test "$enable_framework" ; then
1320 # Link against the framework. All externals should be defined.
1321 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1322 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
1323 else
1324 # No framework, use the Python app as bundle-loader
1325 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1326 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1327 fi
1328 fi
1329 ;;
Martin v. Löwis3cba5c02002-09-16 17:50:59 +00001330 Linux*|GNU*) LDSHARED='$(CC) -shared';;
Guido van Rossum458e7fa1999-09-17 15:40:40 +00001331 BSD/OS*/4*) LDSHARED="gcc -shared";;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001332 OpenBSD*|FreeBSD*)
Jeremy Hylton4bcc7c52000-08-31 17:45:35 +00001333 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
Guido van Rossum0286ae82000-08-29 15:06:49 +00001334 then
1335 LDSHARED="cc -shared ${LDFLAGS}"
1336 else
1337 LDSHARED="ld -Bshareable ${LDFLAGS}"
1338 fi;;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001339 NetBSD*) LDSHARED="cc -shared ${LDFLAGS}";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001340 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001341 if test "$GCC" = "yes"
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001342 then LDSHARED='$(CC) -shared'
1343 else LDSHARED='$(CC) -G'
Martin v. Löwisbec19582001-03-21 15:57:54 +00001344 fi;;
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001345 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
Trent Mick635f6fb2000-08-23 21:33:05 +00001346 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001347 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001348 atheos*) LDSHARED="gcc -shared";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001349 *) LDSHARED="ld";;
1350 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001351fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001352AC_MSG_RESULT($LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001353BLDSHARED=${BLDSHARED-$LDSHARED}
Guido van Rossumac405f61994-09-12 10:56:06 +00001354# CCSHARED are the C *flags* used to create objects to go into a shared
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001355# library (module) -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001356AC_MSG_CHECKING(CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001357if test -z "$CCSHARED"
1358then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001359 case $ac_sys_system/$ac_sys_release in
Neil Schemenauer66252162001-02-19 04:47:42 +00001360 SunOS*) if test "$GCC" = yes;
1361 then CCSHARED="-fPIC";
1362 fi;;
Guido van Rossumaf07a441995-02-13 19:45:27 +00001363 hp*|HP*) if test "$GCC" = yes;
Martin v. Löwis703ad702001-09-05 08:36:52 +00001364 then CCSHARED="-fPIC";
Guido van Rossumaf07a441995-02-13 19:45:27 +00001365 else CCSHARED="+z";
1366 fi;;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001367 Linux*|GNU*) CCSHARED="-fPIC";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001368 BSD/OS*/4*) CCSHARED="-fpic";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001369 FreeBSD*|NetBSD*|OpenBSD*) CCSHARED="-fPIC";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001370 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001371 if test "$GCC" = "yes"
1372 then CCSHARED="-fPIC"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001373 else CCSHARED="-KPIC"
Martin v. Löwisbec19582001-03-21 15:57:54 +00001374 fi;;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001375 SCO_SV*)
1376 if test "$GCC" = "yes"
1377 then CCSHARED="-fPIC"
1378 else CCSHARED="-Kpic -belf"
1379 fi;;
Trent Mick635f6fb2000-08-23 21:33:05 +00001380 Monterey*) CCSHARED="-G";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001381 IRIX*/6*) case $CC in
1382 *gcc*) CCSHARED="-shared";;
Guido van Rossumee21f411998-04-20 18:51:54 +00001383 *) CCSHARED="";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001384 esac;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001385 atheos*) CCSHARED="-fPIC";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001386 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001387fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001388AC_MSG_RESULT($CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001389# LINKFORSHARED are the flags passed to the $(CC) command that links
Guido van Rossumb65a48e1995-06-14 18:21:23 +00001390# the python executable -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001391AC_MSG_CHECKING(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001392if test -z "$LINKFORSHARED"
1393then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001394 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001395 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
Guido van Rossum5dab3d81996-12-06 21:18:18 +00001396 hp*|HP*)
Martin v. Löwis1142de32002-03-29 16:28:31 +00001397 LINKFORSHARED="-Wl,-E -Wl,+s";;
1398# LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001399 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001400 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001401 # -u libsys_s pulls in all symbols in libsys
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001402 Darwin/*)
1403 # -u __dummy makes the linker aware of the objc runtime
1404 # in System.framework; otherwise, __objcInit (referenced in
1405 # crt1.o) gets erroneously defined as common, which breaks dynamic
1406 # loading of any modules which reference it in System.framework.
1407 # -u _PyMac_Error is needed to pull in the mac toolbox glue, which is
1408 # not used by the core itself but which needs to be in the core so
1409 # that dynamically loaded extension modules have access to it.
Jack Jansen97e3f002003-02-23 22:59:01 +00001410 # -prebind is no longer used, because it actually seems to give a
1411 # slowdown in stead of a speedup, maybe due to the large number of
1412 # dynamic loads Python does.
1413 LINKFORSHARED="$extra_undefs -framework System"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001414 if test "$enable_framework"
1415 then
Jack Jansenb36687a2004-07-16 08:43:47 +00001416 LINKFORSHARED="$LINKFORSHARED -Wl,-F. -framework "'$(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001417 fi
1418 LINKFORSHARED="$LINKFORSHARED $extra_frameworks";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001419 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001420 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
Fred Drake02706f52000-09-25 15:08:46 +00001421 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001422 FreeBSD*|NetBSD*|OpenBSD*)
Guido van Rossumdf693651999-01-07 21:50:41 +00001423 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1424 then
1425 LINKFORSHARED="-Wl,--export-dynamic"
1426 fi;;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001427 SunOS/5*) case $CC in
1428 *gcc*)
Martin v. Löwisa4548572002-04-18 14:51:36 +00001429 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
Guido van Rossum8f4ceb11997-12-18 23:42:19 +00001430 then
1431 LINKFORSHARED="-Xlinker --export-dynamic"
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001432 fi;;
1433 esac;;
Jason Tishler30765592003-09-04 11:04:06 +00001434 CYGWIN*)
1435 if test $enable_shared = "no"
1436 then
1437 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1438 fi;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001439 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001440fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001441AC_MSG_RESULT($LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001442
Neil Schemenauer61c51152001-01-26 16:18:16 +00001443AC_SUBST(CFLAGSFORSHARED)
1444AC_MSG_CHECKING(CFLAGSFORSHARED)
1445if test ! "$LIBRARY" = "$LDLIBRARY"
1446then
Neil Schemenauerd9cf41c2001-01-27 21:39:17 +00001447 case $ac_sys_system in
1448 CYGWIN*)
1449 # Cygwin needs CCSHARED when building extension DLLs
1450 # but not when building the interpreter DLL.
1451 CFLAGSFORSHARED='';;
1452 *)
1453 CFLAGSFORSHARED='$(CCSHARED)'
1454 esac
Neil Schemenauer61c51152001-01-26 16:18:16 +00001455fi
1456AC_MSG_RESULT($CFLAGSFORSHARED)
1457
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001458# SHLIBS are libraries (except -lc and -lm) to link to the python shared
1459# library (with --enable-shared).
1460# For platforms on which shared libraries are not allowed to have unresolved
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001461# symbols, this must be set to $(LIBS) (expanded by make). We do this even
1462# if it is not required, since it creates a dependency of the shared library
1463# to LIBS. This, in turn, means that applications linking the shared libpython
1464# don't need to link LIBS explicitly. The default should be only changed
1465# on systems where this approach causes problems.
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001466AC_SUBST(SHLIBS)
1467AC_MSG_CHECKING(SHLIBS)
1468case "$ac_sys_system" in
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001469 *)
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001470 SHLIBS='$(LIBS)';;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001471esac
1472AC_MSG_RESULT($SHLIBS)
1473
1474
Guido van Rossum627b2d71993-12-24 10:39:16 +00001475# checks for libraries
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001476AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1477AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
Martin v. Löwis519adae2003-09-20 10:47:47 +00001478
1479# only check for sem_ini if thread support is requested
1480if test "$with_threads" = "yes" -o -z "$with_threads"; then
1481 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1482 # posix4 on Solaris 2.6
1483 # pthread (first!) on Linux
1484fi
1485
Martin v. Löwis19d17342003-06-14 21:03:05 +00001486# check if we need libintl for locale functions
1487AC_CHECK_LIB(intl, textdomain,
1488 AC_DEFINE(WITH_LIBINTL, 1,
1489 [Define to 1 if libintl is needed for locale functions.]))
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001490
1491# checks for system dependent C++ extensions support
1492case "$ac_sys_system" in
1493 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1494 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1495 [loadAndInit("", 0, "")],
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001496 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1497 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1498 and you want support for AIX C++ shared extension modules.])
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001499 AC_MSG_RESULT(yes)],
1500 [AC_MSG_RESULT(no)]);;
1501 *) ;;
1502esac
1503
Guido van Rossum70c7f481998-03-26 18:44:10 +00001504# Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001505# BeOS' sockets are stashed in libnet.
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001506AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001507AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
Skip Montanarob9949db2004-01-17 04:04:13 +00001508
Jeremy Hyltoncb25d5e2000-07-27 21:23:28 +00001509case "$ac_sys_system" in
1510BeOS*)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001511AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1512;;
1513esac
Guido van Rossum70c7f481998-03-26 18:44:10 +00001514
Guido van Rossumc5a39031996-07-31 17:35:03 +00001515AC_MSG_CHECKING(for --with-libs)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001516AC_ARG_WITH(libs,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001517 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1518[
Guido van Rossumc5a39031996-07-31 17:35:03 +00001519AC_MSG_RESULT($withval)
1520LIBS="$withval $LIBS"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001521],
1522[AC_MSG_RESULT(no)])
Guido van Rossum627b2d71993-12-24 10:39:16 +00001523
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001524# Determine if signalmodule should be used.
1525AC_SUBST(USE_SIGNAL_MODULE)
1526AC_SUBST(SIGNAL_OBJS)
1527AC_MSG_CHECKING(for --with-signal-module)
1528AC_ARG_WITH(signal-module,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001529 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001530
1531if test -z "$with_signal_module"
1532then with_signal_module="yes"
1533fi
1534AC_MSG_RESULT($with_signal_module)
1535
1536if test "${with_signal_module}" = "yes"; then
1537 USE_SIGNAL_MODULE=""
1538 SIGNAL_OBJS=""
1539else
1540 USE_SIGNAL_MODULE="#"
1541 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1542fi
1543
Guido van Rossum3d15bd82001-01-10 18:53:48 +00001544# This is used to generate Setup.config
Guido van Rossum009f7871997-12-04 00:51:42 +00001545AC_SUBST(USE_THREAD_MODULE)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001546USE_THREAD_MODULE=""
Guido van Rossum009f7871997-12-04 00:51:42 +00001547
Guido van Rossum54d93d41997-01-22 20:51:58 +00001548AC_MSG_CHECKING(for --with-dec-threads)
1549AC_SUBST(LDLAST)
1550AC_ARG_WITH(dec-threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001551 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1552[
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001553AC_MSG_RESULT($withval)
Guido van Rossum54d93d41997-01-22 20:51:58 +00001554LDLAST=-threads
Guido van Rossumf78abae1997-01-21 22:02:36 +00001555if test "${with_thread+set}" != set; then
Guido van Rossum54d93d41997-01-22 20:51:58 +00001556 with_thread="$withval";
1557fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001558[AC_MSG_RESULT(no)])
Guido van Rossum54d93d41997-01-22 20:51:58 +00001559
Martin v. Löwis11437992002-04-12 09:54:03 +00001560# Templates for things AC_DEFINEd more than once.
1561# For a single AC_DEFINE, no template is needed.
1562AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1563AH_TEMPLATE(_REENTRANT,
1564 [Define to force use of thread-safe errno, h_errno, and other functions])
1565AH_TEMPLATE(WITH_THREAD,
1566 [Define if you want to compile in rudimentary thread support])
1567
Guido van Rossum54d93d41997-01-22 20:51:58 +00001568AC_MSG_CHECKING(for --with-threads)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001569dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001570AC_ARG_WITH(threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001571 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
Guido van Rossum54d93d41997-01-22 20:51:58 +00001572
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001573# --with-thread is deprecated, but check for it anyway
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001574dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawa0f3c5c2000-06-30 16:39:35 +00001575AC_ARG_WITH(thread,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001576 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1577 [with_threads=$with_thread])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001578
1579if test -z "$with_threads"
1580then with_threads="yes"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001581fi
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001582AC_MSG_RESULT($with_threads)
Guido van Rossum6400c261997-05-22 20:34:27 +00001583
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001584AC_SUBST(THREADOBJ)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001585if test "$with_threads" = "no"
1586then
1587 USE_THREAD_MODULE="#"
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001588elif test "$ac_cv_pthread_is_default" = yes
1589then
1590 AC_DEFINE(WITH_THREAD)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001591 # Defining _REENTRANT on system with POSIX threads should not hurt.
1592 AC_DEFINE(_REENTRANT)
1593 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001594 THREADOBJ="Python/thread.o"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001595elif test "$ac_cv_kpthread" = "yes"
1596then
1597 CC="$CC -Kpthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001598 if test "$ac_cv_cxx_thread" = "yes"; then
1599 CXX="$CXX -Kpthread"
1600 fi
Martin v. Löwis130fb172001-07-19 11:00:41 +00001601 AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001602 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001603 THREADOBJ="Python/thread.o"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001604elif test "$ac_cv_kthread" = "yes"
1605then
1606 CC="$CC -Kthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001607 if test "$ac_cv_cxx_thread" = "yes"; then
1608 CXX="$CXX -Kthread"
1609 fi
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001610 AC_DEFINE(WITH_THREAD)
1611 posix_threads=yes
1612 THREADOBJ="Python/thread.o"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001613elif test "$ac_cv_pthread" = "yes"
1614then
1615 CC="$CC -pthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001616 if test "$ac_cv_cxx_thread" = "yes"; then
1617 CXX="$CXX -pthread"
1618 fi
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001619 AC_DEFINE(WITH_THREAD)
1620 posix_threads=yes
1621 THREADOBJ="Python/thread.o"
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001622else
Martin v. Löwis130fb172001-07-19 11:00:41 +00001623 if test ! -z "$with_threads" -a -d "$with_threads"
1624 then LDFLAGS="$LDFLAGS -L$with_threads"
1625 fi
1626 if test ! -z "$withval" -a -d "$withval"
1627 then LDFLAGS="$LDFLAGS -L$withval"
1628 fi
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001629
1630 # According to the POSIX spec, a pthreads implementation must
Matthias Klosea2542be2004-08-16 11:35:51 +00001631 # define _POSIX_THREADS in unistd.h. Some apparently don't
1632 # (e.g. gnu pth with pthread emulation)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001633 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1634 AC_EGREP_CPP(yes,
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001635 [
1636#include <unistd.h>
1637#ifdef _POSIX_THREADS
1638yes
1639#endif
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001640 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1641 AC_MSG_RESULT($unistd_defines_pthreads)
1642
Martin v. Löwis130fb172001-07-19 11:00:41 +00001643 AC_DEFINE(_REENTRANT)
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001644 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1645 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001646 AC_DEFINE(HURD_C_THREADS, 1,
1647 [Define if you are using Mach cthreads directly under /include])
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001648 LIBS="$LIBS -lthreads"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001649 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001650 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1651 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001652 AC_DEFINE(MACH_C_THREADS, 1,
1653 [Define if you are using Mach cthreads under mach /])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001654 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001655 AC_MSG_CHECKING(for --with-pth)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001656 AC_ARG_WITH([pth],
1657 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1658 [AC_MSG_RESULT($withval)
1659 AC_DEFINE([WITH_THREAD])
1660 AC_DEFINE([HAVE_PTH], 1,
1661 [Define if you have GNU PTH threads.])
1662 LIBS="-lpth $LIBS"
1663 THREADOBJ="Python/thread.o"],
1664 [AC_MSG_RESULT(no)
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001665
1666 # Just looking for pthread_create in libpthread is not enough:
1667 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1668 # So we really have to include pthread.h, and then link.
1669 _libs=$LIBS
1670 LIBS="$LIBS -lpthread"
1671 AC_MSG_CHECKING([for pthread_create in -lpthread])
1672 AC_TRY_LINK([#include <pthread.h>
1673
1674void * start_routine (void *arg) { exit (0); }], [
1675pthread_create (NULL, NULL, start_routine, NULL)], [
1676 AC_MSG_RESULT(yes)
1677 AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001678 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001679 THREADOBJ="Python/thread.o"],[
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001680 LIBS=$_libs
Martin v. Löwis130fb172001-07-19 11:00:41 +00001681 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001682 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001683 THREADOBJ="Python/thread.o"],[
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001684 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1685 AC_DEFINE(ATHEOS_THREADS, 1,
1686 [Define this if you have AtheOS threads.])
1687 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001688 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001689 AC_DEFINE(BEOS_THREADS, 1,
1690 [Define this if you have BeOS threads.])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001691 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001692 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001693 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001694 LIBS="$LIBS -lpthreads"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001695 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001696 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001697 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001698 LIBS="$LIBS -lc_r"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001699 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001700 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001701 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001702 LIBS="$LIBS -lpthread"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001703 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001704 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001705 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001706 LIBS="$LIBS -lcma"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001707 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001708 USE_THREAD_MODULE="#"])
Skip Montanarof8712e52004-01-17 03:04:46 +00001709 ])])])])])])])])])])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001710
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001711 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1712 LIBS="$LIBS -lmpc"
1713 THREADOBJ="Python/thread.o"
1714 USE_THREAD_MODULE=""])
1715
1716 if test "$posix_threads" != "yes"; then
1717 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1718 LIBS="$LIBS -lthread"
1719 THREADOBJ="Python/thread.o"
1720 USE_THREAD_MODULE=""])
1721 fi
1722
1723 if test "$USE_THREAD_MODULE" != "#"
1724 then
1725 # If the above checks didn't disable threads, (at least) OSF1
1726 # needs this '-threads' argument during linking.
1727 case $ac_sys_system in
1728 OSF1) LDLAST=-threads;;
1729 esac
1730 fi
1731fi
1732
1733if test "$posix_threads" = "yes"; then
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001734 if test "$unistd_defines_pthreads" = "no"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001735 AC_DEFINE(_POSIX_THREADS, 1,
1736 [Define if you have POSIX threads,
1737 and your system does not define that.])
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001738 fi
1739
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001740 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1741 case $ac_sys_system/$ac_sys_release in
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001742 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1743 Defined for Solaris 2.6 bug in pthread header.)
1744 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001745 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001746 Define if the Posix semaphores do not work on your system)
1747 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001748 esac
1749
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001750 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1751 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1752 [AC_TRY_RUN([#include <pthread.h>
1753 void *foo(void *parm) {
1754 return NULL;
1755 }
1756 main() {
1757 pthread_attr_t attr;
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001758 pthread_t id;
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001759 if (pthread_attr_init(&attr)) exit(-1);
1760 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001761 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001762 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001763 }],
1764 ac_cv_pthread_system_supported=yes,
1765 ac_cv_pthread_system_supported=no,
1766 ac_cv_pthread_system_supported=no)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001767 ])
1768 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1769 if test "$ac_cv_pthread_system_supported" = "yes"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001770 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001771 fi
Jason Tishlerfac083d2003-07-22 15:20:49 +00001772 AC_CHECK_FUNCS(pthread_sigmask,
1773 [case $ac_sys_system in
1774 CYGWIN*)
1775 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1776 [Define if pthread_sigmask() does not work on your system.])
1777 ;;
1778 esac])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001779fi
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001780
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001781
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001782# Check for enable-ipv6
Martin v. Löwis11437992002-04-12 09:54:03 +00001783AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001784AC_MSG_CHECKING([if --enable-ipv6 is specified])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001785AC_ARG_ENABLE(ipv6,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001786[ --enable-ipv6 Enable ipv6 (with ipv4) support
1787 --disable-ipv6 Disable ipv6 support],
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001788[ case "$enableval" in
1789 no)
1790 AC_MSG_RESULT(no)
1791 ipv6=no
1792 ;;
1793 *) AC_MSG_RESULT(yes)
1794 AC_DEFINE(ENABLE_IPV6)
1795 ipv6=yes
1796 ;;
1797 esac ],
1798
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001799[
1800dnl the check does not work on cross compilation case...
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001801 AC_TRY_RUN([ /* AF_INET6 available check */
1802#include <sys/types.h>
1803#include <sys/socket.h>
1804main()
1805{
1806 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1807 exit(1);
1808 else
1809 exit(0);
1810}
1811],
1812 AC_MSG_RESULT(yes)
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001813 ipv6=yes,
1814 AC_MSG_RESULT(no)
1815 ipv6=no,
1816 AC_MSG_RESULT(no)
1817 ipv6=no
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001818)
1819
1820if test "$ipv6" = "yes"; then
1821 AC_MSG_CHECKING(if RFC2553 API is available)
1822 AC_TRY_COMPILE([#include <sys/types.h>
1823#include <netinet/in.h>],
1824 [struct sockaddr_in6 x;
1825x.sin6_scope_id;],
1826 AC_MSG_RESULT(yes)
1827 ipv6=yes,
1828 AC_MSG_RESULT(no, IPv6 disabled)
1829 ipv6=no)
1830fi
1831
1832if test "$ipv6" = "yes"; then
1833 AC_DEFINE(ENABLE_IPV6)
1834fi
1835])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001836
1837ipv6type=unknown
1838ipv6lib=none
1839ipv6trylibc=no
1840
1841if test "$ipv6" = "yes"; then
1842 AC_MSG_CHECKING([ipv6 stack type])
Guido van Rossumb8552162001-09-05 14:58:11 +00001843 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1844 do
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001845 case $i in
1846 inria)
1847 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001848 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001849#include <netinet/in.h>
1850#ifdef IPV6_INRIA_VERSION
1851yes
1852#endif],
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001853 [ipv6type=$i])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001854 ;;
1855 kame)
1856 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001857 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001858#include <netinet/in.h>
1859#ifdef __KAME__
1860yes
1861#endif],
1862 [ipv6type=$i;
1863 ipv6lib=inet6
1864 ipv6libdir=/usr/local/v6/lib
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001865 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001866 ;;
1867 linux-glibc)
1868 dnl http://www.v6.linux.or.jp/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001869 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001870#include <features.h>
1871#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
1872yes
1873#endif],
1874 [ipv6type=$i;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001875 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001876 ;;
1877 linux-inet6)
1878 dnl http://www.v6.linux.or.jp/
1879 if test -d /usr/inet6; then
1880 ipv6type=$i
1881 ipv6lib=inet6
1882 ipv6libdir=/usr/inet6/lib
Skip Montanarodecc6a42003-01-01 20:07:49 +00001883 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001884 fi
1885 ;;
1886 solaris)
1887 if test -f /etc/netconfig; then
1888 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
1889 ipv6type=$i
1890 ipv6trylibc=yes
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001891 fi
1892 fi
1893 ;;
1894 toshiba)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001895 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001896#include <sys/param.h>
1897#ifdef _TOSHIBA_INET6
1898yes
1899#endif],
1900 [ipv6type=$i;
1901 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001902 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001903 ;;
1904 v6d)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001905 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001906#include </usr/local/v6/include/sys/v6config.h>
1907#ifdef __V6D__
1908yes
1909#endif],
1910 [ipv6type=$i;
1911 ipv6lib=v6;
1912 ipv6libdir=/usr/local/v6/lib;
Skip Montanarodecc6a42003-01-01 20:07:49 +00001913 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001914 ;;
1915 zeta)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001916 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001917#include <sys/param.h>
1918#ifdef _ZETA_MINAMI_INET6
1919yes
1920#endif],
1921 [ipv6type=$i;
1922 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001923 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001924 ;;
1925 esac
1926 if test "$ipv6type" != "unknown"; then
1927 break
1928 fi
1929 done
1930 AC_MSG_RESULT($ipv6type)
1931fi
1932
1933if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
1934 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
1935 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
1936 echo "using lib$ipv6lib"
1937 else
1938 if test $ipv6trylibc = "yes"; then
1939 echo "using libc"
1940 else
1941 echo 'Fatal: no $ipv6lib library found. cannot continue.'
1942 echo "You need to fetch lib$ipv6lib.a from appropriate"
1943 echo 'ipv6 kit and compile beforehand.'
1944 exit 1
1945 fi
1946 fi
1947fi
1948
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001949# Check for --with-doc-strings
1950AC_MSG_CHECKING(for --with-doc-strings)
1951AC_ARG_WITH(doc-strings,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001952 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001953
1954if test -z "$with_doc_strings"
1955then with_doc_strings="yes"
1956fi
1957if test "$with_doc_strings" != "no"
1958then
1959 AC_DEFINE(WITH_DOC_STRINGS, 1,
1960 [Define if you want documentation strings in extension modules])
1961fi
1962AC_MSG_RESULT($with_doc_strings)
1963
Neil Schemenauera35c6882001-02-27 04:45:05 +00001964# Check for Python-specific malloc support
Martin v. Löwisf30d60e2004-06-08 08:17:44 +00001965AC_MSG_CHECKING(for --with-tsc)
1966AC_ARG_WITH(tsc,
1967[ --with(out)-tsc enable/disable timestamp counter profile], [
1968if test "$withval" != no
1969then
1970 AC_DEFINE(WITH_TSC, 1,
1971 [Define to profile with the Pentium timestamp counter])
1972 AC_MSG_RESULT(yes)
1973else AC_MSG_RESULT(no)
1974fi],
1975[AC_MSG_RESULT(no)])
1976
1977# Check for Python-specific malloc support
Neil Schemenauera35c6882001-02-27 04:45:05 +00001978AC_MSG_CHECKING(for --with-pymalloc)
1979AC_ARG_WITH(pymalloc,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001980 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
Neil Schemenauer16c22972002-03-22 15:34:49 +00001981
1982if test -z "$with_pymalloc"
1983then with_pymalloc="yes"
1984fi
1985if test "$with_pymalloc" != "no"
1986then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001987 AC_DEFINE(WITH_PYMALLOC, 1,
1988 [Define if you want to compile in Python-specific mallocs])
Neil Schemenauer16c22972002-03-22 15:34:49 +00001989fi
1990AC_MSG_RESULT($with_pymalloc)
Neil Schemenauera35c6882001-02-27 04:45:05 +00001991
Barry Warsawef82cd72000-06-30 16:21:01 +00001992# Check for --with-wctype-functions
1993AC_MSG_CHECKING(for --with-wctype-functions)
1994AC_ARG_WITH(wctype-functions,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001995 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
1996[
Barry Warsawef82cd72000-06-30 16:21:01 +00001997if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001998then
1999 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2000 [Define if you want wctype.h functions to be used instead of the
2001 one supplied by Python itself. (see Include/unicodectype.h).])
2002 AC_MSG_RESULT(yes)
Barry Warsawef82cd72000-06-30 16:21:01 +00002003else AC_MSG_RESULT(no)
2004fi],
2005[AC_MSG_RESULT(no)])
2006
Guido van Rossum68242b51996-05-28 22:53:03 +00002007# -I${DLINCLDIR} is added to the compile rule for importdl.o
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002008AC_SUBST(DLINCLDIR)
Guido van Rossum98935bf2001-09-05 19:13:16 +00002009DLINCLDIR=.
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002010
Guido van Rossume97ee181999-12-20 21:27:22 +00002011# the dlopen() function means we might want to use dynload_shlib.o. some
2012# platforms, such as AIX, have dlopen(), but don't want to use it.
Thomas Wouters3a584202000-08-05 23:28:51 +00002013AC_CHECK_FUNCS(dlopen)
Guido van Rossume97ee181999-12-20 21:27:22 +00002014
2015# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2016# loading of modules.
2017AC_SUBST(DYNLOADFILE)
2018AC_MSG_CHECKING(DYNLOADFILE)
2019if test -z "$DYNLOADFILE"
2020then
2021 case $ac_sys_system/$ac_sys_release in
Martin v. Löwisc19c5a62003-11-18 20:00:44 +00002022 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2023 if test "$ac_cv_func_dlopen" = yes
2024 then DYNLOADFILE="dynload_shlib.o"
2025 else DYNLOADFILE="dynload_aix.o"
2026 fi
2027 ;;
Guido van Rossume97ee181999-12-20 21:27:22 +00002028 BeOS*) DYNLOADFILE="dynload_beos.o";;
2029 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002030 Darwin/*) DYNLOADFILE="dynload_next.o";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00002031 atheos*) DYNLOADFILE="dynload_atheos.o";;
Guido van Rossume97ee181999-12-20 21:27:22 +00002032 *)
2033 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2034 # out any dynamic loading
2035 if test "$ac_cv_func_dlopen" = yes
2036 then DYNLOADFILE="dynload_shlib.o"
2037 else DYNLOADFILE="dynload_stub.o"
2038 fi
2039 ;;
2040 esac
2041fi
2042AC_MSG_RESULT($DYNLOADFILE)
2043if test "$DYNLOADFILE" != "dynload_stub.o"
2044then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002045 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2046 [Defined when any dynamic module loading is enabled.])
Guido van Rossume97ee181999-12-20 21:27:22 +00002047fi
2048
Jack Jansenc49e5b72001-06-19 15:00:23 +00002049# MACHDEP_OBJS can be set to platform-specific object files needed by Python
2050
2051AC_SUBST(MACHDEP_OBJS)
2052AC_MSG_CHECKING(MACHDEP_OBJS)
2053if test -z "$MACHDEP_OBJS"
2054then
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002055 MACHDEP_OBJS=$extra_machdep_objs
2056else
2057 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
Jack Jansenc49e5b72001-06-19 15:00:23 +00002058fi
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002059AC_MSG_RESULT(MACHDEP_OBJS)
Jack Jansenc49e5b72001-06-19 15:00:23 +00002060
Guido van Rossum627b2d71993-12-24 10:39:16 +00002061# checks for library functions
Gustavo Niemeyer7bd33c52004-07-22 18:44:01 +00002062AC_CHECK_FUNCS(alarm bind_textdomain_codeset chown clock confstr ctermid \
2063 execv fork fpathconf ftime ftruncate \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002064 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
Martin v. Löwis49ee14d2003-11-10 06:35:36 +00002065 getpriority getpwent getsid getwd \
Martin v. Löwise9416172003-05-03 10:12:45 +00002066 kill killpg lchown lstat mkfifo mknod mktime \
Martin v. Löwisa5f09072002-10-11 05:37:59 +00002067 mremap nice pathconf pause plock poll pthread_init \
Guido van Rossum162e38c2003-02-19 15:25:10 +00002068 putenv readlink realpath \
Martin v. Löwisd5843682002-11-21 20:41:28 +00002069 select setegid seteuid setgid \
Martin v. Löwis4daacb12003-03-28 18:37:01 +00002070 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
Skip Montanaro7e11a012004-02-07 12:55:46 +00002071 sigaction siginterrupt sigrelse strftime \
Michael W. Hudson34f20ea2002-05-27 15:08:24 +00002072 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002073 truncate uname unsetenv utimes waitpid wcscoll _getpty)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002074
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002075# For some functions, having a definition is not sufficient, since
2076# we want to take their address.
2077AC_MSG_CHECKING(for chroot)
2078AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2079 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2080 AC_MSG_RESULT(yes),
2081 AC_MSG_RESULT(no)
2082)
2083AC_MSG_CHECKING(for link)
2084AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2085 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2086 AC_MSG_RESULT(yes),
2087 AC_MSG_RESULT(no)
2088)
2089AC_MSG_CHECKING(for symlink)
2090AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2091 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2092 AC_MSG_RESULT(yes),
2093 AC_MSG_RESULT(no)
2094)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002095AC_MSG_CHECKING(for fchdir)
2096AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2097 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2098 AC_MSG_RESULT(yes),
2099 AC_MSG_RESULT(no)
2100)
2101AC_MSG_CHECKING(for fsync)
2102AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
Skip Montanarod4fa8072003-09-25 14:49:15 +00002103 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002104 AC_MSG_RESULT(yes),
2105 AC_MSG_RESULT(no)
2106)
2107AC_MSG_CHECKING(for fdatasync)
2108AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2109 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2110 AC_MSG_RESULT(yes),
2111 AC_MSG_RESULT(no)
2112)
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002113
Martin v. Löwisd5843682002-11-21 20:41:28 +00002114# On some systems (eg. FreeBSD 5), we would find a definition of the
2115# functions ctermid_r, setgroups in the library, but no prototype
2116# (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2117# address to avoid compiler warnings and potential miscompilations
2118# because of the missing prototypes.
2119
2120AC_MSG_CHECKING(for ctermid_r)
2121AC_TRY_COMPILE([
2122#include "confdefs.h"
2123#include <stdio.h>
2124], void* p = ctermid_r,
2125 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2126 AC_MSG_RESULT(yes),
2127 AC_MSG_RESULT(no)
2128)
2129
Martin v. Löwisf26d63b2003-03-30 17:23:49 +00002130AC_MSG_CHECKING(for flock)
2131AC_TRY_COMPILE([
2132#include "confdefs.h"
2133#include <sys/file.h>
2134], void* p = flock,
2135 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2136 AC_MSG_RESULT(yes),
2137 AC_MSG_RESULT(no)
2138)
2139
2140AC_MSG_CHECKING(for getpagesize)
2141AC_TRY_COMPILE([
2142#include "confdefs.h"
2143#include <unistd.h>
2144], void* p = getpagesize,
2145 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2146 AC_MSG_RESULT(yes),
2147 AC_MSG_RESULT(no)
2148)
2149
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002150dnl check for true
2151AC_CHECK_PROGS(TRUE, true, /bin/true)
2152
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002153dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2154dnl On others, they are in the C library, so we to take no action
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002155AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002156 AC_CHECK_LIB(resolv, inet_aton)
2157)
2158
Martin v. Löwise9416172003-05-03 10:12:45 +00002159AC_MSG_CHECKING(for hstrerror)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002160AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002161#include "confdefs.h"
2162#include <netdb.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002163], void* p = hstrerror; hstrerror(0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002164 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2165 AC_MSG_RESULT(yes),
2166 AC_MSG_RESULT(no)
2167)
2168
2169AC_MSG_CHECKING(for inet_aton)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002170AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002171#include "confdefs.h"
2172#include <sys/socket.h>
2173#include <netinet/in.h>
2174#include <arpa/inet.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002175], void* p = inet_aton;inet_aton(0,0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002176 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2177 AC_MSG_RESULT(yes),
2178 AC_MSG_RESULT(no)
2179)
2180
2181AC_MSG_CHECKING(for inet_pton)
2182AC_TRY_COMPILE([
2183#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002184#include <sys/types.h>
Martin v. Löwise9416172003-05-03 10:12:45 +00002185#include <sys/socket.h>
2186#include <netinet/in.h>
2187#include <arpa/inet.h>
2188], void* p = inet_pton,
2189 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2190 AC_MSG_RESULT(yes),
2191 AC_MSG_RESULT(no)
2192)
2193
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002194# On some systems, setgroups is in unistd.h, on others, in grp.h
Martin v. Löwisd5843682002-11-21 20:41:28 +00002195AC_MSG_CHECKING(for setgroups)
2196AC_TRY_COMPILE([
2197#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002198#include <unistd.h>
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002199#ifdef HAVE_GRP_H
2200#include <grp.h>
2201#endif
Martin v. Löwisd5843682002-11-21 20:41:28 +00002202],
2203void* p = setgroups,
2204 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2205 AC_MSG_RESULT(yes),
2206 AC_MSG_RESULT(no)
2207)
2208
Fred Drake8cef4cf2000-06-28 16:40:38 +00002209# check for openpty and forkpty
2210
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002211AC_CHECK_FUNCS(openpty,, AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"]))
2212AC_CHECK_FUNCS(forkpty,, AC_CHECK_LIB(util,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"]))
Fred Drake8cef4cf2000-06-28 16:40:38 +00002213
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002214# check for long file support functions
2215AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2216
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002217AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002218AC_CHECK_FUNCS(getpgrp,
2219 AC_TRY_COMPILE([#include <unistd.h>],
2220 [getpgrp(0);],
2221 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2222 [Define if getpgrp() must be called as getpgrp(0).])
2223 )
2224)
Jack Jansen150753c2003-03-29 22:07:47 +00002225AC_CHECK_FUNCS(setpgrp,
2226 AC_TRY_COMPILE([#include <unistd.h>],
2227 [setpgrp(0,0);],
2228 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2229 [Define if setpgrp() must be called as setpgrp(0, 0).])
2230 )
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002231)
2232AC_CHECK_FUNCS(gettimeofday,
2233 AC_TRY_COMPILE([#include <sys/time.h>],
2234 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2235 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2236 [Define if gettimeofday() does not have second (timezone) argument
2237 This is the case on Motorola V4 (R40V4.2)])
2238 )
2239)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002240
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002241AC_MSG_CHECKING(for major, minor, and makedev)
Martin v. Löwise3271202002-11-07 07:42:30 +00002242AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +00002243#if defined(MAJOR_IN_MKDEV)
2244#include <sys/mkdev.h>
2245#elif defined(MAJOR_IN_SYSMACROS)
2246#include <sys/sysmacros.h>
2247#else
2248#include <sys/types.h>
2249#endif
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002250],[
2251 makedev(major(0),minor(0));
2252],[
2253 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2254 [Define to 1 if you have the device macros.])
2255 AC_MSG_RESULT(yes)
2256],[
2257 AC_MSG_RESULT(no)
2258])
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002259
2260# On OSF/1 V5.1, getaddrinfo is available, but a define
2261# for [no]getaddrinfo in netdb.h.
2262AC_MSG_CHECKING(for getaddrinfo)
2263AC_TRY_LINK([
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002264#include <sys/types.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002265#include <sys/socket.h>
2266#include <netdb.h>
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002267#include <stdio.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002268],[
2269getaddrinfo(NULL, NULL, NULL, NULL);
2270], [
2271AC_MSG_RESULT(yes)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002272AC_MSG_CHECKING(getaddrinfo bug)
2273AC_TRY_RUN([
2274#include <sys/types.h>
2275#include <netdb.h>
2276#include <string.h>
2277#include <sys/socket.h>
2278#include <netinet/in.h>
2279
2280main()
2281{
2282 int passive, gaierr, inet4 = 0, inet6 = 0;
2283 struct addrinfo hints, *ai, *aitop;
2284 char straddr[INET6_ADDRSTRLEN], strport[16];
2285
2286 for (passive = 0; passive <= 1; passive++) {
2287 memset(&hints, 0, sizeof(hints));
2288 hints.ai_family = AF_UNSPEC;
2289 hints.ai_flags = passive ? AI_PASSIVE : 0;
2290 hints.ai_socktype = SOCK_STREAM;
Hye-Shik Chang54f94392004-04-14 07:55:31 +00002291 hints.ai_protocol = IPPROTO_TCP;
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002292 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2293 (void)gai_strerror(gaierr);
2294 goto bad;
2295 }
2296 for (ai = aitop; ai; ai = ai->ai_next) {
2297 if (ai->ai_addr == NULL ||
2298 ai->ai_addrlen == 0 ||
2299 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2300 straddr, sizeof(straddr), strport, sizeof(strport),
2301 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2302 goto bad;
2303 }
2304 switch (ai->ai_family) {
2305 case AF_INET:
2306 if (strcmp(strport, "54321") != 0) {
2307 goto bad;
2308 }
2309 if (passive) {
2310 if (strcmp(straddr, "0.0.0.0") != 0) {
2311 goto bad;
2312 }
2313 } else {
2314 if (strcmp(straddr, "127.0.0.1") != 0) {
2315 goto bad;
2316 }
2317 }
2318 inet4++;
2319 break;
2320 case AF_INET6:
2321 if (strcmp(strport, "54321") != 0) {
2322 goto bad;
2323 }
2324 if (passive) {
2325 if (strcmp(straddr, "::") != 0) {
2326 goto bad;
2327 }
2328 } else {
2329 if (strcmp(straddr, "::1") != 0) {
2330 goto bad;
2331 }
2332 }
2333 inet6++;
2334 break;
2335 case AF_UNSPEC:
2336 goto bad;
2337 break;
2338 default:
2339 /* another family support? */
2340 break;
2341 }
2342 }
2343 }
2344
2345 if (!(inet4 == 0 || inet4 == 2))
2346 goto bad;
2347 if (!(inet6 == 0 || inet6 == 2))
2348 goto bad;
2349
2350 if (aitop)
2351 freeaddrinfo(aitop);
2352 exit(0);
2353
2354 bad:
2355 if (aitop)
2356 freeaddrinfo(aitop);
2357 exit(1);
2358}
2359],
2360AC_MSG_RESULT(good)
2361buggygetaddrinfo=no,
2362AC_MSG_RESULT(buggy)
2363buggygetaddrinfo=yes,
2364AC_MSG_RESULT(buggy)
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002365buggygetaddrinfo=yes)], [
2366AC_MSG_RESULT(no)
2367buggygetaddrinfo=yes
2368])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002369
2370if test "$buggygetaddrinfo" = "yes"; then
2371 if test "$ipv6" = "yes"; then
2372 echo 'Fatal: You must get working getaddrinfo() function.'
2373 echo ' or you can specify "--disable-ipv6"'.
2374 exit 1
2375 fi
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002376else
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002377 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002378fi
Thomas Woutersb0db85a2001-08-08 10:39:03 +00002379AC_CHECK_FUNCS(getnameinfo)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002380
Guido van Rossum627b2d71993-12-24 10:39:16 +00002381# checks for structures
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002382AC_HEADER_TIME
Guido van Rossum627b2d71993-12-24 10:39:16 +00002383AC_STRUCT_TM
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002384AC_STRUCT_TIMEZONE
Martin v. Löwis60a5d722002-10-16 20:28:25 +00002385AC_CHECK_MEMBERS([struct stat.st_rdev])
2386AC_CHECK_MEMBERS([struct stat.st_blksize])
Guido van Rossum98bf58f2001-10-18 20:34:25 +00002387AC_STRUCT_ST_BLOCKS
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002388
2389AC_MSG_CHECKING(for time.h that defines altzone)
2390AC_CACHE_VAL(ac_cv_header_time_altzone,
2391[AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2392 ac_cv_header_time_altzone=yes,
2393 ac_cv_header_time_altzone=no)])
2394AC_MSG_RESULT($ac_cv_header_time_altzone)
2395if test $ac_cv_header_time_altzone = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002396 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002397fi
2398
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002399was_it_defined=no
2400AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002401AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002402#include <sys/types.h>
2403#include <sys/select.h>
2404#include <sys/time.h>
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002405], [;], [
2406 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2407 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2408 (which you can't on SCO ODT 3.0).])
2409 was_it_defined=yes
2410])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002411AC_MSG_RESULT($was_it_defined)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002412
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002413AC_MSG_CHECKING(for addrinfo)
2414AC_CACHE_VAL(ac_cv_struct_addrinfo,
2415AC_TRY_COMPILE([
2416# include <netdb.h>],
2417 [struct addrinfo a],
2418 ac_cv_struct_addrinfo=yes,
2419 ac_cv_struct_addrinfo=no))
2420AC_MSG_RESULT($ac_cv_struct_addrinfo)
2421if test $ac_cv_struct_addrinfo = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002422 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002423fi
2424
2425AC_MSG_CHECKING(for sockaddr_storage)
2426AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2427AC_TRY_COMPILE([
2428# include <sys/types.h>
2429# include <sys/socket.h>],
2430 [struct sockaddr_storage s],
2431 ac_cv_struct_sockaddr_storage=yes,
2432 ac_cv_struct_sockaddr_storage=no))
2433AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2434if test $ac_cv_struct_sockaddr_storage = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002435 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002436fi
2437
Guido van Rossum627b2d71993-12-24 10:39:16 +00002438# checks for compiler characteristics
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002439
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002440AC_C_CHAR_UNSIGNED
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002441AC_C_CONST
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002442
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002443works=no
2444AC_MSG_CHECKING(for working volatile)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002445AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2446 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2447)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002448AC_MSG_RESULT($works)
Guido van Rossumdabb11b1994-10-11 15:04:27 +00002449
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002450works=no
2451AC_MSG_CHECKING(for working signed char)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002452AC_TRY_COMPILE([], [signed char c;], works=yes,
2453 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2454)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002455AC_MSG_RESULT($works)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002456
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002457have_prototypes=no
2458AC_MSG_CHECKING(for prototypes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002459AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2460 AC_DEFINE(HAVE_PROTOTYPES, 1,
2461 [Define if your compiler supports function prototype])
2462 have_prototypes=yes
2463])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002464AC_MSG_RESULT($have_prototypes)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002465
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002466works=no
2467AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002468AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002469#include <stdarg.h>
Guido van Rossum3f13e481996-08-30 20:58:11 +00002470int foo(int x, ...) {
2471 va_list va;
2472 va_start(va, x);
2473 va_arg(va, int);
2474 va_arg(va, char *);
2475 va_arg(va, double);
2476 return 0;
2477}
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002478], [return foo(10, "", 3.14);], [
2479 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2480 [Define if your compiler supports variable length function prototypes
2481 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2482 works=yes
2483])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002484AC_MSG_RESULT($works)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002485
Dave Cole331708b2004-08-09 04:51:41 +00002486# check for socketpair
2487AC_MSG_CHECKING(for socketpair)
2488AC_TRY_COMPILE([
2489#include <sys/types.h>
2490#include <sys/socket.h>
2491], void *x=socketpair,
2492 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2493 AC_MSG_RESULT(yes),
2494 AC_MSG_RESULT(no)
2495)
2496
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002497# check if sockaddr has sa_len member
2498AC_MSG_CHECKING(if sockaddr has sa_len member)
2499AC_TRY_COMPILE([#include <sys/types.h>
2500#include <sys/socket.h>],
2501[struct sockaddr x;
2502x.sa_len = 0;],
2503 AC_MSG_RESULT(yes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002504 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002505 AC_MSG_RESULT(no))
2506
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002507va_list_is_array=no
2508AC_MSG_CHECKING(whether va_list is an array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002509AC_TRY_COMPILE([
2510#ifdef HAVE_STDARG_PROTOTYPES
2511#include <stdarg.h>
2512#else
2513#include <varargs.h>
2514#endif
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002515], [va_list list1, list2; list1 = list2;], , [
2516 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2517 va_list_is_array=yes
2518])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002519AC_MSG_RESULT($va_list_is_array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002520
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002521# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
Martin v. Löwis11437992002-04-12 09:54:03 +00002522AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2523 [Define this if you have some version of gethostbyname_r()])
2524
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002525AC_CHECK_FUNC(gethostbyname_r, [
2526 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2527 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2528 OLD_CFLAGS=$CFLAGS
2529 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2530 AC_TRY_COMPILE([
2531# include <netdb.h>
2532 ], [
2533 char *name;
2534 struct hostent *he, *res;
2535 char buffer[2048];
2536 int buflen = 2048;
2537 int h_errnop;
2538
2539 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2540 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002541 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002542 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2543 [Define this if you have the 6-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002544 AC_MSG_RESULT(yes)
2545 ], [
2546 AC_MSG_RESULT(no)
2547 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2548 AC_TRY_COMPILE([
2549# include <netdb.h>
2550 ], [
2551 char *name;
2552 struct hostent *he;
2553 char buffer[2048];
2554 int buflen = 2048;
2555 int h_errnop;
2556
2557 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2558 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002559 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002560 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2561 [Define this if you have the 5-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002562 AC_MSG_RESULT(yes)
2563 ], [
2564 AC_MSG_RESULT(no)
2565 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2566 AC_TRY_COMPILE([
2567# include <netdb.h>
2568 ], [
2569 char *name;
2570 struct hostent *he;
2571 struct hostent_data data;
2572
2573 (void) gethostbyname_r(name, he, &data);
2574 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002575 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002576 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2577 [Define this if you have the 3-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002578 AC_MSG_RESULT(yes)
2579 ], [
2580 AC_MSG_RESULT(no)
2581 ])
2582 ])
2583 ])
2584 CFLAGS=$OLD_CFLAGS
2585], [
Thomas Wouters3a584202000-08-05 23:28:51 +00002586 AC_CHECK_FUNCS(gethostbyname)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002587])
2588AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2589AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2590AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002591AC_SUBST(HAVE_GETHOSTBYNAME_R)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002592AC_SUBST(HAVE_GETHOSTBYNAME)
2593
Guido van Rossum627b2d71993-12-24 10:39:16 +00002594# checks for system services
2595# (none yet)
2596
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002597# Linux requires this for correct f.p. operations
Jeremy Hyltonbe28f5b2000-07-27 21:03:04 +00002598AC_CHECK_FUNC(__fpu_control,
2599 [],
2600 [AC_CHECK_LIB(ieee, __fpu_control)
2601])
Guido van Rossum627b2d71993-12-24 10:39:16 +00002602
Guido van Rossum93274221997-05-09 02:42:00 +00002603# Check for --with-fpectl
Guido van Rossum93274221997-05-09 02:42:00 +00002604AC_MSG_CHECKING(for --with-fpectl)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00002605AC_ARG_WITH(fpectl,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002606 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2607[
Guido van Rossum93274221997-05-09 02:42:00 +00002608if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002609then
2610 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2611 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2612 AC_MSG_RESULT(yes)
Guido van Rossum93274221997-05-09 02:42:00 +00002613else AC_MSG_RESULT(no)
Guido van Rossumef2255b2000-03-10 22:30:29 +00002614fi],
2615[AC_MSG_RESULT(no)])
Guido van Rossum93274221997-05-09 02:42:00 +00002616
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002617# check for --with-libm=...
2618AC_SUBST(LIBM)
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002619case $ac_sys_system in
Guido van Rossum3dc0a512000-10-05 18:00:06 +00002620Darwin) ;;
Guido van Rossumec95c7b1998-08-04 17:59:56 +00002621BeOS) ;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002622*) LIBM=-lm
2623esac
Guido van Rossum93274221997-05-09 02:42:00 +00002624AC_MSG_CHECKING(for --with-libm=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002625AC_ARG_WITH(libm,
2626 AC_HELP_STRING(--with-libm=STRING, math library),
2627[
Guido van Rossum93274221997-05-09 02:42:00 +00002628if test "$withval" = no
2629then LIBM=
2630 AC_MSG_RESULT(force LIBM empty)
2631elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002632then LIBM=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002633 AC_MSG_RESULT(set LIBM="$withval")
2634else AC_MSG_ERROR([proper usage is --with-libm=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002635fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002636[AC_MSG_RESULT(default LIBM="$LIBM")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002637
2638# check for --with-libc=...
2639AC_SUBST(LIBC)
Guido van Rossum93274221997-05-09 02:42:00 +00002640AC_MSG_CHECKING(for --with-libc=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002641AC_ARG_WITH(libc,
2642 AC_HELP_STRING(--with-libc=STRING, C library),
2643[
Guido van Rossum93274221997-05-09 02:42:00 +00002644if test "$withval" = no
2645then LIBC=
2646 AC_MSG_RESULT(force LIBC empty)
2647elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002648then LIBC=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002649 AC_MSG_RESULT(set LIBC="$withval")
2650else AC_MSG_ERROR([proper usage is --with-libc=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002651fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002652[AC_MSG_RESULT(default LIBC="$LIBC")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002653
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002654# check for hypot() in math library
2655LIBS_SAVE=$LIBS
2656LIBS="$LIBS $LIBM"
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002657AC_REPLACE_FUNCS(hypot)
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002658LIBS=$LIBS_SAVE
2659
Guido van Rossumef2255b2000-03-10 22:30:29 +00002660# check for wchar.h
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002661AC_CHECK_HEADER(wchar.h, [
2662 AC_DEFINE(HAVE_WCHAR_H, 1,
2663 [Define if the compiler provides a wchar.h header file.])
2664 wchar_h="yes"
2665],
Guido van Rossumef2255b2000-03-10 22:30:29 +00002666wchar_h="no"
2667)
2668
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002669# determine wchar_t size
2670if test "$wchar_h" = yes
2671then
Guido van Rossum67b26592001-10-20 14:21:45 +00002672 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002673fi
2674
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002675AC_MSG_CHECKING(for UCS-4 tcl)
2676have_ucs4_tcl=no
2677AC_TRY_COMPILE([
2678#include <tcl.h>
2679#if TCL_UTF_MAX != 6
2680# error "NOT UCS4_TCL"
2681#endif], [], [
2682 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2683 have_ucs4_tcl=yes
2684])
2685AC_MSG_RESULT($have_ucs4_tcl)
2686
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002687# check whether wchar_t is signed or not
2688if test "$wchar_h" = yes
2689then
2690 # check whether wchar_t is signed or not
2691 AC_MSG_CHECKING(whether wchar_t is signed)
2692 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2693 AC_TRY_RUN([
2694 #include <wchar.h>
2695 int main()
2696 {
2697 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 1 : 0);
2698 }
2699 ],
2700 ac_cv_wchar_t_signed=yes,
2701 ac_cv_wchar_t_signed=no,
2702 ac_cv_wchar_t_signed=yes)])
2703 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2704fi
2705
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002706AC_MSG_CHECKING(what type to use for unicode)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002707dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002708AC_ARG_ENABLE(unicode,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002709 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2710 [],
2711 [enable_unicode=yes])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002712
2713if test $enable_unicode = yes
2714then
Martin v. Löwisfd917792001-06-27 20:22:04 +00002715 # Without any arguments, Py_UNICODE defaults to two-byte mode
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002716 case "$have_ucs4_tcl" in
2717 yes) enable_unicode="ucs4"
2718 ;;
2719 *) enable_unicode="ucs2"
2720 ;;
2721 esac
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002722fi
2723
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002724AH_TEMPLATE(Py_UNICODE_SIZE,
2725 [Define as the size of the unicode type.])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002726case "$enable_unicode" in
2727ucs2) unicode_size="2"
2728 AC_DEFINE(Py_UNICODE_SIZE,2)
2729 ;;
2730ucs4) unicode_size="4"
2731 AC_DEFINE(Py_UNICODE_SIZE,4)
2732 ;;
2733esac
2734
Martin v. Löwis11437992002-04-12 09:54:03 +00002735AH_TEMPLATE(PY_UNICODE_TYPE,
2736 [Define as the integral type used for Unicode representation.])
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002737
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002738AC_SUBST(UNICODE_OBJS)
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002739if test "$enable_unicode" = "no"
2740then
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002741 UNICODE_OBJS=""
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002742 AC_MSG_RESULT(not used)
2743else
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002744 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002745 AC_DEFINE(Py_USING_UNICODE, 1,
2746 [Define if you want to have a Unicode type.])
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002747
2748 # wchar_t is only usable if it maps to an unsigned type
2749 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2750 -a "$ac_cv_wchar_t_signed" == "no"
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002751 then
2752 PY_UNICODE_TYPE="wchar_t"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002753 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2754 [Define if you have a useable wchar_t type defined in wchar.h; useable
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002755 means wchar_t must be an unsigned type with at least 16 bits. (see
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002756 Include/unicodeobject.h).])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002757 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2758 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2759 then
2760 PY_UNICODE_TYPE="unsigned short"
2761 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2762 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2763 then
2764 PY_UNICODE_TYPE="unsigned long"
2765 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2766 else
2767 PY_UNICODE_TYPE="no type found"
2768 fi
2769 AC_MSG_RESULT($PY_UNICODE_TYPE)
2770fi
Guido van Rossumef2255b2000-03-10 22:30:29 +00002771
2772# check for endianness
2773AC_C_BIGENDIAN
2774
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002775# Check whether right shifting a negative integer extends the sign bit
2776# or fills with zeros (like the Cray J90, according to Tim Peters).
2777AC_MSG_CHECKING(whether right shift extends the sign bit)
Vladimir Marangozova6180282000-07-12 05:05:06 +00002778AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002779AC_TRY_RUN([
2780int main()
2781{
Vladimir Marangozova6180282000-07-12 05:05:06 +00002782 exit(((-1)>>3 == -1) ? 0 : 1);
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002783}
Guido van Rossum3065c942001-09-17 04:03:14 +00002784],
2785ac_cv_rshift_extends_sign=yes,
2786ac_cv_rshift_extends_sign=no,
2787ac_cv_rshift_extends_sign=yes)])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002788AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2789if test "$ac_cv_rshift_extends_sign" = no
2790then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002791 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2792 [Define if i>>j for signed int i does not extend the sign bit
2793 when i < 0])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002794fi
2795
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002796# check for getc_unlocked and related locking functions
2797AC_MSG_CHECKING(for getc_unlocked() and friends)
2798AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2799AC_TRY_LINK([#include <stdio.h>],[
2800 FILE *f = fopen("/dev/null", "r");
2801 flockfile(f);
2802 getc_unlocked(f);
2803 funlockfile(f);
2804], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2805AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2806if test "$ac_cv_have_getc_unlocked" = yes
2807then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002808 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2809 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002810fi
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002811
Michael W. Hudson30ea2f22004-07-07 17:44:12 +00002812# check for readline 2.1
2813AC_CHECK_LIB(readline, rl_callback_handler_install,
2814 AC_DEFINE(HAVE_RL_CALLBACK, 1,
2815 [Define if you have readline 2.1]), , -ltermcap)
2816
Guido van Rossumfaf5e4d2002-12-30 16:25:41 +00002817# check for readline 2.2
2818AC_TRY_CPP([#include <readline/readline.h>],
2819have_readline=yes, have_readline=no)
2820if test $have_readline = yes
2821then
2822 AC_EGREP_HEADER([extern int rl_completion_append_character;],
2823 [readline/readline.h],
2824 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
2825 [Define if you have readline 2.2]), )
2826fi
2827
Martin v. Löwis0daad592001-09-30 21:09:59 +00002828# check for readline 4.0
2829AC_CHECK_LIB(readline, rl_pre_input_hook,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002830 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
2831 [Define if you have readline 4.0]), , -ltermcap)
Martin v. Löwis0daad592001-09-30 21:09:59 +00002832
Guido van Rossum353ae582001-07-10 16:45:32 +00002833# check for readline 4.2
2834AC_CHECK_LIB(readline, rl_completion_matches,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002835 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
2836 [Define if you have readline 4.2]), , -ltermcap)
Guido van Rossum353ae582001-07-10 16:45:32 +00002837
Michael W. Hudson30ea2f22004-07-07 17:44:12 +00002838# also in readline 4.2
2839AC_TRY_CPP([#include <readline/readline.h>],
2840have_readline=yes, have_readline=no)
2841if test $have_readline = yes
2842then
2843 AC_EGREP_HEADER([extern int rl_catch_signals;],
2844 [readline/readline.h],
2845 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
2846 [Define if you can turn off readline's signal handling.]), )
2847fi
2848
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002849AC_MSG_CHECKING(for broken nice())
2850AC_CACHE_VAL(ac_cv_broken_nice, [
2851AC_TRY_RUN([
2852int main()
2853{
2854 int val1 = nice(1);
2855 if (val1 != -1 && val1 == nice(2))
2856 exit(0);
2857 exit(1);
2858}
Guido van Rossum3065c942001-09-17 04:03:14 +00002859],
2860ac_cv_broken_nice=yes,
2861ac_cv_broken_nice=no,
2862ac_cv_broken_nice=no)])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002863AC_MSG_RESULT($ac_cv_broken_nice)
2864if test "$ac_cv_broken_nice" = yes
2865then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002866 AC_DEFINE(HAVE_BROKEN_NICE, 1,
2867 [Define if nice() returns success/failure instead of the new priority.])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002868fi
2869
Nicholas Bastine62c5c82004-03-21 23:45:42 +00002870AC_MSG_CHECKING(for broken poll())
2871AC_TRY_RUN([
2872#include <poll.h>
2873
2874int main (void)
2875 {
2876 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
2877
2878 close (42);
2879
2880 int poll_test = poll (&poll_struct, 1, 0);
2881
2882 if (poll_test < 0)
2883 {
2884 exit(0);
2885 }
2886 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
2887 {
2888 exit(0);
2889 }
2890 else
2891 {
2892 exit(1);
2893 }
2894 }
2895],
2896ac_cv_broken_poll=yes,
2897ac_cv_broken_poll=no,
2898ac_cv_broken_poll=no)
2899AC_MSG_RESULT($ac_cv_broken_poll)
2900if test "$ac_cv_broken_poll" = yes
2901then
2902 AC_DEFINE(HAVE_BROKEN_POLL, 1,
2903 [Define if poll() sets errno on invalid file descriptors.])
2904fi
2905
2906
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002907# tzset(3) exists and works like we expect it to
2908AC_MSG_CHECKING(for working tzset())
2909AC_CACHE_VAL(ac_cv_working_tzset, [
2910AC_TRY_RUN([
2911#include <stdlib.h>
2912#include <time.h>
Brett Cannon18367812003-09-19 00:59:16 +00002913#include <string.h>
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002914int main()
2915{
Brett Cannon18367812003-09-19 00:59:16 +00002916 /* Note that we need to ensure that not only does tzset(3)
2917 do 'something' with localtime, but it works as documented
2918 in the library reference and as expected by the test suite.
2919
2920 Red Hat 6.2 doesn't understand the southern hemisphere
2921 after New Year's Day; it thinks swaps on that day.
2922 */
2923
2924 time_t groundhogday = 1044144000; /* GMT-based; well, it's a colony */
2925 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
2926
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002927 putenv("TZ=UTC+0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002928 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002929 if (localtime(&groundhogday)->tm_hour != 0)
2930 exit(1);
2931
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002932 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002933 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002934 if (localtime(&groundhogday)->tm_hour != 19)
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002935 exit(1);
Brett Cannon18367812003-09-19 00:59:16 +00002936
2937 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
2938 tzset();
2939 if (localtime(&groundhogday)->tm_hour != 11)
2940 exit(1);
2941 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
2942 exit(1);
2943 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
2944 exit(1);
2945
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002946 exit(0);
2947}
2948],
2949ac_cv_working_tzset=yes,
2950ac_cv_working_tzset=no,
2951ac_cv_working_tzset=no)])
2952AC_MSG_RESULT($ac_cv_working_tzset)
2953if test "$ac_cv_working_tzset" = yes
2954then
2955 AC_DEFINE(HAVE_WORKING_TZSET, 1,
2956 [Define if tzset() actually switches the local timezone in a meaningful way.])
2957fi
2958
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002959# Look for subsecond timestamps in struct stat
2960AC_MSG_CHECKING(for tv_nsec in struct stat)
2961AC_CACHE_VAL(ac_cv_stat_tv_nsec,
2962AC_TRY_COMPILE([#include <sys/stat.h>], [
2963struct stat st;
2964st.st_mtim.tv_nsec = 1;
2965],
Martin v. Löwisa32c9942002-09-09 16:17:47 +00002966ac_cv_stat_tv_nsec=yes,
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002967ac_cv_stat_tv_nsec=no,
2968ac_cv_stat_tv_nsec=no))
2969AC_MSG_RESULT($ac_cv_stat_tv_nsec)
2970if test "$ac_cv_stat_tv_nsec" = yes
2971then
2972 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
2973 [Define if you have struct stat.st_mtim.tv_nsec])
2974fi
2975
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002976# On HP/UX 11.0, mvwdelch is a block with a return statement
2977AC_MSG_CHECKING(whether mvwdelch is an expression)
2978AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
2979AC_TRY_COMPILE([#include <curses.h>], [
2980 int rtn;
2981 rtn = mvwdelch(0,0,0);
2982], ac_cv_mvwdelch_is_expression=yes,
2983 ac_cv_mvwdelch_is_expression=no,
2984 ac_cv_mvwdelch_is_expression=yes))
2985AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
2986
2987if test "$ac_cv_mvwdelch_is_expression" = yes
2988then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002989 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
2990 [Define if mvwdelch in curses.h is an expression.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002991fi
2992
2993AC_MSG_CHECKING(whether WINDOW has _flags)
2994AC_CACHE_VAL(ac_cv_window_has_flags,
2995AC_TRY_COMPILE([#include <curses.h>], [
2996 WINDOW *w;
2997 w->_flags = 0;
2998], ac_cv_window_has_flags=yes,
2999 ac_cv_window_has_flags=no,
3000 ac_cv_window_has_flags=no))
3001AC_MSG_RESULT($ac_cv_window_has_flags)
3002
3003
3004if test "$ac_cv_window_has_flags" = yes
3005then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00003006 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3007 [Define if WINDOW in curses.h offers a field _flags.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00003008fi
3009
Martin v. Löwis24a880b2002-12-31 12:55:15 +00003010AC_MSG_CHECKING(for /dev/ptmx)
3011
3012if test -e /dev/ptmx
3013then
3014 AC_MSG_RESULT(yes)
3015 AC_DEFINE(HAVE_DEV_PTMX, 1,
3016 [Define if we have /dev/ptmx.])
3017else
3018 AC_MSG_RESULT(no)
3019fi
3020
Neal Norwitz865400f2003-03-21 01:42:58 +00003021AC_MSG_CHECKING(for /dev/ptc)
3022
3023if test -e /dev/ptc
3024then
3025 AC_MSG_RESULT(yes)
3026 AC_DEFINE(HAVE_DEV_PTC, 1,
3027 [Define if we have /dev/ptc.])
3028else
3029 AC_MSG_RESULT(no)
3030fi
3031
Martin v. Löwis01c04012002-11-11 14:58:44 +00003032AC_CHECK_TYPE(socklen_t,,
3033 AC_DEFINE(socklen_t,int,
3034 Define to `int' if <sys/socket.h> does not define.),[
3035#ifdef HAVE_SYS_TYPES_H
3036#include <sys/types.h>
3037#endif
Guido van Rossum95713eb2000-05-18 20:53:31 +00003038#ifdef HAVE_SYS_SOCKET_H
3039#include <sys/socket.h>
3040#endif
Martin v. Löwis01c04012002-11-11 14:58:44 +00003041])
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003042
Martin v. Löwis06f15bb2001-12-02 13:02:32 +00003043AC_SUBST(THREADHEADERS)
3044
3045for h in `(cd $srcdir;echo Python/thread_*.h)`
3046do
3047 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3048done
3049
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003050AC_SUBST(SRCDIRS)
Jack Jansen0b06be72002-06-21 14:48:38 +00003051SRCDIRS="Parser Grammar Objects Python Modules Mac Mac/Python"
Andrew M. Kuchling8abedde2001-01-26 22:55:24 +00003052AC_MSG_CHECKING(for build directories)
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003053for dir in $SRCDIRS; do
3054 if test ! -d $dir; then
3055 mkdir $dir
Fred Drake884d3ba2000-11-02 17:52:56 +00003056 fi
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003057done
3058AC_MSG_RESULT(done)
Fred Drake036144d2000-10-26 17:09:35 +00003059
Guido van Rossum627b2d71993-12-24 10:39:16 +00003060# generate output files
Martin v. Löwis88afe662002-10-26 13:47:44 +00003061AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3062AC_OUTPUT
Neil Schemenauer61c51152001-01-26 16:18:16 +00003063
3064echo "creating Setup"
3065if test ! -f Modules/Setup
3066then
3067 cp $srcdir/Modules/Setup.dist Modules/Setup
3068fi
3069
3070echo "creating Setup.local"
3071if test ! -f Modules/Setup.local
3072then
3073 echo "# Edit this file for local setup changes" >Modules/Setup.local
3074fi
3075
3076echo "creating Makefile"
3077$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3078 -s Modules Modules/Setup.config \
Neil Schemenauerf8b71c52001-04-21 17:41:16 +00003079 Modules/Setup.local Modules/Setup
Neil Schemenauer66252162001-02-19 04:47:42 +00003080mv config.c Modules