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