blob: 1e02983a4ccacd170a4bdd7f1edc4e0f90ac5947 [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;;
Trent Mickaf16e8c2004-08-25 23:55:59 +0000164 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
165 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
166 # or has another value. By not (re)defining it, the defaults come in place.
Martin v. Löwisc19c5a62003-11-18 20:00:44 +0000167 AIX/4)
168 define_xopen_source=no;;
Trent Mickaf16e8c2004-08-25 23:55:59 +0000169 AIX/5)
170 if test `uname -r` -eq 1; then
171 define_xopen_source=no
172 fi
173 ;;
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000174esac
175
176if test $define_xopen_source = yes
177then
Skip Montanarof0d5f792004-08-15 14:08:23 +0000178 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
179 # defined precisely as g++ defines it
180 case $ac_sys_system/$ac_sys_release in
181 SunOS/5.8|SunOS/5.9)
182 AC_DEFINE(_XOPEN_SOURCE, 500,
183 Define to the level of X/Open that your system supports)
184 ;;
185 *)
186 AC_DEFINE(_XOPEN_SOURCE, 600,
187 Define to the level of X/Open that your system supports)
188 ;;
189 esac
Martin v. Löwis678fc1e2002-11-12 06:04:39 +0000190
191 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
192 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
193 # several APIs are not declared. Since this is also needed in some
194 # cases for HP-UX, we define it globally.
195
196 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Define to activate Unix95-and-earlier features)
197 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
198
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000199fi
200
Guido van Rossum91922671997-10-09 20:24:13 +0000201#
202# SGI compilers allow the specification of the both the ABI and the
203# ISA on the command line. Depending on the values of these switches,
204# different and often incompatable code will be generated.
205#
206# The SGI_ABI variable can be used to modify the CC and LDFLAGS and
207# thus supply support for various ABI/ISA combinations. The MACHDEP
208# variable is also adjusted.
209#
210AC_SUBST(SGI_ABI)
211if test ! -z "$SGI_ABI"
212then
213 CC="cc $SGI_ABI"
214 LDFLAGS="$SGI_ABI $LDFLAGS"
215 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
216fi
Guido van Rossumb418f891996-07-30 18:06:02 +0000217AC_MSG_RESULT($MACHDEP)
218
Jack Jansen83f898c2002-12-30 22:23:40 +0000219# And add extra plat-mac for darwin
220AC_SUBST(EXTRAPLATDIR)
Jack Jansen7b59b422003-03-17 15:44:10 +0000221AC_SUBST(EXTRAMACHDEPPATH)
Jack Jansen83f898c2002-12-30 22:23:40 +0000222AC_MSG_CHECKING(EXTRAPLATDIR)
223if test -z "$EXTRAPLATDIR"
224then
225 case $MACHDEP in
Jack Jansen7b59b422003-03-17 15:44:10 +0000226 darwin)
227 EXTRAPLATDIR="\$(PLATMACDIRS)"
228 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
229 ;;
230 *)
231 EXTRAPLATDIR=""
232 EXTRAMACHDEPPATH=""
233 ;;
Jack Jansen83f898c2002-12-30 22:23:40 +0000234 esac
235fi
236AC_MSG_RESULT($EXTRAPLATDIR)
237
Jack Jansen6b08a402004-06-03 12:41:45 +0000238# Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
239# it may influence the way we can build extensions, so distutils
240# needs to check it
241AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
242CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
243
Guido van Rossum627b2d71993-12-24 10:39:16 +0000244# checks for alternative programs
Skip Montanarodecc6a42003-01-01 20:07:49 +0000245
246# compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
247# for debug/optimization stuff. BASECFLAGS is for flags that are required
248# just to get things to compile and link. Users are free to override OPT
249# when running configure or make. The build should not break if they do.
250# BASECFLAGS should generally not be messed with, however.
251
252# XXX shouldn't some/most/all of this code be merged with the stuff later
253# on that fiddles with OPT and BASECFLAGS?
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000254AC_MSG_CHECKING(for --without-gcc)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000255AC_ARG_WITH(gcc,
256 AC_HELP_STRING(--without-gcc,never use gcc),
257[
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000258 case $withval in
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000259 no) CC=cc
260 without_gcc=yes;;
261 yes) CC=gcc
262 without_gcc=no;;
263 *) CC=$withval
264 without_gcc=$withval;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000265 esac], [
Guido van Rossumb418f891996-07-30 18:06:02 +0000266 case $ac_sys_system in
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000267 AIX*) CC=cc_r
268 without_gcc=;;
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000269 BeOS*)
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000270 case $BE_HOST_CPU in
271 ppc)
Fred Drake5790be12000-10-09 17:06:13 +0000272 CC=mwcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000273 without_gcc=yes
Skip Montanarodecc6a42003-01-01 20:07:49 +0000274 BASECFLAGS="$BASECFLAGS -export pragma"
275 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000276 LDFLAGS="$LDFLAGS -nodup"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000277 ;;
278 x86)
Fred Drake5790be12000-10-09 17:06:13 +0000279 CC=gcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000280 without_gcc=no
Skip Montanarodecc6a42003-01-01 20:07:49 +0000281 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000282 ;;
283 *)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000284 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000285 ;;
286 esac
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000287 AR="\$(srcdir)/Modules/ar_beos"
288 RANLIB=:
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000289 ;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000290 Monterey*)
291 RANLIB=:
Martin v. Löwis130fb172001-07-19 11:00:41 +0000292 without_gcc=;;
293 *) without_gcc=no;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000294 esac])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000295AC_MSG_RESULT($without_gcc)
296
Guido van Rossum27552902001-01-23 01:52:26 +0000297AC_SUBST(CXX)
Guido van Rossum95012191999-12-16 17:50:52 +0000298AC_SUBST(MAINOBJ)
Fred Drakea1a84e72001-03-06 05:52:16 +0000299MAINOBJ=python.o
Guido van Rossum95012191999-12-16 17:50:52 +0000300AC_MSG_CHECKING(for --with-cxx=<compiler>)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000301AC_ARG_WITH(cxx,
302 AC_HELP_STRING(--with-cxx=<compiler>, enable C++ support),
303[
Martin v. Löwis537970f2000-12-13 17:37:02 +0000304 check_cxx=no
Guido van Rossum95012191999-12-16 17:50:52 +0000305 case $withval in
306 no) CXX=
307 with_cxx=no;;
308 *) CXX=$withval
Fred Drakea1a84e72001-03-06 05:52:16 +0000309 MAINOBJ=ccpython.o
Guido van Rossum95012191999-12-16 17:50:52 +0000310 with_cxx=$withval;;
311 esac], [
312 with_cxx=no
Martin v. Löwis537970f2000-12-13 17:37:02 +0000313 check_cxx=yes
Guido van Rossum95012191999-12-16 17:50:52 +0000314])
315AC_MSG_RESULT($with_cxx)
Martin v. Löwis537970f2000-12-13 17:37:02 +0000316
Michael W. Hudson54241132001-12-07 15:38:26 +0000317if test "$with_cxx" = "yes"
318then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000319 AC_MSG_ERROR([must supply a compiler when using --with-cxx])
Michael W. Hudson54241132001-12-07 15:38:26 +0000320fi
321
Martin v. Löwis537970f2000-12-13 17:37:02 +0000322dnl The following fragment works similar to AC_PROG_CXX.
323dnl It does not fail if CXX is not found, and it is not executed if
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000324dnl --without-cxx was given.
Martin v. Löwis537970f2000-12-13 17:37:02 +0000325dnl Finally, it does not test whether CXX is g++.
326
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000327dnl Autoconf 2.5x does not have AC_PROG_CXX_WORKS anymore
328ifdef([AC_PROG_CXX_WORKS],[],
329 [AC_DEFUN([AC_PROG_CXX_WORKS],
330 [AC_LANG_PUSH(C++)dnl
331 _AC_COMPILER_EXEEXT
332 AC_LANG_POP()
333 ]
334)])
335
Martin v. Löwis537970f2000-12-13 17:37:02 +0000336if test "$check_cxx" = "yes"
337then
338 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
339 if test "$CXX" = "notfound"
340 then
341 CXX=
342 else
343 AC_PROG_CXX_WORKS
344 fi
345fi
346
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000347# If the user switches compilers, we can't believe the cache
348if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
349then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000350 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
351(it is also a good idea to do 'make clean' before compiling)])
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000352fi
353
Guido van Rossum627b2d71993-12-24 10:39:16 +0000354AC_PROG_CC
Martin v. Löwis1d5ecb72001-08-09 10:29:44 +0000355
356# checks for UNIX variants that set C preprocessor variables
357AC_AIX
Martin v. Löwis1d5ecb72001-08-09 10:29:44 +0000358
Martin v. Löwis779ffc02002-12-02 22:17:01 +0000359# Check for unsupported systems
360case $ac_sys_system/$ac_sys_release in
Skip Montanaroce59c042004-01-17 14:19:44 +0000361Linux*/1*)
Martin v. Löwis779ffc02002-12-02 22:17:01 +0000362 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
363 echo See README for details.
364 exit 1;;
365esac
366
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000367AC_EXEEXT
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000368AC_MSG_CHECKING(for --with-suffix)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000369AC_ARG_WITH(suffix,
370 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
371[
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000372 case $withval in
373 no) EXEEXT=;;
374 yes) EXEEXT=.exe;;
375 *) EXEEXT=$withval;;
376 esac])
377AC_MSG_RESULT($EXEEXT)
Jack Jansen1999ef42001-12-06 21:47:20 +0000378
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000379# Test whether we're running on a non-case-sensitive system, in which
380# case we give a warning if no ext is given
Jack Jansen1999ef42001-12-06 21:47:20 +0000381AC_SUBST(BUILDEXEEXT)
382AC_MSG_CHECKING(for case-insensitive build directory)
Jack Jansen3c2c4332002-11-06 13:33:32 +0000383if test ! -d CaseSensitiveTestDir; then
384mkdir CaseSensitiveTestDir
385fi
386
387if test -d casesensitivetestdir
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000388then
Jack Jansen1999ef42001-12-06 21:47:20 +0000389 AC_MSG_RESULT(yes)
390 BUILDEXEEXT=.exe
391else
392 AC_MSG_RESULT(no)
Jack Jansendd19cf82001-12-06 22:36:17 +0000393 BUILDEXEEXT=$EXEEXT
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000394fi
Jack Jansen3c2c4332002-11-06 13:33:32 +0000395rmdir CaseSensitiveTestDir
Guido van Rossumfb842551997-08-06 23:42:07 +0000396
Guido van Rossumdd997f71998-10-07 19:58:26 +0000397case $MACHDEP in
398bsdos*)
399 case $CC in
400 gcc) CC="$CC -D_HAVE_BSDI";;
401 esac;;
402esac
403
Guido van Rossum84561611997-08-21 00:08:11 +0000404case $ac_sys_system in
405hp*|HP*)
406 case $CC in
Guido van Rossumcd5ff9f2000-09-22 16:15:54 +0000407 cc|*/cc) CC="$CC -Ae";;
Guido van Rossum84561611997-08-21 00:08:11 +0000408 esac;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000409Monterey*)
410 case $CC in
411 cc) CC="$CC -Wl,-Bexport";;
412 esac;;
Martin v. Löwise8964d42001-03-06 12:09:07 +0000413SunOS*)
414 # Some functions have a prototype only with that define, e.g. confstr
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000415 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
Martin v. Löwise8964d42001-03-06 12:09:07 +0000416 ;;
Guido van Rossum84561611997-08-21 00:08:11 +0000417esac
418
Martin v. Löwise8964d42001-03-06 12:09:07 +0000419
Neil Schemenauer61c51152001-01-26 16:18:16 +0000420AC_SUBST(LIBRARY)
421AC_MSG_CHECKING(LIBRARY)
422if test -z "$LIBRARY"
423then
424 LIBRARY='libpython$(VERSION).a'
425fi
426AC_MSG_RESULT($LIBRARY)
427
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000428# LDLIBRARY is the name of the library to link against (as opposed to the
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000429# name of the library into which to insert object files). BLDLIBRARY is also
430# the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
431# is blank as the main program is not linked directly against LDLIBRARY.
432# LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
433# systems without shared libraries, LDLIBRARY is the same as LIBRARY
434# (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
435# DLLLIBRARY is the shared (i.e., DLL) library.
436#
Martin v. Löwis1142de32002-03-29 16:28:31 +0000437# RUNSHARED is used to run shared python without installed libraries
438#
439# INSTSONAME is the name of the shared library that will be use to install
440# on the system - some systems like version suffix, others don't
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000441AC_SUBST(LDLIBRARY)
Guido van Rossum27552902001-01-23 01:52:26 +0000442AC_SUBST(DLLLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000443AC_SUBST(BLDLIBRARY)
444AC_SUBST(LDLIBRARYDIR)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000445AC_SUBST(INSTSONAME)
446AC_SUBST(RUNSHARED)
Neil Schemenauer61c51152001-01-26 16:18:16 +0000447LDLIBRARY="$LIBRARY"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000448BLDLIBRARY='$(LDLIBRARY)'
Martin v. Löwis09bdf722002-05-08 08:51:29 +0000449INSTSONAME='$(LDLIBRARY)'
Guido van Rossum27552902001-01-23 01:52:26 +0000450DLLLIBRARY=''
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000451LDLIBRARYDIR=''
Martin v. Löwis1142de32002-03-29 16:28:31 +0000452RUNSHARED=''
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000453
Guido van Rossumfb842551997-08-06 23:42:07 +0000454# LINKCC is the command that links the python executable -- default is $(CC).
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000455# If CXX is set, and if it is needed to link a main function that was
456# compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
457# python might then depend on the C++ runtime
Fred Drake5790be12000-10-09 17:06:13 +0000458# This is altered for AIX in order to build the export list before
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000459# linking.
Guido van Rossumfb842551997-08-06 23:42:07 +0000460AC_SUBST(LINKCC)
461AC_MSG_CHECKING(LINKCC)
462if test -z "$LINKCC"
463then
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000464 if test -z "$CXX"; then
465 LINKCC="\$(PURIFY) \$(CC)"
466 else
Martin v. Löwis1931ca72002-06-01 21:39:58 +0000467 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000468 $CXX -c conftest.$ac_ext 2>&5
469 if $CC -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
470 && test -s conftest$ac_exeext && ./conftest$ac_exeext
471 then
472 LINKCC="\$(PURIFY) \$(CC)"
473 else
474 LINKCC="\$(PURIFY) \$(CXX)"
475 fi
476 rm -fr conftest*
477 fi
Guido van Rossumfb842551997-08-06 23:42:07 +0000478 case $ac_sys_system in
479 AIX*)
Neal Norwitz0b27ff92003-03-31 15:53:49 +0000480 exp_extra="\"\""
481 if test $ac_sys_release -ge 5 -o \
482 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
483 exp_extra="."
484 fi
485 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
Trent Mick635f6fb2000-08-23 21:33:05 +0000486 Monterey64*)
Martin v. Löwis4e732dc2002-03-19 15:15:32 +0000487 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
Guido van Rossumfb842551997-08-06 23:42:07 +0000488 esac
489fi
490AC_MSG_RESULT($LINKCC)
491
Martin v. Löwis1142de32002-03-29 16:28:31 +0000492AC_MSG_CHECKING(for --enable-shared)
493AC_ARG_ENABLE(shared,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000494 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000495
Martin v. Löwis1142de32002-03-29 16:28:31 +0000496if test -z "$enable_shared"
497then
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000498 case $ac_sys_system in
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000499 CYGWIN* | atheos*)
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000500 enable_shared="yes";;
501 *)
502 enable_shared="no";;
503 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000504fi
505AC_MSG_RESULT($enable_shared)
506
Skip Montanaro56f6a4f2004-06-18 02:47:22 +0000507AC_MSG_CHECKING(for --enable-profiling)
508AC_ARG_ENABLE(profiling,
509 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
510[ac_save_cc="$CC"
511 CC="$CC -pg"
512 AC_TRY_RUN([int main() { return 0; }],
513 ac_enable_profiling="yes",
514 ac_enable_profiling="no",
515 ac_enable_profiling="no")
516 CC="$ac_save_cc"])
517AC_MSG_RESULT($ac_enable_profiling)
518
519case "$ac_enable_profiling" in
520 "yes")
521 BASECFLAGS="-pg $BASECFLAGS"
522 LDFLAGS="-pg $LDFLAGS"
523 ;;
524esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000525
526AC_MSG_CHECKING(LDLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000527
Guido van Rossumb8552162001-09-05 14:58:11 +0000528# MacOSX framework builds need more magic. LDLIBRARY is the dynamic
529# library that we build, but we do not want to link against it (we
530# will find it with a -framework option). For this reason there is an
531# extra variable BLDLIBRARY against which Python and the extension
532# modules are linked, BLDLIBRARY. This is normally the same as
533# LDLIBRARY, but empty for MacOSX framework builds.
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000534if test "$enable_framework"
535then
536 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
Jack Jansen66b84832003-07-04 12:14:39 +0000537 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000538 BLDLIBRARY=''
539else
540 BLDLIBRARY='$(LDLIBRARY)'
541fi
542
Martin v. Löwis1142de32002-03-29 16:28:31 +0000543# Other platforms follow
544if test $enable_shared = "yes"; then
Mark Hammond8235ea12002-07-19 06:55:41 +0000545 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
Martin v. Löwis1142de32002-03-29 16:28:31 +0000546 case $ac_sys_system in
547 BeOS*)
548 LDLIBRARY='libpython$(VERSION).so'
549 ;;
550 CYGWIN*)
551 LDLIBRARY='libpython$(VERSION).dll.a'
552 DLLLIBRARY='libpython$(VERSION).dll'
553 ;;
554 SunOS*)
555 LDLIBRARY='libpython$(VERSION).so'
Martin v. Löwisd141a8c2003-06-14 15:20:28 +0000556 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000557 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis2389c412003-10-31 15:42:07 +0000558 INSTSONAME="$LDLIBRARY".$SOVERSION
Martin v. Löwis1142de32002-03-29 16:28:31 +0000559 ;;
Martin v. Löwis96ce8052003-05-31 07:58:45 +0000560 Linux*|GNU*|NetBSD*)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000561 LDLIBRARY='libpython$(VERSION).so'
562 BLDLIBRARY='-L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000563 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000564 INSTSONAME="$LDLIBRARY".$SOVERSION
565 ;;
566 hp*|HP*)
567 LDLIBRARY='libpython$(VERSION).sl'
568 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000569 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000570 ;;
571 OSF*)
572 LDLIBRARY='libpython$(VERSION).so'
573 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000574 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000575 ;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000576 atheos*)
577 LDLIBRARY='libpython$(VERSION).so'
578 BLDLIBRARY='-L. -lpython$(VERSION)'
579 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
580 ;;
Martin v. Löwis1142de32002-03-29 16:28:31 +0000581 esac
Jason Tishler30765592003-09-04 11:04:06 +0000582else # shared is disabled
583 case $ac_sys_system in
584 CYGWIN*)
585 BLDLIBRARY='$(LIBRARY)'
586 LDLIBRARY='libpython$(VERSION).dll.a'
587 ;;
588 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000589fi
590
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000591AC_MSG_RESULT($LDLIBRARY)
592
Guido van Rossum627b2d71993-12-24 10:39:16 +0000593AC_PROG_RANLIB
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000594AC_SUBST(AR)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000595AC_CHECK_PROGS(AR, ar aal, ar)
Neil Schemenauera42c8272001-03-31 00:01:55 +0000596
597case $MACHDEP in
Neil Schemenaueraf5567f2001-10-21 22:32:04 +0000598bsdos*|hp*|HP*)
599 # install -d does not work on BSDI or HP-UX
Neil Schemenauera42c8272001-03-31 00:01:55 +0000600 if test -z "$INSTALL"
601 then
602 INSTALL="${srcdir}/install-sh -c"
603 fi
604esac
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000605AC_PROG_INSTALL
Guido van Rossumb418f891996-07-30 18:06:02 +0000606
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000607# Not every filesystem supports hard links
608AC_SUBST(LN)
609if test -z "$LN" ; then
610 case $ac_sys_system in
611 BeOS*) LN="ln -s";;
Guido van Rossumaef734b2001-01-10 21:09:12 +0000612 CYGWIN*) LN="ln -s";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000613 atheos*) LN="ln -s";;
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000614 *) LN=ln;;
615 esac
616fi
617
Fred Drake9f715822001-07-11 06:27:00 +0000618# Check for --with-pydebug
619AC_MSG_CHECKING(for --with-pydebug)
620AC_ARG_WITH(pydebug,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000621 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
622[
Fred Drake9f715822001-07-11 06:27:00 +0000623if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000624then
625 AC_DEFINE(Py_DEBUG, 1,
626 [Define if you want to build an interpreter with many run-time checks.])
627 AC_MSG_RESULT(yes);
628 Py_DEBUG='true'
Fred Drake9f715822001-07-11 06:27:00 +0000629else AC_MSG_RESULT(no); Py_DEBUG='false'
630fi],
631[AC_MSG_RESULT(no)])
632
Skip Montanarodecc6a42003-01-01 20:07:49 +0000633# XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
634# merged with this chunk of code?
635
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000636# Optimizer/debugger flags
Skip Montanarodecc6a42003-01-01 20:07:49 +0000637# ------------------------
638# (The following bit of code is complicated enough - please keep things
639# indented properly. Just pretend you're editing Python code. ;-)
640
641# There are two parallel sets of case statements below, one that checks to
642# see if OPT was set and one that does BASECFLAGS setting based upon
643# compiler and platform. BASECFLAGS tweaks need to be made even if the
644# user set OPT.
645
646# tweak OPT based on compiler and platform, only if the user didn't set
647# it on the command line
Guido van Rossumb418f891996-07-30 18:06:02 +0000648AC_SUBST(OPT)
Guido van Rossum4e8af441994-08-19 15:33:54 +0000649if test -z "$OPT"
Guido van Rossumb418f891996-07-30 18:06:02 +0000650then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000651 case $GCC in
652 yes)
653 case $ac_cv_prog_cc_g in
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000654 yes)
Fred Drake9f715822001-07-11 06:27:00 +0000655 if test "$Py_DEBUG" = 'true' ; then
656 # Optimization messes up debuggers, so turn it off for
657 # debug builds.
658 OPT="-g -Wall -Wstrict-prototypes"
659 else
660 OPT="-g -O3 -Wall -Wstrict-prototypes"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000661 fi
662 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000663 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000664 OPT="-O3 -Wall -Wstrict-prototypes"
665 ;;
Fred Drake9f715822001-07-11 06:27:00 +0000666 esac
Martin v. Löwis21ee4092002-09-30 16:19:48 +0000667 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000668 SCO_SV*) OPT="$OPT -m486 -DSCO5"
669 ;;
670 esac
Fred Drake9f715822001-07-11 06:27:00 +0000671 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000672
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000673 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000674 OPT="-O"
675 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000676 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000677
678 # The current (beta) Monterey compiler dies with optimizations
679 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
Jack Jansenca06bc62001-08-03 15:32:23 +0000680 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000681 Monterey*)
682 OPT=""
683 ;;
Jack Jansenca06bc62001-08-03 15:32:23 +0000684 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000685
Guido van Rossum4e8af441994-08-19 15:33:54 +0000686fi
Guido van Rossum627b2d71993-12-24 10:39:16 +0000687
Skip Montanarodecc6a42003-01-01 20:07:49 +0000688AC_SUBST(BASECFLAGS)
689# tweak BASECFLAGS based on compiler and platform
690case $GCC in
691yes)
Martin v. Löwis70fedcd2003-07-07 21:26:19 +0000692 # Python violates C99 rules, by casting between incompatible
693 # pointer types. GCC may generate bad code as a result of that,
694 # so use -fno-strict-aliasing if supported.
695 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
696 ac_save_cc="$CC"
697 CC="$CC -fno-strict-aliasing"
698 AC_TRY_RUN([int main() { return 0; }],
699 ac_cv_no_strict_aliasing_ok=yes,
700 ac_cv_no_strict_aliasing_ok=no,
701 ac_cv_no_strict_aliasing_ok=no)
702 CC="$ac_save_cc"
703 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
704 if test $ac_cv_no_strict_aliasing_ok = yes
705 then
706 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
707 fi
Skip Montanarodecc6a42003-01-01 20:07:49 +0000708 case $ac_sys_system in
709 SCO_SV*)
710 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
711 ;;
712 # is there any other compiler on Darwin besides gcc?
713 Darwin*)
Jack Jansene0040412003-07-23 22:17:28 +0000714 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000715 ;;
716 esac
717 ;;
718
719*)
720 case $ac_sys_system in
721 OpenUNIX*|UnixWare*)
722 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
723 ;;
Neal Norwitzb44f1652003-05-26 14:11:55 +0000724 OSF*)
725 BASECFLAGS="$BASECFLAGS -ieee -std"
726 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000727 SCO_SV*)
728 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
729 ;;
730 esac
731 ;;
732esac
733
Fred Drakee1ceaa02001-12-04 20:55:47 +0000734if test "$Py_DEBUG" = 'true'; then
735 :
736else
737 OPT="-DNDEBUG $OPT"
738fi
739
Guido van Rossum6f2260e1996-09-09 16:21:03 +0000740if test "$ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000741then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000742 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000743fi
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000744
Guido van Rossum91922671997-10-09 20:24:13 +0000745AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
746AC_CACHE_VAL(ac_cv_opt_olimit_ok,
747[ac_save_cc="$CC"
748CC="$CC -OPT:Olimit=0"
749AC_TRY_RUN([int main() { return 0; }],
750 ac_cv_opt_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000751 ac_cv_opt_olimit_ok=no,
Guido van Rossum91922671997-10-09 20:24:13 +0000752 ac_cv_opt_olimit_ok=no)
753CC="$ac_save_cc"])
754AC_MSG_RESULT($ac_cv_opt_olimit_ok)
Guido van Rossum2efa34b1997-10-23 17:43:11 +0000755if test $ac_cv_opt_olimit_ok = yes; then
Guido van Rossum5839e582000-10-09 19:52:35 +0000756 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000757 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
758 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
759 # environment?
760 Darwin*)
761 ;;
762 *)
763 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
764 ;;
Guido van Rossum5839e582000-10-09 19:52:35 +0000765 esac
Guido van Rossumf8678121998-07-07 21:05:09 +0000766else
767 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
768 AC_CACHE_VAL(ac_cv_olimit_ok,
769 [ac_save_cc="$CC"
770 CC="$CC -Olimit 1500"
771 AC_TRY_RUN([int main() { return 0; }],
772 ac_cv_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000773 ac_cv_olimit_ok=no,
Guido van Rossumf8678121998-07-07 21:05:09 +0000774 ac_cv_olimit_ok=no)
775 CC="$ac_save_cc"])
776 AC_MSG_RESULT($ac_cv_olimit_ok)
777 if test $ac_cv_olimit_ok = yes; then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000778 BASECFLAGS="$BASECFLAGS -Olimit 1500"
Guido van Rossumf8678121998-07-07 21:05:09 +0000779 fi
Guido van Rossum201afe51997-05-14 21:14:44 +0000780fi
Guido van Rossumf8678121998-07-07 21:05:09 +0000781
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000782# On some compilers, pthreads are available without further options
783# (e.g. MacOS X). On some of these systems, the compiler will not
784# complain if unaccepted options are passed (e.g. gcc on Mac OS X).
785# So we have to see first whether pthreads are available without
786# options before we can check whether -Kpthread improves anything.
787AC_MSG_CHECKING(whether pthreads are available without options)
788AC_CACHE_VAL(ac_cv_pthread_is_default,
789[AC_TRY_RUN([
790#include <pthread.h>
791
792void* routine(void* p){return NULL;}
793
794int main(){
795 pthread_t p;
796 if(pthread_create(&p,NULL,routine,NULL)!=0)
797 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000798 (void)pthread_detach(p);
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000799 return 0;
800}
801],
Skip Montanarod8d39a02003-07-10 20:44:10 +0000802[
803 ac_cv_pthread_is_default=yes
804 ac_cv_kthread=no
805 ac_cv_pthread=no
806],
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000807 ac_cv_pthread_is_default=no,
808 ac_cv_pthread_is_default=no)
809])
810AC_MSG_RESULT($ac_cv_pthread_is_default)
811
812
813if test $ac_cv_pthread_is_default = yes
814then
815 ac_cv_kpthread=no
816else
Martin v. Löwis130fb172001-07-19 11:00:41 +0000817# -Kpthread, if available, provides the right #defines
818# and linker options to make pthread_create available
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000819# Some compilers won't report that they do not support -Kpthread,
820# so we need to run a program to see whether it really made the
821# function available.
Martin v. Löwis130fb172001-07-19 11:00:41 +0000822AC_MSG_CHECKING(whether $CC accepts -Kpthread)
823AC_CACHE_VAL(ac_cv_kpthread,
824[ac_save_cc="$CC"
825CC="$CC -Kpthread"
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000826AC_TRY_RUN([
827#include <pthread.h>
828
829void* routine(void* p){return NULL;}
830
831int main(){
832 pthread_t p;
833 if(pthread_create(&p,NULL,routine,NULL)!=0)
834 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000835 (void)pthread_detach(p);
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000836 return 0;
837}
838],
Martin v. Löwis130fb172001-07-19 11:00:41 +0000839 ac_cv_kpthread=yes,
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000840 ac_cv_kpthread=no,
Martin v. Löwis130fb172001-07-19 11:00:41 +0000841 ac_cv_kpthread=no)
842CC="$ac_save_cc"])
Martin v. Löwis130fb172001-07-19 11:00:41 +0000843AC_MSG_RESULT($ac_cv_kpthread)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000844fi
Martin v. Löwis130fb172001-07-19 11:00:41 +0000845
Skip Montanarod8d39a02003-07-10 20:44:10 +0000846if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis5f433f02003-05-05 05:05:30 +0000847then
848# -Kthread, if available, provides the right #defines
849# and linker options to make pthread_create available
850# Some compilers won't report that they do not support -Kthread,
851# so we need to run a program to see whether it really made the
852# function available.
853AC_MSG_CHECKING(whether $CC accepts -Kthread)
854AC_CACHE_VAL(ac_cv_kthread,
855[ac_save_cc="$CC"
856CC="$CC -Kthread"
857AC_TRY_RUN([
858#include <pthread.h>
859
860void* routine(void* p){return NULL;}
861
862int main(){
863 pthread_t p;
864 if(pthread_create(&p,NULL,routine,NULL)!=0)
865 return 1;
866 (void)pthread_detach(p);
867 return 0;
868}
869],
870 ac_cv_kthread=yes,
871 ac_cv_kthread=no,
872 ac_cv_kthread=no)
873CC="$ac_save_cc"])
874AC_MSG_RESULT($ac_cv_kthread)
875fi
876
Skip Montanarod8d39a02003-07-10 20:44:10 +0000877if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +0000878then
879# -pthread, if available, provides the right #defines
880# and linker options to make pthread_create available
881# Some compilers won't report that they do not support -pthread,
882# so we need to run a program to see whether it really made the
883# function available.
884AC_MSG_CHECKING(whether $CC accepts -pthread)
885AC_CACHE_VAL(ac_cv_thread,
886[ac_save_cc="$CC"
887CC="$CC -pthread"
888AC_TRY_RUN([
889#include <pthread.h>
890
891void* routine(void* p){return NULL;}
892
893int main(){
894 pthread_t p;
895 if(pthread_create(&p,NULL,routine,NULL)!=0)
896 return 1;
897 (void)pthread_detach(p);
898 return 0;
899}
900],
901 ac_cv_pthread=yes,
902 ac_cv_pthread=no,
903 ac_cv_pthread=no)
904CC="$ac_save_cc"])
905AC_MSG_RESULT($ac_cv_pthread)
906fi
907
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000908# If we have set a CC compiler flag for thread support then
909# check if it works for CXX, too.
910ac_cv_cxx_thread=no
911if test ! -z "$CXX"
912then
913AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
914ac_save_cxx="$CXX"
915
916if test "$ac_cv_kpthread" = "yes"
917then
Martin v. Löwis519adae2003-09-20 10:47:47 +0000918 CXX="$CXX -Kpthread"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000919 ac_cv_cxx_thread=yes
920elif test "$ac_cv_kthread" = "yes"
921then
922 CXX="$CXX -Kthread"
923 ac_cv_cxx_thread=yes
924elif test "$ac_cv_pthread" = "yes"
925then
926 CXX="$CXX -pthread"
927 ac_cv_cxx_thread=yes
928fi
929
930if test $ac_cv_cxx_thread = yes
931then
932 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
933 $CXX -c conftest.$ac_ext 2>&5
934 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
935 && test -s conftest$ac_exeext && ./conftest$ac_exeext
936 then
937 ac_cv_cxx_thread=yes
938 else
939 ac_cv_cxx_thread=no
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000940 fi
941 rm -fr conftest*
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000942fi
943fi
Martin v. Löwis519adae2003-09-20 10:47:47 +0000944CXX="$ac_save_cxx"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000945AC_MSG_RESULT($ac_cv_cxx_thread)
946
Fred Drakece81d592000-07-09 14:39:29 +0000947dnl # check for ANSI or K&R ("traditional") preprocessor
948dnl AC_MSG_CHECKING(for C preprocessor type)
949dnl AC_TRY_COMPILE([
950dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
951dnl int foo;
952dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
953dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
954dnl AC_MSG_RESULT($cpp_type)
Guido van Rossum300fda71996-08-19 21:58:16 +0000955
Guido van Rossum627b2d71993-12-24 10:39:16 +0000956# checks for header files
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000957AC_HEADER_STDC
Skip Montanaro7befb992004-02-10 16:50:21 +0000958AC_CHECK_HEADERS(dlfcn.h fcntl.h grp.h langinfo.h \
959libintl.h ncurses.h poll.h pthread.h \
960stropts.h termios.h thread.h \
Martin v. Löwis14e73b12003-01-01 09:51:12 +0000961unistd.h utime.h \
Neal Norwitz82251032003-05-23 14:35:24 +0000962sys/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 +0000963sys/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 +0000964sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
Hye-Shik Chang81268602004-02-02 06:05:24 +0000965sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
966bluetooth/bluetooth.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000967AC_HEADER_DIRENT
Martin v. Löwisdbe3f762002-10-10 14:27:30 +0000968AC_HEADER_MAJOR
Guido van Rossum627b2d71993-12-24 10:39:16 +0000969
970# checks for typedefs
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000971was_it_defined=no
972AC_MSG_CHECKING(for clock_t in time.h)
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000973AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
974 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
975])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000976AC_MSG_RESULT($was_it_defined)
977
Neal Norwitz11690112002-07-30 01:08:28 +0000978# Check whether using makedev requires defining _OSF_SOURCE
979AC_MSG_CHECKING(for makedev)
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000980AC_TRY_LINK([#include <sys/types.h> ],
Neal Norwitz11690112002-07-30 01:08:28 +0000981 [ makedev(0, 0) ],
982 ac_cv_has_makedev=yes,
983 ac_cv_has_makedev=no)
984if test "$ac_cv_has_makedev" = "no"; then
985 # we didn't link, try if _OSF_SOURCE will allow us to link
986 AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000987#define _OSF_SOURCE 1
988#include <sys/types.h>
Neal Norwitz11690112002-07-30 01:08:28 +0000989 ],
990 [ makedev(0, 0) ],
991 ac_cv_has_makedev=yes,
992 ac_cv_has_makedev=no)
993 if test "$ac_cv_has_makedev" = "yes"; then
994 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
995 fi
996fi
997AC_MSG_RESULT($ac_cv_has_makedev)
998if test "$ac_cv_has_makedev" = "yes"; then
999 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1000fi
1001
Martin v. Löwis399a6892002-10-04 10:22:02 +00001002# Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1003# the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1004# defined, but the compiler does not support pragma redefine_extname,
1005# and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1006# structures (such as rlimit64) without declaring them. As a
1007# work-around, disable LFS on such configurations
1008
1009use_lfs=yes
1010AC_MSG_CHECKING(Solaris LFS bug)
1011AC_TRY_COMPILE([
1012#define _LARGEFILE_SOURCE 1
1013#define _FILE_OFFSET_BITS 64
1014#include <sys/resource.h>
1015],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1016AC_MSG_RESULT($sol_lfs_bug)
1017if test "$sol_lfs_bug" = "yes"; then
1018 use_lfs=no
1019fi
1020
1021if test "$use_lfs" = "yes"; then
Guido van Rossum810cc512001-09-09 23:51:39 +00001022# Two defines needed to enable largefile support on various platforms
1023# These may affect some typedefs
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001024AC_DEFINE(_LARGEFILE_SOURCE, 1,
1025[This must be defined on some systems to enable large file support.])
1026AC_DEFINE(_FILE_OFFSET_BITS, 64,
1027[This must be set to 64 on some systems to enable large file support.])
Martin v. Löwis399a6892002-10-04 10:22:02 +00001028fi
Guido van Rossum810cc512001-09-09 23:51:39 +00001029
Guido van Rossum300fda71996-08-19 21:58:16 +00001030# Add some code to confdefs.h so that the test for off_t works on SCO
1031cat >> confdefs.h <<\EOF
1032#if defined(SCO_DS)
1033#undef _OFF_T
1034#endif
1035EOF
1036
Guido van Rossumef2255b2000-03-10 22:30:29 +00001037# Type availability checks
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001038AC_TYPE_MODE_T
1039AC_TYPE_OFF_T
1040AC_TYPE_PID_T
1041AC_TYPE_SIGNAL
1042AC_TYPE_SIZE_T
1043AC_TYPE_UID_T
Guido van Rossum627b2d71993-12-24 10:39:16 +00001044
Guido van Rossumef2255b2000-03-10 22:30:29 +00001045# Sizes of various common basic types
Skip Montanarob9820a32004-01-17 00:16:12 +00001046# ANSI C requires sizeof(char) == 1, so no need to check it
Guido van Rossum3065c942001-09-17 04:03:14 +00001047AC_CHECK_SIZEOF(int, 4)
1048AC_CHECK_SIZEOF(long, 4)
1049AC_CHECK_SIZEOF(void *, 4)
Guido van Rossum3065c942001-09-17 04:03:14 +00001050AC_CHECK_SIZEOF(short, 2)
1051AC_CHECK_SIZEOF(float, 4)
1052AC_CHECK_SIZEOF(double, 8)
1053AC_CHECK_SIZEOF(fpos_t, 4)
Guido van Rossumac405f61994-09-12 10:56:06 +00001054
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001055AC_MSG_CHECKING(for long long support)
1056have_long_long=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001057AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1058 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1059 have_long_long=yes
1060])
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001061AC_MSG_RESULT($have_long_long)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001062if test "$have_long_long" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001063AC_CHECK_SIZEOF(long long, 8)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001064fi
1065
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001066AC_MSG_CHECKING(for uintptr_t support)
1067have_uintptr_t=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001068AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1069 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1070 have_uintptr_t=yes
1071])
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001072AC_MSG_RESULT($have_uintptr_t)
1073if test "$have_uintptr_t" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001074AC_CHECK_SIZEOF(uintptr_t, 4)
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001075fi
1076
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001077# Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1078AC_MSG_CHECKING(size of off_t)
1079AC_CACHE_VAL(ac_cv_sizeof_off_t,
1080[AC_TRY_RUN([#include <stdio.h>
1081#include <sys/types.h>
1082main()
1083{
1084 FILE *f=fopen("conftestval", "w");
1085 if (!f) exit(1);
1086 fprintf(f, "%d\n", sizeof(off_t));
1087 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001088}],
1089ac_cv_sizeof_off_t=`cat conftestval`,
1090ac_cv_sizeof_off_t=0,
1091ac_cv_sizeof_off_t=4)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001092])
1093AC_MSG_RESULT($ac_cv_sizeof_off_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001094AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1095[The number of bytes in an off_t.])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001096
1097AC_MSG_CHECKING(whether to enable large file support)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001098if test "$have_long_long" = yes -a \
1099 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1100 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001101 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1102 [Defined to enable large file support when an off_t is bigger than a long
1103 and long long is available and at least as big as an off_t. You may need
1104 to add some flags for configuration and compilation to enable this mode.
1105 (For Solaris and Linux, the necessary defines are already defined.)])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001106 AC_MSG_RESULT(yes)
1107else
1108 AC_MSG_RESULT(no)
1109fi
1110
Fred Drakea3f6e912000-06-29 20:44:47 +00001111# AC_CHECK_SIZEOF() doesn't include <time.h>.
1112AC_MSG_CHECKING(size of time_t)
1113AC_CACHE_VAL(ac_cv_sizeof_time_t,
1114[AC_TRY_RUN([#include <stdio.h>
1115#include <time.h>
1116main()
1117{
1118 FILE *f=fopen("conftestval", "w");
1119 if (!f) exit(1);
1120 fprintf(f, "%d\n", sizeof(time_t));
1121 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001122}],
1123ac_cv_sizeof_time_t=`cat conftestval`,
1124ac_cv_sizeof_time_t=0,
1125ac_cv_sizeof_time_t=4)
Fred Drakea3f6e912000-06-29 20:44:47 +00001126])
1127AC_MSG_RESULT($ac_cv_sizeof_time_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001128AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1129[The number of bytes in a time_t.])
Fred Drakea3f6e912000-06-29 20:44:47 +00001130
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001131
Trent Mick635f6fb2000-08-23 21:33:05 +00001132# if have pthread_t then define SIZEOF_PTHREAD_T
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001133ac_save_cc="$CC"
1134if test "$ac_cv_kpthread" = "yes"
1135then CC="$CC -Kpthread"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001136elif test "$ac_cv_kthread" = "yes"
1137then CC="$CC -Kthread"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001138elif test "$ac_cv_pthread" = "yes"
1139then CC="$CC -pthread"
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001140fi
Trent Mick635f6fb2000-08-23 21:33:05 +00001141AC_MSG_CHECKING(for pthread_t)
1142have_pthread_t=no
Guido van Rossum12580492000-09-24 16:47:19 +00001143AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
Trent Mick635f6fb2000-08-23 21:33:05 +00001144AC_MSG_RESULT($have_pthread_t)
1145if test "$have_pthread_t" = yes ; then
1146 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1147 AC_MSG_CHECKING(size of pthread_t)
1148 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1149 [AC_TRY_RUN([#include <stdio.h>
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001150#include <pthread.h>
Trent Mick635f6fb2000-08-23 21:33:05 +00001151 main()
1152 {
1153 FILE *f=fopen("conftestval", "w");
1154 if (!f) exit(1);
1155 fprintf(f, "%d\n", sizeof(pthread_t));
1156 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001157 }],
1158 ac_cv_sizeof_pthread_t=`cat conftestval`,
1159 ac_cv_sizeof_pthread_t=0,
1160 ac_cv_sizeof_pthread_t=4)
Trent Mick635f6fb2000-08-23 21:33:05 +00001161 ])
1162 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001163 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1164 [The number of bytes in a pthread_t.])
Trent Mick635f6fb2000-08-23 21:33:05 +00001165fi
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001166CC="$ac_save_cc"
Trent Mick635f6fb2000-08-23 21:33:05 +00001167
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001168AC_MSG_CHECKING(for --enable-toolbox-glue)
1169AC_ARG_ENABLE(toolbox-glue,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001170 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001171
1172if test -z "$enable_toolbox_glue"
1173then
1174 case $ac_sys_system/$ac_sys_release in
1175 Darwin/*)
1176 enable_toolbox_glue="yes";;
1177 *)
1178 enable_toolbox_glue="no";;
1179 esac
1180fi
1181case "$enable_toolbox_glue" in
1182yes)
Jack Jansen666b1e72001-10-31 12:11:48 +00001183 extra_frameworks="-framework CoreServices -framework Foundation"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001184 extra_machdep_objs="Python/mactoolboxglue.o"
Jack Jansen591cbed2001-08-15 13:55:15 +00001185 extra_undefs="-u __dummy -u _PyMac_Error"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001186 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1187 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001188 ;;
1189*)
1190 extra_frameworks=""
1191 extra_machdep_objs=""
Jack Jansen591cbed2001-08-15 13:55:15 +00001192 extra_undefs=""
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001193 ;;
1194esac
1195AC_MSG_RESULT($enable_toolbox_glue)
1196
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001197AC_SUBST(LIBTOOL_CRUFT)
1198case $ac_sys_system/$ac_sys_release in
Jack Jansen418c3b12001-11-14 10:59:57 +00001199 Darwin/1.3*)
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 Jansena3891ea2001-09-07 14:25:12 +00001203 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum5839e582000-10-09 19:52:35 +00001204 Darwin/*)
Jack Jansenea0c3822002-08-01 21:57:49 +00001205 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
Jack Jansen418c3b12001-11-14 10:59:57 +00001206 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
Jack Jansenb36687a2004-07-16 08:43:47 +00001207 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001208 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001209esac
1210
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001211AC_MSG_CHECKING(for --enable-framework)
1212if test "$enable_framework"
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001213then
Skip Montanarodecc6a42003-01-01 20:07:49 +00001214 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001215 # -F. is needed to allow linking to the framework while
1216 # in the build location.
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001217 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1218 [Define if you want to produce an OpenStep/Rhapsody framework
1219 (shared library plus accessory files).])
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001220 AC_MSG_RESULT(yes)
1221else
1222 AC_MSG_RESULT(no)
1223fi
1224
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001225AC_MSG_CHECKING(for dyld)
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001226case $ac_sys_system/$ac_sys_release in
1227 Darwin/*)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001228 AC_DEFINE(WITH_DYLD, 1,
1229 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1230 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1231 linker (rld). Dyld is necessary to support frameworks.])
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001232 AC_MSG_RESULT(always on for Darwin)
1233 ;;
1234 *)
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001235 AC_MSG_RESULT(no)
1236 ;;
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001237esac
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001238
Guido van Rossumac405f61994-09-12 10:56:06 +00001239# Set info about shared libraries.
Guido van Rossumac405f61994-09-12 10:56:06 +00001240AC_SUBST(SO)
1241AC_SUBST(LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001242AC_SUBST(BLDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001243AC_SUBST(CCSHARED)
1244AC_SUBST(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001245# SO is the extension of shared libraries `(including the dot!)
Guido van Rossumaef734b2001-01-10 21:09:12 +00001246# -- usually .so, .sl on HP-UX, .dll on Cygwin
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001247AC_MSG_CHECKING(SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001248if test -z "$SO"
1249then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001250 case $ac_sys_system in
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001251 hp*|HP*) SO=.sl;;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001252 CYGWIN*) SO=.dll;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001253 *) SO=.so;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001254 esac
Martin v. Löwis368de8f2003-06-14 14:46:38 +00001255else
1256 # this might also be a termcap variable, see #610332
1257 echo
1258 echo '====================================================================='
1259 echo '+ +'
1260 echo '+ WARNING: You have set SO in your environment. +'
1261 echo '+ Do you really mean to change the extension for shared libraries? +'
1262 echo '+ Continuing in 10 seconds to let you to ponder. +'
1263 echo '+ +'
1264 echo '====================================================================='
1265 sleep 10
Guido van Rossumac405f61994-09-12 10:56:06 +00001266fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001267AC_MSG_RESULT($SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001268# LDSHARED is the ld *command* used to create shared library
Skip Montanaroce59c042004-01-17 14:19:44 +00001269# -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001270# (Shared libraries in this instance are shared modules to be loaded into
1271# Python, as opposed to building Python itself as a shared library.)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001272AC_MSG_CHECKING(LDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001273if test -z "$LDSHARED"
1274then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001275 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001276 AIX*)
1277 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
Guido van Rossumce608b02001-09-28 15:59:38 +00001278 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001279 ;;
1280 BeOS*)
1281 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
Guido van Rossumce608b02001-09-28 15:59:38 +00001282 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001283 ;;
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001284 IRIX/5*) LDSHARED="ld -shared";;
Guido van Rossum91922671997-10-09 20:24:13 +00001285 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
Greg Ward57c9a6632000-05-26 12:22:54 +00001286 SunOS/5*)
1287 if test "$GCC" = "yes"
Neil Schemenauer95052722001-02-19 18:17:33 +00001288 then LDSHARED='$(CC) -shared'
Martin v. Löwisaa5afe12002-10-07 06:21:41 +00001289 else LDSHARED='$(CC) -G';
Greg Ward57c9a6632000-05-26 12:22:54 +00001290 fi ;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001291 hp*|HP*) LDSHARED="ld -b";;
Guido van Rossum71001e41995-01-26 00:44:03 +00001292 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
Jack Jansen418c3b12001-11-14 10:59:57 +00001293 Darwin/1.3*)
Jack Jansena3891ea2001-09-07 14:25:12 +00001294 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1295 if test "$enable_framework" ; then
1296 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001297 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1298 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansena3891ea2001-09-07 14:25:12 +00001299 else
1300 # No framework. Ignore undefined symbols, assuming they come from Python
Jack Jansen418c3b12001-11-14 10:59:57 +00001301 LDSHARED="$LDSHARED -undefined suppress"
Jack Jansena3891ea2001-09-07 14:25:12 +00001302 fi ;;
Jack Jansen6b08a402004-06-03 12:41:45 +00001303 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001304 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1305 if test "$enable_framework" ; then
1306 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001307 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1308 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001309 else
Michael W. Hudson0c46c0c2002-03-07 09:58:56 +00001310 # No framework, use the Python app as bundle-loader
1311 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
Jack Jansenc28fc372003-02-25 13:14:43 +00001312 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001313 fi ;;
Jack Jansen6b08a402004-06-03 12:41:45 +00001314 Darwin/*)
1315 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1316 # This allows an extension to be used in any Python
1317 if test ${MACOSX_DEPLOYMENT_TARGET-10.1} '>' 10.2
1318 then
1319 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1320 BLDSHARED="$LDSHARED"
1321 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
1322 else
1323 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1324 if test "$enable_framework" ; then
1325 # Link against the framework. All externals should be defined.
1326 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1327 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
1328 else
1329 # No framework, use the Python app as bundle-loader
1330 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1331 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1332 fi
1333 fi
1334 ;;
Martin v. Löwis3cba5c02002-09-16 17:50:59 +00001335 Linux*|GNU*) LDSHARED='$(CC) -shared';;
Guido van Rossum458e7fa1999-09-17 15:40:40 +00001336 BSD/OS*/4*) LDSHARED="gcc -shared";;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001337 OpenBSD*|FreeBSD*)
Jeremy Hylton4bcc7c52000-08-31 17:45:35 +00001338 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
Guido van Rossum0286ae82000-08-29 15:06:49 +00001339 then
1340 LDSHARED="cc -shared ${LDFLAGS}"
1341 else
1342 LDSHARED="ld -Bshareable ${LDFLAGS}"
1343 fi;;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001344 NetBSD*) LDSHARED="cc -shared ${LDFLAGS}";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001345 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001346 if test "$GCC" = "yes"
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001347 then LDSHARED='$(CC) -shared'
1348 else LDSHARED='$(CC) -G'
Martin v. Löwisbec19582001-03-21 15:57:54 +00001349 fi;;
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001350 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
Trent Mick635f6fb2000-08-23 21:33:05 +00001351 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001352 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001353 atheos*) LDSHARED="gcc -shared";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001354 *) LDSHARED="ld";;
1355 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001356fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001357AC_MSG_RESULT($LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001358BLDSHARED=${BLDSHARED-$LDSHARED}
Guido van Rossumac405f61994-09-12 10:56:06 +00001359# CCSHARED are the C *flags* used to create objects to go into a shared
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001360# library (module) -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001361AC_MSG_CHECKING(CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001362if test -z "$CCSHARED"
1363then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001364 case $ac_sys_system/$ac_sys_release in
Neil Schemenauer66252162001-02-19 04:47:42 +00001365 SunOS*) if test "$GCC" = yes;
1366 then CCSHARED="-fPIC";
1367 fi;;
Guido van Rossumaf07a441995-02-13 19:45:27 +00001368 hp*|HP*) if test "$GCC" = yes;
Martin v. Löwis703ad702001-09-05 08:36:52 +00001369 then CCSHARED="-fPIC";
Guido van Rossumaf07a441995-02-13 19:45:27 +00001370 else CCSHARED="+z";
1371 fi;;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001372 Linux*|GNU*) CCSHARED="-fPIC";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001373 BSD/OS*/4*) CCSHARED="-fpic";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001374 FreeBSD*|NetBSD*|OpenBSD*) CCSHARED="-fPIC";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001375 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001376 if test "$GCC" = "yes"
1377 then CCSHARED="-fPIC"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001378 else CCSHARED="-KPIC"
Martin v. Löwisbec19582001-03-21 15:57:54 +00001379 fi;;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001380 SCO_SV*)
1381 if test "$GCC" = "yes"
1382 then CCSHARED="-fPIC"
1383 else CCSHARED="-Kpic -belf"
1384 fi;;
Trent Mick635f6fb2000-08-23 21:33:05 +00001385 Monterey*) CCSHARED="-G";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001386 IRIX*/6*) case $CC in
1387 *gcc*) CCSHARED="-shared";;
Guido van Rossumee21f411998-04-20 18:51:54 +00001388 *) CCSHARED="";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001389 esac;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001390 atheos*) CCSHARED="-fPIC";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001391 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001392fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001393AC_MSG_RESULT($CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001394# LINKFORSHARED are the flags passed to the $(CC) command that links
Guido van Rossumb65a48e1995-06-14 18:21:23 +00001395# the python executable -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001396AC_MSG_CHECKING(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001397if test -z "$LINKFORSHARED"
1398then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001399 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001400 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
Guido van Rossum5dab3d81996-12-06 21:18:18 +00001401 hp*|HP*)
Martin v. Löwis1142de32002-03-29 16:28:31 +00001402 LINKFORSHARED="-Wl,-E -Wl,+s";;
1403# LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001404 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001405 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001406 # -u libsys_s pulls in all symbols in libsys
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001407 Darwin/*)
1408 # -u __dummy makes the linker aware of the objc runtime
1409 # in System.framework; otherwise, __objcInit (referenced in
1410 # crt1.o) gets erroneously defined as common, which breaks dynamic
1411 # loading of any modules which reference it in System.framework.
1412 # -u _PyMac_Error is needed to pull in the mac toolbox glue, which is
1413 # not used by the core itself but which needs to be in the core so
1414 # that dynamically loaded extension modules have access to it.
Jack Jansen97e3f002003-02-23 22:59:01 +00001415 # -prebind is no longer used, because it actually seems to give a
1416 # slowdown in stead of a speedup, maybe due to the large number of
1417 # dynamic loads Python does.
1418 LINKFORSHARED="$extra_undefs -framework System"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001419 if test "$enable_framework"
1420 then
Jack Jansenb36687a2004-07-16 08:43:47 +00001421 LINKFORSHARED="$LINKFORSHARED -Wl,-F. -framework "'$(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001422 fi
1423 LINKFORSHARED="$LINKFORSHARED $extra_frameworks";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001424 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001425 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
Fred Drake02706f52000-09-25 15:08:46 +00001426 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001427 FreeBSD*|NetBSD*|OpenBSD*)
Guido van Rossumdf693651999-01-07 21:50:41 +00001428 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1429 then
1430 LINKFORSHARED="-Wl,--export-dynamic"
1431 fi;;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001432 SunOS/5*) case $CC in
1433 *gcc*)
Martin v. Löwisa4548572002-04-18 14:51:36 +00001434 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
Guido van Rossum8f4ceb11997-12-18 23:42:19 +00001435 then
1436 LINKFORSHARED="-Xlinker --export-dynamic"
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001437 fi;;
1438 esac;;
Jason Tishler30765592003-09-04 11:04:06 +00001439 CYGWIN*)
1440 if test $enable_shared = "no"
1441 then
1442 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1443 fi;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001444 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001445fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001446AC_MSG_RESULT($LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001447
Neil Schemenauer61c51152001-01-26 16:18:16 +00001448AC_SUBST(CFLAGSFORSHARED)
1449AC_MSG_CHECKING(CFLAGSFORSHARED)
1450if test ! "$LIBRARY" = "$LDLIBRARY"
1451then
Neil Schemenauerd9cf41c2001-01-27 21:39:17 +00001452 case $ac_sys_system in
1453 CYGWIN*)
1454 # Cygwin needs CCSHARED when building extension DLLs
1455 # but not when building the interpreter DLL.
1456 CFLAGSFORSHARED='';;
1457 *)
1458 CFLAGSFORSHARED='$(CCSHARED)'
1459 esac
Neil Schemenauer61c51152001-01-26 16:18:16 +00001460fi
1461AC_MSG_RESULT($CFLAGSFORSHARED)
1462
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001463# SHLIBS are libraries (except -lc and -lm) to link to the python shared
1464# library (with --enable-shared).
1465# For platforms on which shared libraries are not allowed to have unresolved
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001466# symbols, this must be set to $(LIBS) (expanded by make). We do this even
1467# if it is not required, since it creates a dependency of the shared library
1468# to LIBS. This, in turn, means that applications linking the shared libpython
1469# don't need to link LIBS explicitly. The default should be only changed
1470# on systems where this approach causes problems.
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001471AC_SUBST(SHLIBS)
1472AC_MSG_CHECKING(SHLIBS)
1473case "$ac_sys_system" in
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001474 *)
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001475 SHLIBS='$(LIBS)';;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001476esac
1477AC_MSG_RESULT($SHLIBS)
1478
1479
Guido van Rossum627b2d71993-12-24 10:39:16 +00001480# checks for libraries
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001481AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1482AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
Martin v. Löwis519adae2003-09-20 10:47:47 +00001483
1484# only check for sem_ini if thread support is requested
1485if test "$with_threads" = "yes" -o -z "$with_threads"; then
1486 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1487 # posix4 on Solaris 2.6
1488 # pthread (first!) on Linux
1489fi
1490
Martin v. Löwis19d17342003-06-14 21:03:05 +00001491# check if we need libintl for locale functions
1492AC_CHECK_LIB(intl, textdomain,
1493 AC_DEFINE(WITH_LIBINTL, 1,
1494 [Define to 1 if libintl is needed for locale functions.]))
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001495
1496# checks for system dependent C++ extensions support
1497case "$ac_sys_system" in
1498 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1499 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1500 [loadAndInit("", 0, "")],
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001501 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1502 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1503 and you want support for AIX C++ shared extension modules.])
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001504 AC_MSG_RESULT(yes)],
1505 [AC_MSG_RESULT(no)]);;
1506 *) ;;
1507esac
1508
Guido van Rossum70c7f481998-03-26 18:44:10 +00001509# Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001510# BeOS' sockets are stashed in libnet.
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001511AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001512AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
Skip Montanarob9949db2004-01-17 04:04:13 +00001513
Jeremy Hyltoncb25d5e2000-07-27 21:23:28 +00001514case "$ac_sys_system" in
1515BeOS*)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001516AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1517;;
1518esac
Guido van Rossum70c7f481998-03-26 18:44:10 +00001519
Guido van Rossumc5a39031996-07-31 17:35:03 +00001520AC_MSG_CHECKING(for --with-libs)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001521AC_ARG_WITH(libs,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001522 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1523[
Guido van Rossumc5a39031996-07-31 17:35:03 +00001524AC_MSG_RESULT($withval)
1525LIBS="$withval $LIBS"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001526],
1527[AC_MSG_RESULT(no)])
Guido van Rossum627b2d71993-12-24 10:39:16 +00001528
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001529# Determine if signalmodule should be used.
1530AC_SUBST(USE_SIGNAL_MODULE)
1531AC_SUBST(SIGNAL_OBJS)
1532AC_MSG_CHECKING(for --with-signal-module)
1533AC_ARG_WITH(signal-module,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001534 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001535
1536if test -z "$with_signal_module"
1537then with_signal_module="yes"
1538fi
1539AC_MSG_RESULT($with_signal_module)
1540
1541if test "${with_signal_module}" = "yes"; then
1542 USE_SIGNAL_MODULE=""
1543 SIGNAL_OBJS=""
1544else
1545 USE_SIGNAL_MODULE="#"
1546 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1547fi
1548
Guido van Rossum3d15bd82001-01-10 18:53:48 +00001549# This is used to generate Setup.config
Guido van Rossum009f7871997-12-04 00:51:42 +00001550AC_SUBST(USE_THREAD_MODULE)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001551USE_THREAD_MODULE=""
Guido van Rossum009f7871997-12-04 00:51:42 +00001552
Guido van Rossum54d93d41997-01-22 20:51:58 +00001553AC_MSG_CHECKING(for --with-dec-threads)
1554AC_SUBST(LDLAST)
1555AC_ARG_WITH(dec-threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001556 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1557[
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001558AC_MSG_RESULT($withval)
Guido van Rossum54d93d41997-01-22 20:51:58 +00001559LDLAST=-threads
Guido van Rossumf78abae1997-01-21 22:02:36 +00001560if test "${with_thread+set}" != set; then
Guido van Rossum54d93d41997-01-22 20:51:58 +00001561 with_thread="$withval";
1562fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001563[AC_MSG_RESULT(no)])
Guido van Rossum54d93d41997-01-22 20:51:58 +00001564
Martin v. Löwis11437992002-04-12 09:54:03 +00001565# Templates for things AC_DEFINEd more than once.
1566# For a single AC_DEFINE, no template is needed.
1567AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1568AH_TEMPLATE(_REENTRANT,
1569 [Define to force use of thread-safe errno, h_errno, and other functions])
1570AH_TEMPLATE(WITH_THREAD,
1571 [Define if you want to compile in rudimentary thread support])
1572
Guido van Rossum54d93d41997-01-22 20:51:58 +00001573AC_MSG_CHECKING(for --with-threads)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001574dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001575AC_ARG_WITH(threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001576 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
Guido van Rossum54d93d41997-01-22 20:51:58 +00001577
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001578# --with-thread is deprecated, but check for it anyway
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001579dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawa0f3c5c2000-06-30 16:39:35 +00001580AC_ARG_WITH(thread,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001581 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1582 [with_threads=$with_thread])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001583
1584if test -z "$with_threads"
1585then with_threads="yes"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001586fi
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001587AC_MSG_RESULT($with_threads)
Guido van Rossum6400c261997-05-22 20:34:27 +00001588
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001589AC_SUBST(THREADOBJ)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001590if test "$with_threads" = "no"
1591then
1592 USE_THREAD_MODULE="#"
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001593elif test "$ac_cv_pthread_is_default" = yes
1594then
1595 AC_DEFINE(WITH_THREAD)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001596 # Defining _REENTRANT on system with POSIX threads should not hurt.
1597 AC_DEFINE(_REENTRANT)
1598 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001599 THREADOBJ="Python/thread.o"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001600elif test "$ac_cv_kpthread" = "yes"
1601then
1602 CC="$CC -Kpthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001603 if test "$ac_cv_cxx_thread" = "yes"; then
1604 CXX="$CXX -Kpthread"
1605 fi
Martin v. Löwis130fb172001-07-19 11:00:41 +00001606 AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001607 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001608 THREADOBJ="Python/thread.o"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001609elif test "$ac_cv_kthread" = "yes"
1610then
1611 CC="$CC -Kthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001612 if test "$ac_cv_cxx_thread" = "yes"; then
1613 CXX="$CXX -Kthread"
1614 fi
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001615 AC_DEFINE(WITH_THREAD)
1616 posix_threads=yes
1617 THREADOBJ="Python/thread.o"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001618elif test "$ac_cv_pthread" = "yes"
1619then
1620 CC="$CC -pthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001621 if test "$ac_cv_cxx_thread" = "yes"; then
1622 CXX="$CXX -pthread"
1623 fi
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001624 AC_DEFINE(WITH_THREAD)
1625 posix_threads=yes
1626 THREADOBJ="Python/thread.o"
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001627else
Martin v. Löwis130fb172001-07-19 11:00:41 +00001628 if test ! -z "$with_threads" -a -d "$with_threads"
1629 then LDFLAGS="$LDFLAGS -L$with_threads"
1630 fi
1631 if test ! -z "$withval" -a -d "$withval"
1632 then LDFLAGS="$LDFLAGS -L$withval"
1633 fi
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001634
1635 # According to the POSIX spec, a pthreads implementation must
Matthias Klosea2542be2004-08-16 11:35:51 +00001636 # define _POSIX_THREADS in unistd.h. Some apparently don't
1637 # (e.g. gnu pth with pthread emulation)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001638 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1639 AC_EGREP_CPP(yes,
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001640 [
1641#include <unistd.h>
1642#ifdef _POSIX_THREADS
1643yes
1644#endif
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001645 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1646 AC_MSG_RESULT($unistd_defines_pthreads)
1647
Martin v. Löwis130fb172001-07-19 11:00:41 +00001648 AC_DEFINE(_REENTRANT)
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001649 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1650 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001651 AC_DEFINE(HURD_C_THREADS, 1,
1652 [Define if you are using Mach cthreads directly under /include])
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001653 LIBS="$LIBS -lthreads"
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_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1656 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001657 AC_DEFINE(MACH_C_THREADS, 1,
1658 [Define if you are using Mach cthreads under mach /])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001659 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001660 AC_MSG_CHECKING(for --with-pth)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001661 AC_ARG_WITH([pth],
1662 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1663 [AC_MSG_RESULT($withval)
1664 AC_DEFINE([WITH_THREAD])
1665 AC_DEFINE([HAVE_PTH], 1,
1666 [Define if you have GNU PTH threads.])
1667 LIBS="-lpth $LIBS"
1668 THREADOBJ="Python/thread.o"],
1669 [AC_MSG_RESULT(no)
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001670
1671 # Just looking for pthread_create in libpthread is not enough:
1672 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1673 # So we really have to include pthread.h, and then link.
1674 _libs=$LIBS
1675 LIBS="$LIBS -lpthread"
1676 AC_MSG_CHECKING([for pthread_create in -lpthread])
1677 AC_TRY_LINK([#include <pthread.h>
1678
1679void * start_routine (void *arg) { exit (0); }], [
1680pthread_create (NULL, NULL, start_routine, NULL)], [
1681 AC_MSG_RESULT(yes)
1682 AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001683 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001684 THREADOBJ="Python/thread.o"],[
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001685 LIBS=$_libs
Martin v. Löwis130fb172001-07-19 11:00:41 +00001686 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001687 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001688 THREADOBJ="Python/thread.o"],[
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001689 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1690 AC_DEFINE(ATHEOS_THREADS, 1,
1691 [Define this if you have AtheOS threads.])
1692 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001693 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001694 AC_DEFINE(BEOS_THREADS, 1,
1695 [Define this if you have BeOS threads.])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001696 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001697 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001698 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001699 LIBS="$LIBS -lpthreads"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001700 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001701 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001702 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001703 LIBS="$LIBS -lc_r"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001704 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001705 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001706 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001707 LIBS="$LIBS -lpthread"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001708 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001709 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001710 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001711 LIBS="$LIBS -lcma"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001712 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001713 USE_THREAD_MODULE="#"])
Skip Montanarof8712e52004-01-17 03:04:46 +00001714 ])])])])])])])])])])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001715
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001716 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1717 LIBS="$LIBS -lmpc"
1718 THREADOBJ="Python/thread.o"
1719 USE_THREAD_MODULE=""])
1720
1721 if test "$posix_threads" != "yes"; then
1722 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1723 LIBS="$LIBS -lthread"
1724 THREADOBJ="Python/thread.o"
1725 USE_THREAD_MODULE=""])
1726 fi
1727
1728 if test "$USE_THREAD_MODULE" != "#"
1729 then
1730 # If the above checks didn't disable threads, (at least) OSF1
1731 # needs this '-threads' argument during linking.
1732 case $ac_sys_system in
1733 OSF1) LDLAST=-threads;;
1734 esac
1735 fi
1736fi
1737
1738if test "$posix_threads" = "yes"; then
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001739 if test "$unistd_defines_pthreads" = "no"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001740 AC_DEFINE(_POSIX_THREADS, 1,
1741 [Define if you have POSIX threads,
1742 and your system does not define that.])
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001743 fi
1744
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001745 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1746 case $ac_sys_system/$ac_sys_release in
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001747 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1748 Defined for Solaris 2.6 bug in pthread header.)
1749 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001750 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001751 Define if the Posix semaphores do not work on your system)
1752 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001753 esac
1754
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001755 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1756 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1757 [AC_TRY_RUN([#include <pthread.h>
1758 void *foo(void *parm) {
1759 return NULL;
1760 }
1761 main() {
1762 pthread_attr_t attr;
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001763 pthread_t id;
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001764 if (pthread_attr_init(&attr)) exit(-1);
1765 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001766 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001767 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001768 }],
1769 ac_cv_pthread_system_supported=yes,
1770 ac_cv_pthread_system_supported=no,
1771 ac_cv_pthread_system_supported=no)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001772 ])
1773 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1774 if test "$ac_cv_pthread_system_supported" = "yes"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001775 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001776 fi
Jason Tishlerfac083d2003-07-22 15:20:49 +00001777 AC_CHECK_FUNCS(pthread_sigmask,
1778 [case $ac_sys_system in
1779 CYGWIN*)
1780 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1781 [Define if pthread_sigmask() does not work on your system.])
1782 ;;
1783 esac])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001784fi
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001785
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001786
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001787# Check for enable-ipv6
Martin v. Löwis11437992002-04-12 09:54:03 +00001788AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001789AC_MSG_CHECKING([if --enable-ipv6 is specified])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001790AC_ARG_ENABLE(ipv6,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001791[ --enable-ipv6 Enable ipv6 (with ipv4) support
1792 --disable-ipv6 Disable ipv6 support],
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001793[ case "$enableval" in
1794 no)
1795 AC_MSG_RESULT(no)
1796 ipv6=no
1797 ;;
1798 *) AC_MSG_RESULT(yes)
1799 AC_DEFINE(ENABLE_IPV6)
1800 ipv6=yes
1801 ;;
1802 esac ],
1803
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001804[
1805dnl the check does not work on cross compilation case...
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001806 AC_TRY_RUN([ /* AF_INET6 available check */
1807#include <sys/types.h>
1808#include <sys/socket.h>
1809main()
1810{
1811 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1812 exit(1);
1813 else
1814 exit(0);
1815}
1816],
1817 AC_MSG_RESULT(yes)
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001818 ipv6=yes,
1819 AC_MSG_RESULT(no)
1820 ipv6=no,
1821 AC_MSG_RESULT(no)
1822 ipv6=no
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001823)
1824
1825if test "$ipv6" = "yes"; then
1826 AC_MSG_CHECKING(if RFC2553 API is available)
1827 AC_TRY_COMPILE([#include <sys/types.h>
1828#include <netinet/in.h>],
1829 [struct sockaddr_in6 x;
1830x.sin6_scope_id;],
1831 AC_MSG_RESULT(yes)
1832 ipv6=yes,
1833 AC_MSG_RESULT(no, IPv6 disabled)
1834 ipv6=no)
1835fi
1836
1837if test "$ipv6" = "yes"; then
1838 AC_DEFINE(ENABLE_IPV6)
1839fi
1840])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001841
1842ipv6type=unknown
1843ipv6lib=none
1844ipv6trylibc=no
1845
1846if test "$ipv6" = "yes"; then
1847 AC_MSG_CHECKING([ipv6 stack type])
Guido van Rossumb8552162001-09-05 14:58:11 +00001848 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1849 do
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001850 case $i in
1851 inria)
1852 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001853 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001854#include <netinet/in.h>
1855#ifdef IPV6_INRIA_VERSION
1856yes
1857#endif],
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001858 [ipv6type=$i])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001859 ;;
1860 kame)
1861 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001862 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001863#include <netinet/in.h>
1864#ifdef __KAME__
1865yes
1866#endif],
1867 [ipv6type=$i;
1868 ipv6lib=inet6
1869 ipv6libdir=/usr/local/v6/lib
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001870 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001871 ;;
1872 linux-glibc)
1873 dnl http://www.v6.linux.or.jp/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001874 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001875#include <features.h>
1876#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
1877yes
1878#endif],
1879 [ipv6type=$i;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001880 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001881 ;;
1882 linux-inet6)
1883 dnl http://www.v6.linux.or.jp/
1884 if test -d /usr/inet6; then
1885 ipv6type=$i
1886 ipv6lib=inet6
1887 ipv6libdir=/usr/inet6/lib
Skip Montanarodecc6a42003-01-01 20:07:49 +00001888 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001889 fi
1890 ;;
1891 solaris)
1892 if test -f /etc/netconfig; then
1893 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
1894 ipv6type=$i
1895 ipv6trylibc=yes
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001896 fi
1897 fi
1898 ;;
1899 toshiba)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001900 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001901#include <sys/param.h>
1902#ifdef _TOSHIBA_INET6
1903yes
1904#endif],
1905 [ipv6type=$i;
1906 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001907 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001908 ;;
1909 v6d)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001910 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001911#include </usr/local/v6/include/sys/v6config.h>
1912#ifdef __V6D__
1913yes
1914#endif],
1915 [ipv6type=$i;
1916 ipv6lib=v6;
1917 ipv6libdir=/usr/local/v6/lib;
Skip Montanarodecc6a42003-01-01 20:07:49 +00001918 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001919 ;;
1920 zeta)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001921 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001922#include <sys/param.h>
1923#ifdef _ZETA_MINAMI_INET6
1924yes
1925#endif],
1926 [ipv6type=$i;
1927 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001928 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001929 ;;
1930 esac
1931 if test "$ipv6type" != "unknown"; then
1932 break
1933 fi
1934 done
1935 AC_MSG_RESULT($ipv6type)
1936fi
1937
1938if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
1939 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
1940 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
1941 echo "using lib$ipv6lib"
1942 else
1943 if test $ipv6trylibc = "yes"; then
1944 echo "using libc"
1945 else
1946 echo 'Fatal: no $ipv6lib library found. cannot continue.'
1947 echo "You need to fetch lib$ipv6lib.a from appropriate"
1948 echo 'ipv6 kit and compile beforehand.'
1949 exit 1
1950 fi
1951 fi
1952fi
1953
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001954# Check for --with-doc-strings
1955AC_MSG_CHECKING(for --with-doc-strings)
1956AC_ARG_WITH(doc-strings,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001957 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001958
1959if test -z "$with_doc_strings"
1960then with_doc_strings="yes"
1961fi
1962if test "$with_doc_strings" != "no"
1963then
1964 AC_DEFINE(WITH_DOC_STRINGS, 1,
1965 [Define if you want documentation strings in extension modules])
1966fi
1967AC_MSG_RESULT($with_doc_strings)
1968
Neil Schemenauera35c6882001-02-27 04:45:05 +00001969# Check for Python-specific malloc support
Martin v. Löwisf30d60e2004-06-08 08:17:44 +00001970AC_MSG_CHECKING(for --with-tsc)
1971AC_ARG_WITH(tsc,
1972[ --with(out)-tsc enable/disable timestamp counter profile], [
1973if test "$withval" != no
1974then
1975 AC_DEFINE(WITH_TSC, 1,
1976 [Define to profile with the Pentium timestamp counter])
1977 AC_MSG_RESULT(yes)
1978else AC_MSG_RESULT(no)
1979fi],
1980[AC_MSG_RESULT(no)])
1981
1982# Check for Python-specific malloc support
Neil Schemenauera35c6882001-02-27 04:45:05 +00001983AC_MSG_CHECKING(for --with-pymalloc)
1984AC_ARG_WITH(pymalloc,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001985 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
Neil Schemenauer16c22972002-03-22 15:34:49 +00001986
1987if test -z "$with_pymalloc"
1988then with_pymalloc="yes"
1989fi
1990if test "$with_pymalloc" != "no"
1991then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001992 AC_DEFINE(WITH_PYMALLOC, 1,
1993 [Define if you want to compile in Python-specific mallocs])
Neil Schemenauer16c22972002-03-22 15:34:49 +00001994fi
1995AC_MSG_RESULT($with_pymalloc)
Neil Schemenauera35c6882001-02-27 04:45:05 +00001996
Barry Warsawef82cd72000-06-30 16:21:01 +00001997# Check for --with-wctype-functions
1998AC_MSG_CHECKING(for --with-wctype-functions)
1999AC_ARG_WITH(wctype-functions,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002000 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2001[
Barry Warsawef82cd72000-06-30 16:21:01 +00002002if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002003then
2004 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2005 [Define if you want wctype.h functions to be used instead of the
2006 one supplied by Python itself. (see Include/unicodectype.h).])
2007 AC_MSG_RESULT(yes)
Barry Warsawef82cd72000-06-30 16:21:01 +00002008else AC_MSG_RESULT(no)
2009fi],
2010[AC_MSG_RESULT(no)])
2011
Guido van Rossum68242b51996-05-28 22:53:03 +00002012# -I${DLINCLDIR} is added to the compile rule for importdl.o
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002013AC_SUBST(DLINCLDIR)
Guido van Rossum98935bf2001-09-05 19:13:16 +00002014DLINCLDIR=.
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002015
Guido van Rossume97ee181999-12-20 21:27:22 +00002016# the dlopen() function means we might want to use dynload_shlib.o. some
2017# platforms, such as AIX, have dlopen(), but don't want to use it.
Thomas Wouters3a584202000-08-05 23:28:51 +00002018AC_CHECK_FUNCS(dlopen)
Guido van Rossume97ee181999-12-20 21:27:22 +00002019
2020# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2021# loading of modules.
2022AC_SUBST(DYNLOADFILE)
2023AC_MSG_CHECKING(DYNLOADFILE)
2024if test -z "$DYNLOADFILE"
2025then
2026 case $ac_sys_system/$ac_sys_release in
Martin v. Löwisc19c5a62003-11-18 20:00:44 +00002027 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2028 if test "$ac_cv_func_dlopen" = yes
2029 then DYNLOADFILE="dynload_shlib.o"
2030 else DYNLOADFILE="dynload_aix.o"
2031 fi
2032 ;;
Guido van Rossume97ee181999-12-20 21:27:22 +00002033 BeOS*) DYNLOADFILE="dynload_beos.o";;
2034 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002035 Darwin/*) DYNLOADFILE="dynload_next.o";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00002036 atheos*) DYNLOADFILE="dynload_atheos.o";;
Guido van Rossume97ee181999-12-20 21:27:22 +00002037 *)
2038 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2039 # out any dynamic loading
2040 if test "$ac_cv_func_dlopen" = yes
2041 then DYNLOADFILE="dynload_shlib.o"
2042 else DYNLOADFILE="dynload_stub.o"
2043 fi
2044 ;;
2045 esac
2046fi
2047AC_MSG_RESULT($DYNLOADFILE)
2048if test "$DYNLOADFILE" != "dynload_stub.o"
2049then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002050 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2051 [Defined when any dynamic module loading is enabled.])
Guido van Rossume97ee181999-12-20 21:27:22 +00002052fi
2053
Jack Jansenc49e5b72001-06-19 15:00:23 +00002054# MACHDEP_OBJS can be set to platform-specific object files needed by Python
2055
2056AC_SUBST(MACHDEP_OBJS)
2057AC_MSG_CHECKING(MACHDEP_OBJS)
2058if test -z "$MACHDEP_OBJS"
2059then
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002060 MACHDEP_OBJS=$extra_machdep_objs
2061else
2062 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
Jack Jansenc49e5b72001-06-19 15:00:23 +00002063fi
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002064AC_MSG_RESULT(MACHDEP_OBJS)
Jack Jansenc49e5b72001-06-19 15:00:23 +00002065
Guido van Rossum627b2d71993-12-24 10:39:16 +00002066# checks for library functions
Gustavo Niemeyer7bd33c52004-07-22 18:44:01 +00002067AC_CHECK_FUNCS(alarm bind_textdomain_codeset chown clock confstr ctermid \
2068 execv fork fpathconf ftime ftruncate \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002069 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
Martin v. Löwis49ee14d2003-11-10 06:35:36 +00002070 getpriority getpwent getsid getwd \
Martin v. Löwise9416172003-05-03 10:12:45 +00002071 kill killpg lchown lstat mkfifo mknod mktime \
Martin v. Löwisa5f09072002-10-11 05:37:59 +00002072 mremap nice pathconf pause plock poll pthread_init \
Guido van Rossum162e38c2003-02-19 15:25:10 +00002073 putenv readlink realpath \
Martin v. Löwisd5843682002-11-21 20:41:28 +00002074 select setegid seteuid setgid \
Martin v. Löwis4daacb12003-03-28 18:37:01 +00002075 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
Skip Montanaro7e11a012004-02-07 12:55:46 +00002076 sigaction siginterrupt sigrelse strftime \
Michael W. Hudson34f20ea2002-05-27 15:08:24 +00002077 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002078 truncate uname unsetenv utimes waitpid wcscoll _getpty)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002079
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002080# For some functions, having a definition is not sufficient, since
2081# we want to take their address.
2082AC_MSG_CHECKING(for chroot)
2083AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2084 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2085 AC_MSG_RESULT(yes),
2086 AC_MSG_RESULT(no)
2087)
2088AC_MSG_CHECKING(for link)
2089AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2090 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2091 AC_MSG_RESULT(yes),
2092 AC_MSG_RESULT(no)
2093)
2094AC_MSG_CHECKING(for symlink)
2095AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2096 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2097 AC_MSG_RESULT(yes),
2098 AC_MSG_RESULT(no)
2099)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002100AC_MSG_CHECKING(for fchdir)
2101AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2102 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2103 AC_MSG_RESULT(yes),
2104 AC_MSG_RESULT(no)
2105)
2106AC_MSG_CHECKING(for fsync)
2107AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
Skip Montanarod4fa8072003-09-25 14:49:15 +00002108 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002109 AC_MSG_RESULT(yes),
2110 AC_MSG_RESULT(no)
2111)
2112AC_MSG_CHECKING(for fdatasync)
2113AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2114 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2115 AC_MSG_RESULT(yes),
2116 AC_MSG_RESULT(no)
2117)
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002118
Martin v. Löwisd5843682002-11-21 20:41:28 +00002119# On some systems (eg. FreeBSD 5), we would find a definition of the
2120# functions ctermid_r, setgroups in the library, but no prototype
2121# (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2122# address to avoid compiler warnings and potential miscompilations
2123# because of the missing prototypes.
2124
2125AC_MSG_CHECKING(for ctermid_r)
2126AC_TRY_COMPILE([
2127#include "confdefs.h"
2128#include <stdio.h>
2129], void* p = ctermid_r,
2130 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2131 AC_MSG_RESULT(yes),
2132 AC_MSG_RESULT(no)
2133)
2134
Martin v. Löwisf26d63b2003-03-30 17:23:49 +00002135AC_MSG_CHECKING(for flock)
2136AC_TRY_COMPILE([
2137#include "confdefs.h"
2138#include <sys/file.h>
2139], void* p = flock,
2140 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2141 AC_MSG_RESULT(yes),
2142 AC_MSG_RESULT(no)
2143)
2144
2145AC_MSG_CHECKING(for getpagesize)
2146AC_TRY_COMPILE([
2147#include "confdefs.h"
2148#include <unistd.h>
2149], void* p = getpagesize,
2150 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2151 AC_MSG_RESULT(yes),
2152 AC_MSG_RESULT(no)
2153)
2154
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002155dnl check for true
2156AC_CHECK_PROGS(TRUE, true, /bin/true)
2157
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002158dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2159dnl On others, they are in the C library, so we to take no action
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002160AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002161 AC_CHECK_LIB(resolv, inet_aton)
2162)
2163
Martin v. Löwise9416172003-05-03 10:12:45 +00002164AC_MSG_CHECKING(for hstrerror)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002165AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002166#include "confdefs.h"
2167#include <netdb.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002168], void* p = hstrerror; hstrerror(0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002169 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2170 AC_MSG_RESULT(yes),
2171 AC_MSG_RESULT(no)
2172)
2173
2174AC_MSG_CHECKING(for inet_aton)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002175AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002176#include "confdefs.h"
2177#include <sys/socket.h>
2178#include <netinet/in.h>
2179#include <arpa/inet.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002180], void* p = inet_aton;inet_aton(0,0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002181 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2182 AC_MSG_RESULT(yes),
2183 AC_MSG_RESULT(no)
2184)
2185
2186AC_MSG_CHECKING(for inet_pton)
2187AC_TRY_COMPILE([
2188#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002189#include <sys/types.h>
Martin v. Löwise9416172003-05-03 10:12:45 +00002190#include <sys/socket.h>
2191#include <netinet/in.h>
2192#include <arpa/inet.h>
2193], void* p = inet_pton,
2194 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2195 AC_MSG_RESULT(yes),
2196 AC_MSG_RESULT(no)
2197)
2198
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002199# On some systems, setgroups is in unistd.h, on others, in grp.h
Martin v. Löwisd5843682002-11-21 20:41:28 +00002200AC_MSG_CHECKING(for setgroups)
2201AC_TRY_COMPILE([
2202#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002203#include <unistd.h>
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002204#ifdef HAVE_GRP_H
2205#include <grp.h>
2206#endif
Martin v. Löwisd5843682002-11-21 20:41:28 +00002207],
2208void* p = setgroups,
2209 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2210 AC_MSG_RESULT(yes),
2211 AC_MSG_RESULT(no)
2212)
2213
Fred Drake8cef4cf2000-06-28 16:40:38 +00002214# check for openpty and forkpty
2215
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002216AC_CHECK_FUNCS(openpty,, AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"]))
2217AC_CHECK_FUNCS(forkpty,, AC_CHECK_LIB(util,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"]))
Fred Drake8cef4cf2000-06-28 16:40:38 +00002218
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002219# check for long file support functions
2220AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2221
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002222AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002223AC_CHECK_FUNCS(getpgrp,
2224 AC_TRY_COMPILE([#include <unistd.h>],
2225 [getpgrp(0);],
2226 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2227 [Define if getpgrp() must be called as getpgrp(0).])
2228 )
2229)
Jack Jansen150753c2003-03-29 22:07:47 +00002230AC_CHECK_FUNCS(setpgrp,
2231 AC_TRY_COMPILE([#include <unistd.h>],
2232 [setpgrp(0,0);],
2233 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2234 [Define if setpgrp() must be called as setpgrp(0, 0).])
2235 )
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002236)
2237AC_CHECK_FUNCS(gettimeofday,
2238 AC_TRY_COMPILE([#include <sys/time.h>],
2239 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2240 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2241 [Define if gettimeofday() does not have second (timezone) argument
2242 This is the case on Motorola V4 (R40V4.2)])
2243 )
2244)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002245
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002246AC_MSG_CHECKING(for major, minor, and makedev)
Martin v. Löwise3271202002-11-07 07:42:30 +00002247AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +00002248#if defined(MAJOR_IN_MKDEV)
2249#include <sys/mkdev.h>
2250#elif defined(MAJOR_IN_SYSMACROS)
2251#include <sys/sysmacros.h>
2252#else
2253#include <sys/types.h>
2254#endif
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002255],[
2256 makedev(major(0),minor(0));
2257],[
2258 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2259 [Define to 1 if you have the device macros.])
2260 AC_MSG_RESULT(yes)
2261],[
2262 AC_MSG_RESULT(no)
2263])
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002264
2265# On OSF/1 V5.1, getaddrinfo is available, but a define
2266# for [no]getaddrinfo in netdb.h.
2267AC_MSG_CHECKING(for getaddrinfo)
2268AC_TRY_LINK([
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002269#include <sys/types.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002270#include <sys/socket.h>
2271#include <netdb.h>
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002272#include <stdio.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002273],[
2274getaddrinfo(NULL, NULL, NULL, NULL);
2275], [
2276AC_MSG_RESULT(yes)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002277AC_MSG_CHECKING(getaddrinfo bug)
2278AC_TRY_RUN([
2279#include <sys/types.h>
2280#include <netdb.h>
2281#include <string.h>
2282#include <sys/socket.h>
2283#include <netinet/in.h>
2284
2285main()
2286{
2287 int passive, gaierr, inet4 = 0, inet6 = 0;
2288 struct addrinfo hints, *ai, *aitop;
2289 char straddr[INET6_ADDRSTRLEN], strport[16];
2290
2291 for (passive = 0; passive <= 1; passive++) {
2292 memset(&hints, 0, sizeof(hints));
2293 hints.ai_family = AF_UNSPEC;
2294 hints.ai_flags = passive ? AI_PASSIVE : 0;
2295 hints.ai_socktype = SOCK_STREAM;
Hye-Shik Chang54f94392004-04-14 07:55:31 +00002296 hints.ai_protocol = IPPROTO_TCP;
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002297 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2298 (void)gai_strerror(gaierr);
2299 goto bad;
2300 }
2301 for (ai = aitop; ai; ai = ai->ai_next) {
2302 if (ai->ai_addr == NULL ||
2303 ai->ai_addrlen == 0 ||
2304 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2305 straddr, sizeof(straddr), strport, sizeof(strport),
2306 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2307 goto bad;
2308 }
2309 switch (ai->ai_family) {
2310 case AF_INET:
2311 if (strcmp(strport, "54321") != 0) {
2312 goto bad;
2313 }
2314 if (passive) {
2315 if (strcmp(straddr, "0.0.0.0") != 0) {
2316 goto bad;
2317 }
2318 } else {
2319 if (strcmp(straddr, "127.0.0.1") != 0) {
2320 goto bad;
2321 }
2322 }
2323 inet4++;
2324 break;
2325 case AF_INET6:
2326 if (strcmp(strport, "54321") != 0) {
2327 goto bad;
2328 }
2329 if (passive) {
2330 if (strcmp(straddr, "::") != 0) {
2331 goto bad;
2332 }
2333 } else {
2334 if (strcmp(straddr, "::1") != 0) {
2335 goto bad;
2336 }
2337 }
2338 inet6++;
2339 break;
2340 case AF_UNSPEC:
2341 goto bad;
2342 break;
2343 default:
2344 /* another family support? */
2345 break;
2346 }
2347 }
2348 }
2349
2350 if (!(inet4 == 0 || inet4 == 2))
2351 goto bad;
2352 if (!(inet6 == 0 || inet6 == 2))
2353 goto bad;
2354
2355 if (aitop)
2356 freeaddrinfo(aitop);
2357 exit(0);
2358
2359 bad:
2360 if (aitop)
2361 freeaddrinfo(aitop);
2362 exit(1);
2363}
2364],
2365AC_MSG_RESULT(good)
2366buggygetaddrinfo=no,
2367AC_MSG_RESULT(buggy)
2368buggygetaddrinfo=yes,
2369AC_MSG_RESULT(buggy)
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002370buggygetaddrinfo=yes)], [
2371AC_MSG_RESULT(no)
2372buggygetaddrinfo=yes
2373])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002374
2375if test "$buggygetaddrinfo" = "yes"; then
2376 if test "$ipv6" = "yes"; then
2377 echo 'Fatal: You must get working getaddrinfo() function.'
2378 echo ' or you can specify "--disable-ipv6"'.
2379 exit 1
2380 fi
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002381else
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002382 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002383fi
Thomas Woutersb0db85a2001-08-08 10:39:03 +00002384AC_CHECK_FUNCS(getnameinfo)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002385
Guido van Rossum627b2d71993-12-24 10:39:16 +00002386# checks for structures
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002387AC_HEADER_TIME
Guido van Rossum627b2d71993-12-24 10:39:16 +00002388AC_STRUCT_TM
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002389AC_STRUCT_TIMEZONE
Martin v. Löwis60a5d722002-10-16 20:28:25 +00002390AC_CHECK_MEMBERS([struct stat.st_rdev])
2391AC_CHECK_MEMBERS([struct stat.st_blksize])
Guido van Rossum98bf58f2001-10-18 20:34:25 +00002392AC_STRUCT_ST_BLOCKS
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002393
2394AC_MSG_CHECKING(for time.h that defines altzone)
2395AC_CACHE_VAL(ac_cv_header_time_altzone,
2396[AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2397 ac_cv_header_time_altzone=yes,
2398 ac_cv_header_time_altzone=no)])
2399AC_MSG_RESULT($ac_cv_header_time_altzone)
2400if test $ac_cv_header_time_altzone = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002401 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002402fi
2403
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002404was_it_defined=no
2405AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002406AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002407#include <sys/types.h>
2408#include <sys/select.h>
2409#include <sys/time.h>
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002410], [;], [
2411 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2412 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2413 (which you can't on SCO ODT 3.0).])
2414 was_it_defined=yes
2415])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002416AC_MSG_RESULT($was_it_defined)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002417
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002418AC_MSG_CHECKING(for addrinfo)
2419AC_CACHE_VAL(ac_cv_struct_addrinfo,
2420AC_TRY_COMPILE([
2421# include <netdb.h>],
2422 [struct addrinfo a],
2423 ac_cv_struct_addrinfo=yes,
2424 ac_cv_struct_addrinfo=no))
2425AC_MSG_RESULT($ac_cv_struct_addrinfo)
2426if test $ac_cv_struct_addrinfo = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002427 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002428fi
2429
2430AC_MSG_CHECKING(for sockaddr_storage)
2431AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2432AC_TRY_COMPILE([
2433# include <sys/types.h>
2434# include <sys/socket.h>],
2435 [struct sockaddr_storage s],
2436 ac_cv_struct_sockaddr_storage=yes,
2437 ac_cv_struct_sockaddr_storage=no))
2438AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2439if test $ac_cv_struct_sockaddr_storage = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002440 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002441fi
2442
Guido van Rossum627b2d71993-12-24 10:39:16 +00002443# checks for compiler characteristics
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002444
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002445AC_C_CHAR_UNSIGNED
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002446AC_C_CONST
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002447
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002448works=no
2449AC_MSG_CHECKING(for working volatile)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002450AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2451 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2452)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002453AC_MSG_RESULT($works)
Guido van Rossumdabb11b1994-10-11 15:04:27 +00002454
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002455works=no
2456AC_MSG_CHECKING(for working signed char)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002457AC_TRY_COMPILE([], [signed char c;], works=yes,
2458 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2459)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002460AC_MSG_RESULT($works)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002461
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002462have_prototypes=no
2463AC_MSG_CHECKING(for prototypes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002464AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2465 AC_DEFINE(HAVE_PROTOTYPES, 1,
2466 [Define if your compiler supports function prototype])
2467 have_prototypes=yes
2468])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002469AC_MSG_RESULT($have_prototypes)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002470
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002471works=no
2472AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002473AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002474#include <stdarg.h>
Guido van Rossum3f13e481996-08-30 20:58:11 +00002475int foo(int x, ...) {
2476 va_list va;
2477 va_start(va, x);
2478 va_arg(va, int);
2479 va_arg(va, char *);
2480 va_arg(va, double);
2481 return 0;
2482}
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002483], [return foo(10, "", 3.14);], [
2484 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2485 [Define if your compiler supports variable length function prototypes
2486 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2487 works=yes
2488])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002489AC_MSG_RESULT($works)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002490
Dave Cole331708b2004-08-09 04:51:41 +00002491# check for socketpair
2492AC_MSG_CHECKING(for socketpair)
2493AC_TRY_COMPILE([
2494#include <sys/types.h>
2495#include <sys/socket.h>
2496], void *x=socketpair,
2497 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2498 AC_MSG_RESULT(yes),
2499 AC_MSG_RESULT(no)
2500)
2501
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002502# check if sockaddr has sa_len member
2503AC_MSG_CHECKING(if sockaddr has sa_len member)
2504AC_TRY_COMPILE([#include <sys/types.h>
2505#include <sys/socket.h>],
2506[struct sockaddr x;
2507x.sa_len = 0;],
2508 AC_MSG_RESULT(yes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002509 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002510 AC_MSG_RESULT(no))
2511
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002512va_list_is_array=no
2513AC_MSG_CHECKING(whether va_list is an array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002514AC_TRY_COMPILE([
2515#ifdef HAVE_STDARG_PROTOTYPES
2516#include <stdarg.h>
2517#else
2518#include <varargs.h>
2519#endif
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002520], [va_list list1, list2; list1 = list2;], , [
2521 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2522 va_list_is_array=yes
2523])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002524AC_MSG_RESULT($va_list_is_array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002525
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002526# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
Martin v. Löwis11437992002-04-12 09:54:03 +00002527AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2528 [Define this if you have some version of gethostbyname_r()])
2529
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002530AC_CHECK_FUNC(gethostbyname_r, [
2531 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2532 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2533 OLD_CFLAGS=$CFLAGS
2534 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2535 AC_TRY_COMPILE([
2536# include <netdb.h>
2537 ], [
2538 char *name;
2539 struct hostent *he, *res;
2540 char buffer[2048];
2541 int buflen = 2048;
2542 int h_errnop;
2543
2544 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2545 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002546 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002547 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2548 [Define this if you have the 6-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002549 AC_MSG_RESULT(yes)
2550 ], [
2551 AC_MSG_RESULT(no)
2552 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2553 AC_TRY_COMPILE([
2554# include <netdb.h>
2555 ], [
2556 char *name;
2557 struct hostent *he;
2558 char buffer[2048];
2559 int buflen = 2048;
2560 int h_errnop;
2561
2562 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2563 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002564 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002565 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2566 [Define this if you have the 5-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002567 AC_MSG_RESULT(yes)
2568 ], [
2569 AC_MSG_RESULT(no)
2570 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2571 AC_TRY_COMPILE([
2572# include <netdb.h>
2573 ], [
2574 char *name;
2575 struct hostent *he;
2576 struct hostent_data data;
2577
2578 (void) gethostbyname_r(name, he, &data);
2579 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002580 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002581 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2582 [Define this if you have the 3-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002583 AC_MSG_RESULT(yes)
2584 ], [
2585 AC_MSG_RESULT(no)
2586 ])
2587 ])
2588 ])
2589 CFLAGS=$OLD_CFLAGS
2590], [
Thomas Wouters3a584202000-08-05 23:28:51 +00002591 AC_CHECK_FUNCS(gethostbyname)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002592])
2593AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2594AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2595AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002596AC_SUBST(HAVE_GETHOSTBYNAME_R)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002597AC_SUBST(HAVE_GETHOSTBYNAME)
2598
Guido van Rossum627b2d71993-12-24 10:39:16 +00002599# checks for system services
2600# (none yet)
2601
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002602# Linux requires this for correct f.p. operations
Jeremy Hyltonbe28f5b2000-07-27 21:03:04 +00002603AC_CHECK_FUNC(__fpu_control,
2604 [],
2605 [AC_CHECK_LIB(ieee, __fpu_control)
2606])
Guido van Rossum627b2d71993-12-24 10:39:16 +00002607
Guido van Rossum93274221997-05-09 02:42:00 +00002608# Check for --with-fpectl
Guido van Rossum93274221997-05-09 02:42:00 +00002609AC_MSG_CHECKING(for --with-fpectl)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00002610AC_ARG_WITH(fpectl,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002611 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2612[
Guido van Rossum93274221997-05-09 02:42:00 +00002613if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002614then
2615 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2616 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2617 AC_MSG_RESULT(yes)
Guido van Rossum93274221997-05-09 02:42:00 +00002618else AC_MSG_RESULT(no)
Guido van Rossumef2255b2000-03-10 22:30:29 +00002619fi],
2620[AC_MSG_RESULT(no)])
Guido van Rossum93274221997-05-09 02:42:00 +00002621
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002622# check for --with-libm=...
2623AC_SUBST(LIBM)
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002624case $ac_sys_system in
Guido van Rossum3dc0a512000-10-05 18:00:06 +00002625Darwin) ;;
Guido van Rossumec95c7b1998-08-04 17:59:56 +00002626BeOS) ;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002627*) LIBM=-lm
2628esac
Guido van Rossum93274221997-05-09 02:42:00 +00002629AC_MSG_CHECKING(for --with-libm=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002630AC_ARG_WITH(libm,
2631 AC_HELP_STRING(--with-libm=STRING, math library),
2632[
Guido van Rossum93274221997-05-09 02:42:00 +00002633if test "$withval" = no
2634then LIBM=
2635 AC_MSG_RESULT(force LIBM empty)
2636elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002637then LIBM=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002638 AC_MSG_RESULT(set LIBM="$withval")
2639else AC_MSG_ERROR([proper usage is --with-libm=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002640fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002641[AC_MSG_RESULT(default LIBM="$LIBM")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002642
2643# check for --with-libc=...
2644AC_SUBST(LIBC)
Guido van Rossum93274221997-05-09 02:42:00 +00002645AC_MSG_CHECKING(for --with-libc=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002646AC_ARG_WITH(libc,
2647 AC_HELP_STRING(--with-libc=STRING, C library),
2648[
Guido van Rossum93274221997-05-09 02:42:00 +00002649if test "$withval" = no
2650then LIBC=
2651 AC_MSG_RESULT(force LIBC empty)
2652elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002653then LIBC=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002654 AC_MSG_RESULT(set LIBC="$withval")
2655else AC_MSG_ERROR([proper usage is --with-libc=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002656fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002657[AC_MSG_RESULT(default LIBC="$LIBC")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002658
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002659# check for hypot() in math library
2660LIBS_SAVE=$LIBS
2661LIBS="$LIBS $LIBM"
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002662AC_REPLACE_FUNCS(hypot)
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002663LIBS=$LIBS_SAVE
2664
Guido van Rossumef2255b2000-03-10 22:30:29 +00002665# check for wchar.h
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002666AC_CHECK_HEADER(wchar.h, [
2667 AC_DEFINE(HAVE_WCHAR_H, 1,
2668 [Define if the compiler provides a wchar.h header file.])
2669 wchar_h="yes"
2670],
Guido van Rossumef2255b2000-03-10 22:30:29 +00002671wchar_h="no"
2672)
2673
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002674# determine wchar_t size
2675if test "$wchar_h" = yes
2676then
Guido van Rossum67b26592001-10-20 14:21:45 +00002677 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002678fi
2679
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002680AC_MSG_CHECKING(for UCS-4 tcl)
2681have_ucs4_tcl=no
2682AC_TRY_COMPILE([
2683#include <tcl.h>
2684#if TCL_UTF_MAX != 6
2685# error "NOT UCS4_TCL"
2686#endif], [], [
2687 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2688 have_ucs4_tcl=yes
2689])
2690AC_MSG_RESULT($have_ucs4_tcl)
2691
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002692# check whether wchar_t is signed or not
2693if test "$wchar_h" = yes
2694then
2695 # check whether wchar_t is signed or not
2696 AC_MSG_CHECKING(whether wchar_t is signed)
2697 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2698 AC_TRY_RUN([
2699 #include <wchar.h>
2700 int main()
2701 {
2702 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 1 : 0);
2703 }
2704 ],
2705 ac_cv_wchar_t_signed=yes,
2706 ac_cv_wchar_t_signed=no,
2707 ac_cv_wchar_t_signed=yes)])
2708 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2709fi
2710
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002711AC_MSG_CHECKING(what type to use for unicode)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002712dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002713AC_ARG_ENABLE(unicode,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002714 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2715 [],
2716 [enable_unicode=yes])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002717
2718if test $enable_unicode = yes
2719then
Martin v. Löwisfd917792001-06-27 20:22:04 +00002720 # Without any arguments, Py_UNICODE defaults to two-byte mode
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002721 case "$have_ucs4_tcl" in
2722 yes) enable_unicode="ucs4"
2723 ;;
2724 *) enable_unicode="ucs2"
2725 ;;
2726 esac
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002727fi
2728
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002729AH_TEMPLATE(Py_UNICODE_SIZE,
2730 [Define as the size of the unicode type.])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002731case "$enable_unicode" in
2732ucs2) unicode_size="2"
2733 AC_DEFINE(Py_UNICODE_SIZE,2)
2734 ;;
2735ucs4) unicode_size="4"
2736 AC_DEFINE(Py_UNICODE_SIZE,4)
2737 ;;
2738esac
2739
Martin v. Löwis11437992002-04-12 09:54:03 +00002740AH_TEMPLATE(PY_UNICODE_TYPE,
2741 [Define as the integral type used for Unicode representation.])
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002742
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002743AC_SUBST(UNICODE_OBJS)
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002744if test "$enable_unicode" = "no"
2745then
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002746 UNICODE_OBJS=""
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002747 AC_MSG_RESULT(not used)
2748else
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002749 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002750 AC_DEFINE(Py_USING_UNICODE, 1,
2751 [Define if you want to have a Unicode type.])
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002752
2753 # wchar_t is only usable if it maps to an unsigned type
2754 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2755 -a "$ac_cv_wchar_t_signed" == "no"
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002756 then
2757 PY_UNICODE_TYPE="wchar_t"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002758 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2759 [Define if you have a useable wchar_t type defined in wchar.h; useable
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002760 means wchar_t must be an unsigned type with at least 16 bits. (see
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002761 Include/unicodeobject.h).])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002762 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2763 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2764 then
2765 PY_UNICODE_TYPE="unsigned short"
2766 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2767 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2768 then
2769 PY_UNICODE_TYPE="unsigned long"
2770 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2771 else
2772 PY_UNICODE_TYPE="no type found"
2773 fi
2774 AC_MSG_RESULT($PY_UNICODE_TYPE)
2775fi
Guido van Rossumef2255b2000-03-10 22:30:29 +00002776
2777# check for endianness
2778AC_C_BIGENDIAN
2779
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002780# Check whether right shifting a negative integer extends the sign bit
2781# or fills with zeros (like the Cray J90, according to Tim Peters).
2782AC_MSG_CHECKING(whether right shift extends the sign bit)
Vladimir Marangozova6180282000-07-12 05:05:06 +00002783AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002784AC_TRY_RUN([
2785int main()
2786{
Vladimir Marangozova6180282000-07-12 05:05:06 +00002787 exit(((-1)>>3 == -1) ? 0 : 1);
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002788}
Guido van Rossum3065c942001-09-17 04:03:14 +00002789],
2790ac_cv_rshift_extends_sign=yes,
2791ac_cv_rshift_extends_sign=no,
2792ac_cv_rshift_extends_sign=yes)])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002793AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2794if test "$ac_cv_rshift_extends_sign" = no
2795then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002796 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2797 [Define if i>>j for signed int i does not extend the sign bit
2798 when i < 0])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002799fi
2800
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002801# check for getc_unlocked and related locking functions
2802AC_MSG_CHECKING(for getc_unlocked() and friends)
2803AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2804AC_TRY_LINK([#include <stdio.h>],[
2805 FILE *f = fopen("/dev/null", "r");
2806 flockfile(f);
2807 getc_unlocked(f);
2808 funlockfile(f);
2809], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2810AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2811if test "$ac_cv_have_getc_unlocked" = yes
2812then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002813 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2814 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002815fi
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002816
Michael W. Hudson30ea2f22004-07-07 17:44:12 +00002817# check for readline 2.1
2818AC_CHECK_LIB(readline, rl_callback_handler_install,
2819 AC_DEFINE(HAVE_RL_CALLBACK, 1,
2820 [Define if you have readline 2.1]), , -ltermcap)
2821
Guido van Rossumfaf5e4d2002-12-30 16:25:41 +00002822# check for readline 2.2
2823AC_TRY_CPP([#include <readline/readline.h>],
2824have_readline=yes, have_readline=no)
2825if test $have_readline = yes
2826then
2827 AC_EGREP_HEADER([extern int rl_completion_append_character;],
2828 [readline/readline.h],
2829 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
2830 [Define if you have readline 2.2]), )
2831fi
2832
Martin v. Löwis0daad592001-09-30 21:09:59 +00002833# check for readline 4.0
2834AC_CHECK_LIB(readline, rl_pre_input_hook,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002835 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
2836 [Define if you have readline 4.0]), , -ltermcap)
Martin v. Löwis0daad592001-09-30 21:09:59 +00002837
Guido van Rossum353ae582001-07-10 16:45:32 +00002838# check for readline 4.2
2839AC_CHECK_LIB(readline, rl_completion_matches,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002840 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
2841 [Define if you have readline 4.2]), , -ltermcap)
Guido van Rossum353ae582001-07-10 16:45:32 +00002842
Michael W. Hudson30ea2f22004-07-07 17:44:12 +00002843# also in readline 4.2
2844AC_TRY_CPP([#include <readline/readline.h>],
2845have_readline=yes, have_readline=no)
2846if test $have_readline = yes
2847then
2848 AC_EGREP_HEADER([extern int rl_catch_signals;],
2849 [readline/readline.h],
2850 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
2851 [Define if you can turn off readline's signal handling.]), )
2852fi
2853
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002854AC_MSG_CHECKING(for broken nice())
2855AC_CACHE_VAL(ac_cv_broken_nice, [
2856AC_TRY_RUN([
2857int main()
2858{
2859 int val1 = nice(1);
2860 if (val1 != -1 && val1 == nice(2))
2861 exit(0);
2862 exit(1);
2863}
Guido van Rossum3065c942001-09-17 04:03:14 +00002864],
2865ac_cv_broken_nice=yes,
2866ac_cv_broken_nice=no,
2867ac_cv_broken_nice=no)])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002868AC_MSG_RESULT($ac_cv_broken_nice)
2869if test "$ac_cv_broken_nice" = yes
2870then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002871 AC_DEFINE(HAVE_BROKEN_NICE, 1,
2872 [Define if nice() returns success/failure instead of the new priority.])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002873fi
2874
Nicholas Bastine62c5c82004-03-21 23:45:42 +00002875AC_MSG_CHECKING(for broken poll())
2876AC_TRY_RUN([
2877#include <poll.h>
2878
2879int main (void)
2880 {
2881 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
2882
2883 close (42);
2884
2885 int poll_test = poll (&poll_struct, 1, 0);
2886
2887 if (poll_test < 0)
2888 {
2889 exit(0);
2890 }
2891 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
2892 {
2893 exit(0);
2894 }
2895 else
2896 {
2897 exit(1);
2898 }
2899 }
2900],
2901ac_cv_broken_poll=yes,
2902ac_cv_broken_poll=no,
2903ac_cv_broken_poll=no)
2904AC_MSG_RESULT($ac_cv_broken_poll)
2905if test "$ac_cv_broken_poll" = yes
2906then
2907 AC_DEFINE(HAVE_BROKEN_POLL, 1,
2908 [Define if poll() sets errno on invalid file descriptors.])
2909fi
2910
2911
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002912# tzset(3) exists and works like we expect it to
2913AC_MSG_CHECKING(for working tzset())
2914AC_CACHE_VAL(ac_cv_working_tzset, [
2915AC_TRY_RUN([
2916#include <stdlib.h>
2917#include <time.h>
Brett Cannon18367812003-09-19 00:59:16 +00002918#include <string.h>
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002919int main()
2920{
Brett Cannon18367812003-09-19 00:59:16 +00002921 /* Note that we need to ensure that not only does tzset(3)
2922 do 'something' with localtime, but it works as documented
2923 in the library reference and as expected by the test suite.
2924
2925 Red Hat 6.2 doesn't understand the southern hemisphere
2926 after New Year's Day; it thinks swaps on that day.
2927 */
2928
2929 time_t groundhogday = 1044144000; /* GMT-based; well, it's a colony */
2930 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
2931
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002932 putenv("TZ=UTC+0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002933 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002934 if (localtime(&groundhogday)->tm_hour != 0)
2935 exit(1);
2936
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002937 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002938 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002939 if (localtime(&groundhogday)->tm_hour != 19)
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002940 exit(1);
Brett Cannon18367812003-09-19 00:59:16 +00002941
2942 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
2943 tzset();
2944 if (localtime(&groundhogday)->tm_hour != 11)
2945 exit(1);
2946 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
2947 exit(1);
2948 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
2949 exit(1);
2950
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002951 exit(0);
2952}
2953],
2954ac_cv_working_tzset=yes,
2955ac_cv_working_tzset=no,
2956ac_cv_working_tzset=no)])
2957AC_MSG_RESULT($ac_cv_working_tzset)
2958if test "$ac_cv_working_tzset" = yes
2959then
2960 AC_DEFINE(HAVE_WORKING_TZSET, 1,
2961 [Define if tzset() actually switches the local timezone in a meaningful way.])
2962fi
2963
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002964# Look for subsecond timestamps in struct stat
2965AC_MSG_CHECKING(for tv_nsec in struct stat)
2966AC_CACHE_VAL(ac_cv_stat_tv_nsec,
2967AC_TRY_COMPILE([#include <sys/stat.h>], [
2968struct stat st;
2969st.st_mtim.tv_nsec = 1;
2970],
Martin v. Löwisa32c9942002-09-09 16:17:47 +00002971ac_cv_stat_tv_nsec=yes,
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002972ac_cv_stat_tv_nsec=no,
2973ac_cv_stat_tv_nsec=no))
2974AC_MSG_RESULT($ac_cv_stat_tv_nsec)
2975if test "$ac_cv_stat_tv_nsec" = yes
2976then
2977 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
2978 [Define if you have struct stat.st_mtim.tv_nsec])
2979fi
2980
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002981# On HP/UX 11.0, mvwdelch is a block with a return statement
2982AC_MSG_CHECKING(whether mvwdelch is an expression)
2983AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
2984AC_TRY_COMPILE([#include <curses.h>], [
2985 int rtn;
2986 rtn = mvwdelch(0,0,0);
2987], ac_cv_mvwdelch_is_expression=yes,
2988 ac_cv_mvwdelch_is_expression=no,
2989 ac_cv_mvwdelch_is_expression=yes))
2990AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
2991
2992if test "$ac_cv_mvwdelch_is_expression" = yes
2993then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002994 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
2995 [Define if mvwdelch in curses.h is an expression.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002996fi
2997
2998AC_MSG_CHECKING(whether WINDOW has _flags)
2999AC_CACHE_VAL(ac_cv_window_has_flags,
3000AC_TRY_COMPILE([#include <curses.h>], [
3001 WINDOW *w;
3002 w->_flags = 0;
3003], ac_cv_window_has_flags=yes,
3004 ac_cv_window_has_flags=no,
3005 ac_cv_window_has_flags=no))
3006AC_MSG_RESULT($ac_cv_window_has_flags)
3007
3008
3009if test "$ac_cv_window_has_flags" = yes
3010then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00003011 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3012 [Define if WINDOW in curses.h offers a field _flags.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00003013fi
3014
Martin v. Löwis24a880b2002-12-31 12:55:15 +00003015AC_MSG_CHECKING(for /dev/ptmx)
3016
3017if test -e /dev/ptmx
3018then
3019 AC_MSG_RESULT(yes)
3020 AC_DEFINE(HAVE_DEV_PTMX, 1,
3021 [Define if we have /dev/ptmx.])
3022else
3023 AC_MSG_RESULT(no)
3024fi
3025
Neal Norwitz865400f2003-03-21 01:42:58 +00003026AC_MSG_CHECKING(for /dev/ptc)
3027
3028if test -e /dev/ptc
3029then
3030 AC_MSG_RESULT(yes)
3031 AC_DEFINE(HAVE_DEV_PTC, 1,
3032 [Define if we have /dev/ptc.])
3033else
3034 AC_MSG_RESULT(no)
3035fi
3036
Martin v. Löwis01c04012002-11-11 14:58:44 +00003037AC_CHECK_TYPE(socklen_t,,
3038 AC_DEFINE(socklen_t,int,
3039 Define to `int' if <sys/socket.h> does not define.),[
3040#ifdef HAVE_SYS_TYPES_H
3041#include <sys/types.h>
3042#endif
Guido van Rossum95713eb2000-05-18 20:53:31 +00003043#ifdef HAVE_SYS_SOCKET_H
3044#include <sys/socket.h>
3045#endif
Martin v. Löwis01c04012002-11-11 14:58:44 +00003046])
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003047
Martin v. Löwis06f15bb2001-12-02 13:02:32 +00003048AC_SUBST(THREADHEADERS)
3049
3050for h in `(cd $srcdir;echo Python/thread_*.h)`
3051do
3052 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3053done
3054
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003055AC_SUBST(SRCDIRS)
Jack Jansen0b06be72002-06-21 14:48:38 +00003056SRCDIRS="Parser Grammar Objects Python Modules Mac Mac/Python"
Andrew M. Kuchling8abedde2001-01-26 22:55:24 +00003057AC_MSG_CHECKING(for build directories)
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003058for dir in $SRCDIRS; do
3059 if test ! -d $dir; then
3060 mkdir $dir
Fred Drake884d3ba2000-11-02 17:52:56 +00003061 fi
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003062done
3063AC_MSG_RESULT(done)
Fred Drake036144d2000-10-26 17:09:35 +00003064
Guido van Rossum627b2d71993-12-24 10:39:16 +00003065# generate output files
Martin v. Löwis88afe662002-10-26 13:47:44 +00003066AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3067AC_OUTPUT
Neil Schemenauer61c51152001-01-26 16:18:16 +00003068
3069echo "creating Setup"
3070if test ! -f Modules/Setup
3071then
3072 cp $srcdir/Modules/Setup.dist Modules/Setup
3073fi
3074
3075echo "creating Setup.local"
3076if test ! -f Modules/Setup.local
3077then
3078 echo "# Edit this file for local setup changes" >Modules/Setup.local
3079fi
3080
3081echo "creating Makefile"
3082$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3083 -s Modules Modules/Setup.config \
Neil Schemenauerf8b71c52001-04-21 17:41:16 +00003084 Modules/Setup.local Modules/Setup
Neil Schemenauer66252162001-02-19 04:47:42 +00003085mv config.c Modules