blob: 2628806ef56e0e31ee6cb2fe387e420cb0c8e66a [file] [log] [blame]
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001dnl Process this file with autoconf 2.0 or later to make a configure script.
Martin v. Löwis88afe662002-10-26 13:47:44 +00002
3# Set VERSION so we only need to edit in one place (i.e., here)
Fred Drake9bd44622003-07-30 17:39:48 +00004m4_define(PYTHON_VERSION, 2.4)
Martin v. Löwis88afe662002-10-26 13:47:44 +00005
Guido van Rossum76be6ed1995-01-02 18:33:54 +00006AC_REVISION($Revision$)
Martin v. Löwis97017322002-04-12 17:25:21 +00007AC_PREREQ(2.53)
Martin v. Löwis88afe662002-10-26 13:47:44 +00008AC_INIT(python, PYTHON_VERSION)
9AC_CONFIG_SRCDIR([Include/object.h])
Martin v. Löwis4f1cd8b2001-07-26 13:41:06 +000010AC_CONFIG_HEADER(pyconfig.h)
Guido van Rossum627b2d71993-12-24 10:39:16 +000011
Martin v. Löwis8316feb2003-06-14 07:48:07 +000012dnl This is for stuff that absolutely must end up in pyconfig.h.
13dnl Please use pyport.h instead, if possible.
Martin v. Löwisbddf5a52002-11-11 13:37:28 +000014AH_TOP([
15#ifndef Py_PYCONFIG_H
16#define Py_PYCONFIG_H
17])
Martin v. Löwis11437992002-04-12 09:54:03 +000018AH_BOTTOM([
Martin v. Löwis11437992002-04-12 09:54:03 +000019/* Define the macros needed if on a UnixWare 7.x system. */
20#if defined(__USLC__) && defined(__SCO_VERSION__)
21#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
22#endif
Martin v. Löwisbddf5a52002-11-11 13:37:28 +000023
24#endif /*Py_PYCONFIG_H*/
Martin v. Löwis11437992002-04-12 09:54:03 +000025])
26
Martin v. Löwis8316feb2003-06-14 07:48:07 +000027# We don't use PACKAGE_ variables, and they cause conflicts
28# with other autoconf-based packages that include Python.h
29grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
30rm confdefs.h
31mv confdefs.h.new confdefs.h
32
Guido van Rossum642b6781997-07-19 19:35:41 +000033AC_SUBST(VERSION)
Martin v. Löwis88afe662002-10-26 13:47:44 +000034VERSION=PYTHON_VERSION
Guido van Rossum642b6781997-07-19 19:35:41 +000035
Martin v. Löwis1142de32002-03-29 16:28:31 +000036AC_SUBST(SOVERSION)
37SOVERSION=1.0
38
Martin v. Löwis6f18a3c2002-07-20 08:51:52 +000039# The later defininition of _XOPEN_SOURCE disables certain features
40# on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
41AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
42
Martin v. Löwisbcd93962003-05-03 10:32:18 +000043# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
44# certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
45# them.
46AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
47
Andrew MacIntyreabccf412003-07-02 13:53:25 +000048# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
49# certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
50# them.
51AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
52
Martin v. Löwise981a4e2002-11-11 13:26:51 +000053define_xopen_source=yes
Martin v. Löwis6f18a3c2002-07-20 08:51:52 +000054
Neil Schemenauer4edbc2a2001-03-22 00:34:03 +000055# Arguments passed to configure.
56AC_SUBST(CONFIG_ARGS)
57CONFIG_ARGS="$ac_configure_args"
58
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000059dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Jack Jansenb6e9cad2001-08-15 01:26:28 +000060AC_ARG_ENABLE(framework,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000061 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
62[
Jack Jansenb6e9cad2001-08-15 01:26:28 +000063 case $enableval in
64 yes)
65 enableval=/Library/Frameworks
Jack Jansen127e56e2001-09-11 14:41:54 +000066 esac
67 case $enableval in
68 no)
69 PYTHONFRAMEWORK=
70 PYTHONFRAMEWORKDIR=no-framework
71 PYTHONFRAMEWORKPREFIX=
72 PYTHONFRAMEWORKINSTALLDIR=
73 enable_framework=
Jack Jansenb6e9cad2001-08-15 01:26:28 +000074 ;;
75 *)
Jack Jansen127e56e2001-09-11 14:41:54 +000076 PYTHONFRAMEWORK=Python
77 PYTHONFRAMEWORKDIR=Python.framework
Jack Jansenb6e9cad2001-08-15 01:26:28 +000078 PYTHONFRAMEWORKPREFIX=$enableval
Jack Jansen127e56e2001-09-11 14:41:54 +000079 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
80 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
Jack Jansenb6e9cad2001-08-15 01:26:28 +000081 esac
Jack Jansenb6e9cad2001-08-15 01:26:28 +000082 ],[
83 PYTHONFRAMEWORK=
Jack Jansen127e56e2001-09-11 14:41:54 +000084 PYTHONFRAMEWORKDIR=no-framework
Jack Jansenb6e9cad2001-08-15 01:26:28 +000085 PYTHONFRAMEWORKPREFIX=
86 PYTHONFRAMEWORKINSTALLDIR=
87 enable_framework=
88])
89AC_SUBST(PYTHONFRAMEWORK)
90AC_SUBST(PYTHONFRAMEWORKDIR)
91AC_SUBST(PYTHONFRAMEWORKPREFIX)
92AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
Guido van Rossum4b6b5791996-09-09 20:09:34 +000093
Jack Jansenb6e9cad2001-08-15 01:26:28 +000094##AC_ARG_WITH(dyld,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +000095## AC_HELP_STRING(--with-dyld,
96## Use (OpenStep|Rhapsody) dynamic linker))
Jack Jansenb6e9cad2001-08-15 01:26:28 +000097##
Guido van Rossumb418f891996-07-30 18:06:02 +000098# Set name for machine-dependent library files
99AC_SUBST(MACHDEP)
100AC_MSG_CHECKING(MACHDEP)
101if test -z "$MACHDEP"
102then
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000103 ac_sys_system=`uname -s`
Martin v. Löwis21ee4092002-09-30 16:19:48 +0000104 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
105 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000106 ac_sys_release=`uname -v`
Guido van Rossumb418f891996-07-30 18:06:02 +0000107 else
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000108 ac_sys_release=`uname -r`
Guido van Rossumb418f891996-07-30 18:06:02 +0000109 fi
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000110 ac_md_system=`echo $ac_sys_system |
111 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
112 ac_md_release=`echo $ac_sys_release |
Guido van Rossum67b26592001-10-20 14:21:45 +0000113 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
Guido van Rossumb97ef171997-09-28 05:44:03 +0000114 MACHDEP="$ac_md_system$ac_md_release"
Guido van Rossum4b6b5791996-09-09 20:09:34 +0000115
Guido van Rossumbcd91e01997-03-20 20:46:29 +0000116 case $MACHDEP in
Andrew M. Kuchling5a3e4cb2001-07-20 19:29:04 +0000117 cygwin*) MACHDEP="cygwin";;
Jack Jansen8a97f4a2001-12-05 23:27:32 +0000118 darwin*) MACHDEP="darwin";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000119 atheos*) MACHDEP="atheos";;
Martin v. Löwisf3322282003-07-13 09:46:13 +0000120 irix646) MACHDEP="irix6";;
Guido van Rossumb97ef171997-09-28 05:44:03 +0000121 '') MACHDEP="unknown";;
Guido van Rossumb418f891996-07-30 18:06:02 +0000122 esac
123fi
Jack Jansen83f898c2002-12-30 22:23:40 +0000124
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000125# Some systems cannot stand _XOPEN_SOURCE being defined at all; they
126# disable features if it is defined, without any means to access these
127# features as extensions. For these systems, we skip the definition of
128# _XOPEN_SOURCE. Before adding a system to the list to gain access to
129# some feature, make sure there is no alternative way to access this
130# feature. Also, when using wildcards, make sure you have verified the
131# need for not defining _XOPEN_SOURCE on all systems matching the
132# wildcard, and that the wildcard does not include future systems
133# (which may remove their limitations).
134dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
135case $ac_sys_system/$ac_sys_release in
136 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
137 # even though select is a POSIX function. Reported by J. Ribbens.
Martin v. Löwis76bafc62003-10-03 13:47:44 +0000138 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
139 OpenBSD/2.* | OpenBSD/3.@<:@01234@:>@)
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000140 define_xopen_source=no;;
Martin v. Löwisa9d71422003-03-28 18:43:31 +0000141 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
142 # of union __?sigval. Reported by Stuart Bishop.
143 SunOS/5.6)
144 define_xopen_source=no;;
Martin v. Löwisc2409b42003-05-11 05:53:41 +0000145 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
146 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
147 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-3@:>@)
148 define_xopen_source=no;;
149 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
Martin v. Löwis53e73c32003-05-05 05:13:18 +0000150 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
Martin v. Löwisc2409b42003-05-11 05:53:41 +0000151 SCO_SV/3.2)
Martin v. Löwis53e73c32003-05-05 05:13:18 +0000152 define_xopen_source=no;;
Anthony Baxter6169c6b2003-10-04 07:46:23 +0000153 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
154 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
155 # this is fixed in 10.3, which identifies itself as Darwin/7.*
156 # This should hopefully be fixed in FreeBSD 4.9
157 FreeBSD/4.8* | Darwin/6* )
158 define_xopen_source=no;;
Martin v. Löwisc19c5a62003-11-18 20:00:44 +0000159 # On AIX 4, mbstate_t is defined only when _XOPEN_SOURCE == 500 but used in
160 # wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined or
161 # has another value. By not (re)defining it, the defaults come in place.
162 AIX/4)
163 define_xopen_source=no;;
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000164esac
165
166if test $define_xopen_source = yes
167then
Martin v. Löwis678fc1e2002-11-12 06:04:39 +0000168 AC_DEFINE(_XOPEN_SOURCE, 600,
169 Define to the level of X/Open that your system supports)
170
171 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
172 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
173 # several APIs are not declared. Since this is also needed in some
174 # cases for HP-UX, we define it globally.
175
176 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Define to activate Unix95-and-earlier features)
177 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
178
Martin v. Löwise981a4e2002-11-11 13:26:51 +0000179fi
180
Guido van Rossum91922671997-10-09 20:24:13 +0000181#
182# SGI compilers allow the specification of the both the ABI and the
183# ISA on the command line. Depending on the values of these switches,
184# different and often incompatable code will be generated.
185#
186# The SGI_ABI variable can be used to modify the CC and LDFLAGS and
187# thus supply support for various ABI/ISA combinations. The MACHDEP
188# variable is also adjusted.
189#
190AC_SUBST(SGI_ABI)
191if test ! -z "$SGI_ABI"
192then
193 CC="cc $SGI_ABI"
194 LDFLAGS="$SGI_ABI $LDFLAGS"
195 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
196fi
Guido van Rossumb418f891996-07-30 18:06:02 +0000197AC_MSG_RESULT($MACHDEP)
198
Jack Jansen83f898c2002-12-30 22:23:40 +0000199# And add extra plat-mac for darwin
200AC_SUBST(EXTRAPLATDIR)
Jack Jansen7b59b422003-03-17 15:44:10 +0000201AC_SUBST(EXTRAMACHDEPPATH)
Jack Jansen83f898c2002-12-30 22:23:40 +0000202AC_MSG_CHECKING(EXTRAPLATDIR)
203if test -z "$EXTRAPLATDIR"
204then
205 case $MACHDEP in
Jack Jansen7b59b422003-03-17 15:44:10 +0000206 darwin)
207 EXTRAPLATDIR="\$(PLATMACDIRS)"
208 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
209 ;;
210 *)
211 EXTRAPLATDIR=""
212 EXTRAMACHDEPPATH=""
213 ;;
Jack Jansen83f898c2002-12-30 22:23:40 +0000214 esac
215fi
216AC_MSG_RESULT($EXTRAPLATDIR)
217
Guido van Rossum627b2d71993-12-24 10:39:16 +0000218# checks for alternative programs
Skip Montanarodecc6a42003-01-01 20:07:49 +0000219
220# compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
221# for debug/optimization stuff. BASECFLAGS is for flags that are required
222# just to get things to compile and link. Users are free to override OPT
223# when running configure or make. The build should not break if they do.
224# BASECFLAGS should generally not be messed with, however.
225
226# XXX shouldn't some/most/all of this code be merged with the stuff later
227# on that fiddles with OPT and BASECFLAGS?
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000228AC_MSG_CHECKING(for --without-gcc)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000229AC_ARG_WITH(gcc,
230 AC_HELP_STRING(--without-gcc,never use gcc),
231[
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000232 case $withval in
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000233 no) CC=cc
234 without_gcc=yes;;
235 yes) CC=gcc
236 without_gcc=no;;
237 *) CC=$withval
238 without_gcc=$withval;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000239 esac], [
Guido van Rossumb418f891996-07-30 18:06:02 +0000240 case $ac_sys_system in
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000241 AIX*) CC=cc_r
242 without_gcc=;;
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000243 BeOS*)
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000244 case $BE_HOST_CPU in
245 ppc)
Fred Drake5790be12000-10-09 17:06:13 +0000246 CC=mwcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000247 without_gcc=yes
Skip Montanarodecc6a42003-01-01 20:07:49 +0000248 BASECFLAGS="$BASECFLAGS -export pragma"
249 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000250 LDFLAGS="$LDFLAGS -nodup"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000251 ;;
252 x86)
Fred Drake5790be12000-10-09 17:06:13 +0000253 CC=gcc
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000254 without_gcc=no
Skip Montanarodecc6a42003-01-01 20:07:49 +0000255 OPT="$OPT -O"
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000256 ;;
257 *)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000258 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000259 ;;
260 esac
Neil Schemenauerb3531b82001-02-16 04:09:05 +0000261 AR="\$(srcdir)/Modules/ar_beos"
262 RANLIB=:
Guido van Rossum7a5f4201999-01-12 20:30:23 +0000263 ;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000264 Monterey*)
265 RANLIB=:
Martin v. Löwis130fb172001-07-19 11:00:41 +0000266 without_gcc=;;
267 *) without_gcc=no;;
Guido van Rossum55a214e1995-09-13 17:48:09 +0000268 esac])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000269AC_MSG_RESULT($without_gcc)
270
Guido van Rossum27552902001-01-23 01:52:26 +0000271AC_SUBST(CXX)
Guido van Rossum95012191999-12-16 17:50:52 +0000272AC_SUBST(MAINOBJ)
Fred Drakea1a84e72001-03-06 05:52:16 +0000273MAINOBJ=python.o
Guido van Rossum95012191999-12-16 17:50:52 +0000274AC_MSG_CHECKING(for --with-cxx=<compiler>)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000275AC_ARG_WITH(cxx,
276 AC_HELP_STRING(--with-cxx=<compiler>, enable C++ support),
277[
Martin v. Löwis537970f2000-12-13 17:37:02 +0000278 check_cxx=no
Guido van Rossum95012191999-12-16 17:50:52 +0000279 case $withval in
280 no) CXX=
281 with_cxx=no;;
282 *) CXX=$withval
Fred Drakea1a84e72001-03-06 05:52:16 +0000283 MAINOBJ=ccpython.o
Guido van Rossum95012191999-12-16 17:50:52 +0000284 with_cxx=$withval;;
285 esac], [
286 with_cxx=no
Martin v. Löwis537970f2000-12-13 17:37:02 +0000287 check_cxx=yes
Guido van Rossum95012191999-12-16 17:50:52 +0000288])
289AC_MSG_RESULT($with_cxx)
Martin v. Löwis537970f2000-12-13 17:37:02 +0000290
Michael W. Hudson54241132001-12-07 15:38:26 +0000291if test "$with_cxx" = "yes"
292then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000293 AC_MSG_ERROR([must supply a compiler when using --with-cxx])
Michael W. Hudson54241132001-12-07 15:38:26 +0000294fi
295
Martin v. Löwis537970f2000-12-13 17:37:02 +0000296dnl The following fragment works similar to AC_PROG_CXX.
297dnl It does not fail if CXX is not found, and it is not executed if
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000298dnl --without-cxx was given.
Martin v. Löwis537970f2000-12-13 17:37:02 +0000299dnl Finally, it does not test whether CXX is g++.
300
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000301dnl Autoconf 2.5x does not have AC_PROG_CXX_WORKS anymore
302ifdef([AC_PROG_CXX_WORKS],[],
303 [AC_DEFUN([AC_PROG_CXX_WORKS],
304 [AC_LANG_PUSH(C++)dnl
305 _AC_COMPILER_EXEEXT
306 AC_LANG_POP()
307 ]
308)])
309
Martin v. Löwis537970f2000-12-13 17:37:02 +0000310if test "$check_cxx" = "yes"
311then
312 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
313 if test "$CXX" = "notfound"
314 then
315 CXX=
316 else
317 AC_PROG_CXX_WORKS
318 fi
319fi
320
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000321# If the user switches compilers, we can't believe the cache
322if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
323then
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000324 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
325(it is also a good idea to do 'make clean' before compiling)])
Guido van Rossum03ad99f1995-03-09 14:09:54 +0000326fi
327
Guido van Rossum627b2d71993-12-24 10:39:16 +0000328AC_PROG_CC
Martin v. Löwis1d5ecb72001-08-09 10:29:44 +0000329
330# checks for UNIX variants that set C preprocessor variables
331AC_AIX
Martin v. Löwis1d5ecb72001-08-09 10:29:44 +0000332
Martin v. Löwis779ffc02002-12-02 22:17:01 +0000333# Check for unsupported systems
334case $ac_sys_system/$ac_sys_release in
335SunOS/4*|DYNIX/*|dgux*/*|IRIX/4*|Linux*/1*)
336 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
337 echo See README for details.
338 exit 1;;
339esac
340
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000341AC_EXEEXT
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000342AC_MSG_CHECKING(for --with-suffix)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000343AC_ARG_WITH(suffix,
344 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
345[
Neil Schemenauer3ae1d0a2001-01-27 06:54:42 +0000346 case $withval in
347 no) EXEEXT=;;
348 yes) EXEEXT=.exe;;
349 *) EXEEXT=$withval;;
350 esac])
351AC_MSG_RESULT($EXEEXT)
Jack Jansen1999ef42001-12-06 21:47:20 +0000352
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000353# Test whether we're running on a non-case-sensitive system, in which
354# case we give a warning if no ext is given
Jack Jansen1999ef42001-12-06 21:47:20 +0000355AC_SUBST(BUILDEXEEXT)
356AC_MSG_CHECKING(for case-insensitive build directory)
Jack Jansen3c2c4332002-11-06 13:33:32 +0000357if test ! -d CaseSensitiveTestDir; then
358mkdir CaseSensitiveTestDir
359fi
360
361if test -d casesensitivetestdir
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000362then
Jack Jansen1999ef42001-12-06 21:47:20 +0000363 AC_MSG_RESULT(yes)
364 BUILDEXEEXT=.exe
365else
366 AC_MSG_RESULT(no)
Jack Jansendd19cf82001-12-06 22:36:17 +0000367 BUILDEXEEXT=$EXEEXT
Jack Jansen9a66b6d2001-08-08 13:56:14 +0000368fi
Jack Jansen3c2c4332002-11-06 13:33:32 +0000369rmdir CaseSensitiveTestDir
Guido van Rossumfb842551997-08-06 23:42:07 +0000370
Guido van Rossumdd997f71998-10-07 19:58:26 +0000371case $MACHDEP in
372bsdos*)
373 case $CC in
374 gcc) CC="$CC -D_HAVE_BSDI";;
375 esac;;
376esac
377
Guido van Rossum84561611997-08-21 00:08:11 +0000378case $ac_sys_system in
379hp*|HP*)
380 case $CC in
Guido van Rossumcd5ff9f2000-09-22 16:15:54 +0000381 cc|*/cc) CC="$CC -Ae";;
Guido van Rossum84561611997-08-21 00:08:11 +0000382 esac;;
Trent Mick635f6fb2000-08-23 21:33:05 +0000383Monterey*)
384 case $CC in
385 cc) CC="$CC -Wl,-Bexport";;
386 esac;;
Martin v. Löwise8964d42001-03-06 12:09:07 +0000387SunOS*)
388 # Some functions have a prototype only with that define, e.g. confstr
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000389 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
Martin v. Löwise8964d42001-03-06 12:09:07 +0000390 ;;
Guido van Rossum84561611997-08-21 00:08:11 +0000391esac
392
Martin v. Löwise8964d42001-03-06 12:09:07 +0000393
Neil Schemenauer61c51152001-01-26 16:18:16 +0000394AC_SUBST(LIBRARY)
395AC_MSG_CHECKING(LIBRARY)
396if test -z "$LIBRARY"
397then
398 LIBRARY='libpython$(VERSION).a'
399fi
400AC_MSG_RESULT($LIBRARY)
401
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000402# LDLIBRARY is the name of the library to link against (as opposed to the
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000403# name of the library into which to insert object files). BLDLIBRARY is also
404# the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
405# is blank as the main program is not linked directly against LDLIBRARY.
406# LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
407# systems without shared libraries, LDLIBRARY is the same as LIBRARY
408# (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
409# DLLLIBRARY is the shared (i.e., DLL) library.
410#
Martin v. Löwis1142de32002-03-29 16:28:31 +0000411# RUNSHARED is used to run shared python without installed libraries
412#
413# INSTSONAME is the name of the shared library that will be use to install
414# on the system - some systems like version suffix, others don't
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000415AC_SUBST(LDLIBRARY)
Guido van Rossum27552902001-01-23 01:52:26 +0000416AC_SUBST(DLLLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000417AC_SUBST(BLDLIBRARY)
418AC_SUBST(LDLIBRARYDIR)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000419AC_SUBST(INSTSONAME)
420AC_SUBST(RUNSHARED)
Neil Schemenauer61c51152001-01-26 16:18:16 +0000421LDLIBRARY="$LIBRARY"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000422BLDLIBRARY='$(LDLIBRARY)'
Martin v. Löwis09bdf722002-05-08 08:51:29 +0000423INSTSONAME='$(LDLIBRARY)'
Guido van Rossum27552902001-01-23 01:52:26 +0000424DLLLIBRARY=''
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000425LDLIBRARYDIR=''
Martin v. Löwis1142de32002-03-29 16:28:31 +0000426RUNSHARED=''
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000427
Guido van Rossumfb842551997-08-06 23:42:07 +0000428# LINKCC is the command that links the python executable -- default is $(CC).
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000429# If CXX is set, and if it is needed to link a main function that was
430# compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
431# python might then depend on the C++ runtime
Fred Drake5790be12000-10-09 17:06:13 +0000432# This is altered for AIX in order to build the export list before
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000433# linking.
Guido van Rossumfb842551997-08-06 23:42:07 +0000434AC_SUBST(LINKCC)
435AC_MSG_CHECKING(LINKCC)
436if test -z "$LINKCC"
437then
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000438 if test -z "$CXX"; then
439 LINKCC="\$(PURIFY) \$(CC)"
440 else
Martin v. Löwis1931ca72002-06-01 21:39:58 +0000441 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
Martin v. Löwisb7da67a2001-10-18 15:35:38 +0000442 $CXX -c conftest.$ac_ext 2>&5
443 if $CC -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
444 && test -s conftest$ac_exeext && ./conftest$ac_exeext
445 then
446 LINKCC="\$(PURIFY) \$(CC)"
447 else
448 LINKCC="\$(PURIFY) \$(CXX)"
449 fi
450 rm -fr conftest*
451 fi
Guido van Rossumfb842551997-08-06 23:42:07 +0000452 case $ac_sys_system in
453 AIX*)
Neal Norwitz0b27ff92003-03-31 15:53:49 +0000454 exp_extra="\"\""
455 if test $ac_sys_release -ge 5 -o \
456 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
457 exp_extra="."
458 fi
459 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
Guido van Rossum3c4bb801997-12-18 23:55:32 +0000460 dgux*)
Martin v. Löwis4e732dc2002-03-19 15:15:32 +0000461 LINKCC="LD_RUN_PATH=$libdir $LINKCC";;
Trent Mick635f6fb2000-08-23 21:33:05 +0000462 Monterey64*)
Martin v. Löwis4e732dc2002-03-19 15:15:32 +0000463 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
Guido van Rossumfb842551997-08-06 23:42:07 +0000464 esac
465fi
466AC_MSG_RESULT($LINKCC)
467
Martin v. Löwis1142de32002-03-29 16:28:31 +0000468AC_MSG_CHECKING(for --enable-shared)
469AC_ARG_ENABLE(shared,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000470 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000471
Martin v. Löwis1142de32002-03-29 16:28:31 +0000472if test -z "$enable_shared"
473then
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000474 case $ac_sys_system in
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000475 CYGWIN* | atheos*)
Martin v. Löwisb51033d2002-05-03 05:53:15 +0000476 enable_shared="yes";;
477 *)
478 enable_shared="no";;
479 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000480fi
481AC_MSG_RESULT($enable_shared)
482
483
484AC_MSG_CHECKING(LDLIBRARY)
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000485
Guido van Rossumb8552162001-09-05 14:58:11 +0000486# MacOSX framework builds need more magic. LDLIBRARY is the dynamic
487# library that we build, but we do not want to link against it (we
488# will find it with a -framework option). For this reason there is an
489# extra variable BLDLIBRARY against which Python and the extension
490# modules are linked, BLDLIBRARY. This is normally the same as
491# LDLIBRARY, but empty for MacOSX framework builds.
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000492if test "$enable_framework"
493then
494 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
Jack Jansen66b84832003-07-04 12:14:39 +0000495 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
Jack Jansenb6e9cad2001-08-15 01:26:28 +0000496 BLDLIBRARY=''
497else
498 BLDLIBRARY='$(LDLIBRARY)'
499fi
500
Martin v. Löwis1142de32002-03-29 16:28:31 +0000501# Other platforms follow
502if test $enable_shared = "yes"; then
Mark Hammond8235ea12002-07-19 06:55:41 +0000503 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
Martin v. Löwis1142de32002-03-29 16:28:31 +0000504 case $ac_sys_system in
505 BeOS*)
506 LDLIBRARY='libpython$(VERSION).so'
507 ;;
508 CYGWIN*)
509 LDLIBRARY='libpython$(VERSION).dll.a'
510 DLLLIBRARY='libpython$(VERSION).dll'
511 ;;
512 SunOS*)
513 LDLIBRARY='libpython$(VERSION).so'
Martin v. Löwisd141a8c2003-06-14 15:20:28 +0000514 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000515 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis2389c412003-10-31 15:42:07 +0000516 INSTSONAME="$LDLIBRARY".$SOVERSION
Martin v. Löwis1142de32002-03-29 16:28:31 +0000517 ;;
Martin v. Löwis96ce8052003-05-31 07:58:45 +0000518 Linux*|GNU*|NetBSD*)
Martin v. Löwis1142de32002-03-29 16:28:31 +0000519 LDLIBRARY='libpython$(VERSION).so'
520 BLDLIBRARY='-L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000521 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000522 INSTSONAME="$LDLIBRARY".$SOVERSION
523 ;;
524 hp*|HP*)
525 LDLIBRARY='libpython$(VERSION).sl'
526 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000527 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000528 ;;
529 OSF*)
530 LDLIBRARY='libpython$(VERSION).so'
531 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
Martin v. Löwisfc9b75f2003-08-09 09:06:52 +0000532 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
Martin v. Löwis1142de32002-03-29 16:28:31 +0000533 ;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000534 atheos*)
535 LDLIBRARY='libpython$(VERSION).so'
536 BLDLIBRARY='-L. -lpython$(VERSION)'
537 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
538 ;;
Martin v. Löwis1142de32002-03-29 16:28:31 +0000539 esac
540 # DG/UX requires some fancy ld contortions to produce a .so from an .a
541 case $MACHDEP in
542 dguxR4)
543 LDLIBRARY='libpython$(VERSION).so'
Skip Montanarodecc6a42003-01-01 20:07:49 +0000544 BASECFLAGS="$BASECFLAGS -pic"
Martin v. Löwis1142de32002-03-29 16:28:31 +0000545 ;;
546 esac
Jason Tishler30765592003-09-04 11:04:06 +0000547else # shared is disabled
548 case $ac_sys_system in
549 CYGWIN*)
550 BLDLIBRARY='$(LIBRARY)'
551 LDLIBRARY='libpython$(VERSION).dll.a'
552 ;;
553 esac
Martin v. Löwis1142de32002-03-29 16:28:31 +0000554fi
555
Guido van Rossum54ecc3d1999-01-27 17:53:11 +0000556AC_MSG_RESULT($LDLIBRARY)
557
Guido van Rossum627b2d71993-12-24 10:39:16 +0000558AC_PROG_RANLIB
Guido van Rossum433c8ad1994-08-01 12:07:07 +0000559AC_SUBST(AR)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000560AC_CHECK_PROGS(AR, ar aal, ar)
Neil Schemenauera42c8272001-03-31 00:01:55 +0000561
562case $MACHDEP in
Neil Schemenaueraf5567f2001-10-21 22:32:04 +0000563bsdos*|hp*|HP*)
564 # install -d does not work on BSDI or HP-UX
Neil Schemenauera42c8272001-03-31 00:01:55 +0000565 if test -z "$INSTALL"
566 then
567 INSTALL="${srcdir}/install-sh -c"
568 fi
569esac
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000570AC_PROG_INSTALL
Guido van Rossumb418f891996-07-30 18:06:02 +0000571
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000572# Not every filesystem supports hard links
573AC_SUBST(LN)
574if test -z "$LN" ; then
575 case $ac_sys_system in
576 BeOS*) LN="ln -s";;
Guido van Rossumaef734b2001-01-10 21:09:12 +0000577 CYGWIN*) LN="ln -s";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +0000578 atheos*) LN="ln -s";;
Guido van Rossumec95c7b1998-08-04 17:59:56 +0000579 *) LN=ln;;
580 esac
581fi
582
Fred Drake9f715822001-07-11 06:27:00 +0000583# Check for --with-pydebug
584AC_MSG_CHECKING(for --with-pydebug)
585AC_ARG_WITH(pydebug,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +0000586 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
587[
Fred Drake9f715822001-07-11 06:27:00 +0000588if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000589then
590 AC_DEFINE(Py_DEBUG, 1,
591 [Define if you want to build an interpreter with many run-time checks.])
592 AC_MSG_RESULT(yes);
593 Py_DEBUG='true'
Fred Drake9f715822001-07-11 06:27:00 +0000594else AC_MSG_RESULT(no); Py_DEBUG='false'
595fi],
596[AC_MSG_RESULT(no)])
597
Skip Montanarodecc6a42003-01-01 20:07:49 +0000598# XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
599# merged with this chunk of code?
600
Neil Schemenauer55f0cf32001-01-24 17:24:33 +0000601# Optimizer/debugger flags
Skip Montanarodecc6a42003-01-01 20:07:49 +0000602# ------------------------
603# (The following bit of code is complicated enough - please keep things
604# indented properly. Just pretend you're editing Python code. ;-)
605
606# There are two parallel sets of case statements below, one that checks to
607# see if OPT was set and one that does BASECFLAGS setting based upon
608# compiler and platform. BASECFLAGS tweaks need to be made even if the
609# user set OPT.
610
611# tweak OPT based on compiler and platform, only if the user didn't set
612# it on the command line
Guido van Rossumb418f891996-07-30 18:06:02 +0000613AC_SUBST(OPT)
Guido van Rossum4e8af441994-08-19 15:33:54 +0000614if test -z "$OPT"
Guido van Rossumb418f891996-07-30 18:06:02 +0000615then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000616 case $GCC in
617 yes)
618 case $ac_cv_prog_cc_g in
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000619 yes)
Fred Drake9f715822001-07-11 06:27:00 +0000620 if test "$Py_DEBUG" = 'true' ; then
621 # Optimization messes up debuggers, so turn it off for
622 # debug builds.
623 OPT="-g -Wall -Wstrict-prototypes"
624 else
625 OPT="-g -O3 -Wall -Wstrict-prototypes"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000626 fi
627 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000628 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000629 OPT="-O3 -Wall -Wstrict-prototypes"
630 ;;
Fred Drake9f715822001-07-11 06:27:00 +0000631 esac
Martin v. Löwis21ee4092002-09-30 16:19:48 +0000632 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000633 SCO_SV*) OPT="$OPT -m486 -DSCO5"
634 ;;
635 esac
Fred Drake9f715822001-07-11 06:27:00 +0000636 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000637
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000638 *)
Skip Montanarodecc6a42003-01-01 20:07:49 +0000639 OPT="-O"
640 ;;
Guido van Rossum2242f2f2001-04-11 20:58:20 +0000641 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000642
643 # The current (beta) Monterey compiler dies with optimizations
644 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
Jack Jansenca06bc62001-08-03 15:32:23 +0000645 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000646 Monterey*)
647 OPT=""
648 ;;
Jack Jansenca06bc62001-08-03 15:32:23 +0000649 esac
Skip Montanarodecc6a42003-01-01 20:07:49 +0000650
Guido van Rossum4e8af441994-08-19 15:33:54 +0000651fi
Guido van Rossum627b2d71993-12-24 10:39:16 +0000652
Skip Montanarodecc6a42003-01-01 20:07:49 +0000653AC_SUBST(BASECFLAGS)
654# tweak BASECFLAGS based on compiler and platform
655case $GCC in
656yes)
Martin v. Löwis70fedcd2003-07-07 21:26:19 +0000657 # Python violates C99 rules, by casting between incompatible
658 # pointer types. GCC may generate bad code as a result of that,
659 # so use -fno-strict-aliasing if supported.
660 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
661 ac_save_cc="$CC"
662 CC="$CC -fno-strict-aliasing"
663 AC_TRY_RUN([int main() { return 0; }],
664 ac_cv_no_strict_aliasing_ok=yes,
665 ac_cv_no_strict_aliasing_ok=no,
666 ac_cv_no_strict_aliasing_ok=no)
667 CC="$ac_save_cc"
668 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
669 if test $ac_cv_no_strict_aliasing_ok = yes
670 then
671 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
672 fi
Skip Montanarodecc6a42003-01-01 20:07:49 +0000673 case $ac_sys_system in
674 SCO_SV*)
675 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
676 ;;
677 # is there any other compiler on Darwin besides gcc?
678 Darwin*)
Jack Jansene0040412003-07-23 22:17:28 +0000679 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
Skip Montanarodecc6a42003-01-01 20:07:49 +0000680 ;;
681 esac
682 ;;
683
684*)
685 case $ac_sys_system in
686 OpenUNIX*|UnixWare*)
687 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
688 ;;
Neal Norwitzb44f1652003-05-26 14:11:55 +0000689 OSF*)
690 BASECFLAGS="$BASECFLAGS -ieee -std"
691 ;;
Skip Montanarodecc6a42003-01-01 20:07:49 +0000692 SCO_SV*)
693 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
694 ;;
695 esac
696 ;;
697esac
698
Fred Drakee1ceaa02001-12-04 20:55:47 +0000699if test "$Py_DEBUG" = 'true'; then
700 :
701else
702 OPT="-DNDEBUG $OPT"
703fi
704
Guido van Rossum6f2260e1996-09-09 16:21:03 +0000705if test "$ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000706then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000707 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
Guido van Rossumc5a39031996-07-31 17:35:03 +0000708fi
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000709
Guido van Rossum91922671997-10-09 20:24:13 +0000710AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
711AC_CACHE_VAL(ac_cv_opt_olimit_ok,
712[ac_save_cc="$CC"
713CC="$CC -OPT:Olimit=0"
714AC_TRY_RUN([int main() { return 0; }],
715 ac_cv_opt_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000716 ac_cv_opt_olimit_ok=no,
Guido van Rossum91922671997-10-09 20:24:13 +0000717 ac_cv_opt_olimit_ok=no)
718CC="$ac_save_cc"])
719AC_MSG_RESULT($ac_cv_opt_olimit_ok)
Guido van Rossum2efa34b1997-10-23 17:43:11 +0000720if test $ac_cv_opt_olimit_ok = yes; then
Guido van Rossum5839e582000-10-09 19:52:35 +0000721 case $ac_sys_system in
Skip Montanarodecc6a42003-01-01 20:07:49 +0000722 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
723 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
724 # environment?
725 Darwin*)
726 ;;
727 *)
728 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
729 ;;
Guido van Rossum5839e582000-10-09 19:52:35 +0000730 esac
Guido van Rossumf8678121998-07-07 21:05:09 +0000731else
732 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
733 AC_CACHE_VAL(ac_cv_olimit_ok,
734 [ac_save_cc="$CC"
735 CC="$CC -Olimit 1500"
736 AC_TRY_RUN([int main() { return 0; }],
737 ac_cv_olimit_ok=yes,
Guido van Rossum3065c942001-09-17 04:03:14 +0000738 ac_cv_olimit_ok=no,
Guido van Rossumf8678121998-07-07 21:05:09 +0000739 ac_cv_olimit_ok=no)
740 CC="$ac_save_cc"])
741 AC_MSG_RESULT($ac_cv_olimit_ok)
742 if test $ac_cv_olimit_ok = yes; then
Skip Montanarodecc6a42003-01-01 20:07:49 +0000743 BASECFLAGS="$BASECFLAGS -Olimit 1500"
Guido van Rossumf8678121998-07-07 21:05:09 +0000744 fi
Guido van Rossum201afe51997-05-14 21:14:44 +0000745fi
Guido van Rossumf8678121998-07-07 21:05:09 +0000746
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000747# On some compilers, pthreads are available without further options
748# (e.g. MacOS X). On some of these systems, the compiler will not
749# complain if unaccepted options are passed (e.g. gcc on Mac OS X).
750# So we have to see first whether pthreads are available without
751# options before we can check whether -Kpthread improves anything.
752AC_MSG_CHECKING(whether pthreads are available without options)
753AC_CACHE_VAL(ac_cv_pthread_is_default,
754[AC_TRY_RUN([
755#include <pthread.h>
756
757void* routine(void* p){return NULL;}
758
759int main(){
760 pthread_t p;
761 if(pthread_create(&p,NULL,routine,NULL)!=0)
762 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000763 (void)pthread_detach(p);
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000764 return 0;
765}
766],
Skip Montanarod8d39a02003-07-10 20:44:10 +0000767[
768 ac_cv_pthread_is_default=yes
769 ac_cv_kthread=no
770 ac_cv_pthread=no
771],
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000772 ac_cv_pthread_is_default=no,
773 ac_cv_pthread_is_default=no)
774])
775AC_MSG_RESULT($ac_cv_pthread_is_default)
776
777
778if test $ac_cv_pthread_is_default = yes
779then
780 ac_cv_kpthread=no
781else
Martin v. Löwis130fb172001-07-19 11:00:41 +0000782# -Kpthread, if available, provides the right #defines
783# and linker options to make pthread_create available
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000784# Some compilers won't report that they do not support -Kpthread,
785# so we need to run a program to see whether it really made the
786# function available.
Martin v. Löwis130fb172001-07-19 11:00:41 +0000787AC_MSG_CHECKING(whether $CC accepts -Kpthread)
788AC_CACHE_VAL(ac_cv_kpthread,
789[ac_save_cc="$CC"
790CC="$CC -Kpthread"
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000791AC_TRY_RUN([
792#include <pthread.h>
793
794void* routine(void* p){return NULL;}
795
796int main(){
797 pthread_t p;
798 if(pthread_create(&p,NULL,routine,NULL)!=0)
799 return 1;
Jack Jansen4f8d0542002-03-08 13:43:01 +0000800 (void)pthread_detach(p);
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000801 return 0;
802}
803],
Martin v. Löwis130fb172001-07-19 11:00:41 +0000804 ac_cv_kpthread=yes,
Martin v. Löwis260aecc2001-10-07 08:14:41 +0000805 ac_cv_kpthread=no,
Martin v. Löwis130fb172001-07-19 11:00:41 +0000806 ac_cv_kpthread=no)
807CC="$ac_save_cc"])
Martin v. Löwis130fb172001-07-19 11:00:41 +0000808AC_MSG_RESULT($ac_cv_kpthread)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +0000809fi
Martin v. Löwis130fb172001-07-19 11:00:41 +0000810
Skip Montanarod8d39a02003-07-10 20:44:10 +0000811if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis5f433f02003-05-05 05:05:30 +0000812then
813# -Kthread, if available, provides the right #defines
814# and linker options to make pthread_create available
815# Some compilers won't report that they do not support -Kthread,
816# so we need to run a program to see whether it really made the
817# function available.
818AC_MSG_CHECKING(whether $CC accepts -Kthread)
819AC_CACHE_VAL(ac_cv_kthread,
820[ac_save_cc="$CC"
821CC="$CC -Kthread"
822AC_TRY_RUN([
823#include <pthread.h>
824
825void* routine(void* p){return NULL;}
826
827int main(){
828 pthread_t p;
829 if(pthread_create(&p,NULL,routine,NULL)!=0)
830 return 1;
831 (void)pthread_detach(p);
832 return 0;
833}
834],
835 ac_cv_kthread=yes,
836 ac_cv_kthread=no,
837 ac_cv_kthread=no)
838CC="$ac_save_cc"])
839AC_MSG_RESULT($ac_cv_kthread)
840fi
841
Skip Montanarod8d39a02003-07-10 20:44:10 +0000842if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +0000843then
844# -pthread, if available, provides the right #defines
845# and linker options to make pthread_create available
846# Some compilers won't report that they do not support -pthread,
847# so we need to run a program to see whether it really made the
848# function available.
849AC_MSG_CHECKING(whether $CC accepts -pthread)
850AC_CACHE_VAL(ac_cv_thread,
851[ac_save_cc="$CC"
852CC="$CC -pthread"
853AC_TRY_RUN([
854#include <pthread.h>
855
856void* routine(void* p){return NULL;}
857
858int main(){
859 pthread_t p;
860 if(pthread_create(&p,NULL,routine,NULL)!=0)
861 return 1;
862 (void)pthread_detach(p);
863 return 0;
864}
865],
866 ac_cv_pthread=yes,
867 ac_cv_pthread=no,
868 ac_cv_pthread=no)
869CC="$ac_save_cc"])
870AC_MSG_RESULT($ac_cv_pthread)
871fi
872
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000873# If we have set a CC compiler flag for thread support then
874# check if it works for CXX, too.
875ac_cv_cxx_thread=no
876if test ! -z "$CXX"
877then
878AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
879ac_save_cxx="$CXX"
880
881if test "$ac_cv_kpthread" = "yes"
882then
Martin v. Löwis519adae2003-09-20 10:47:47 +0000883 CXX="$CXX -Kpthread"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000884 ac_cv_cxx_thread=yes
885elif test "$ac_cv_kthread" = "yes"
886then
887 CXX="$CXX -Kthread"
888 ac_cv_cxx_thread=yes
889elif test "$ac_cv_pthread" = "yes"
890then
891 CXX="$CXX -pthread"
892 ac_cv_cxx_thread=yes
893fi
894
895if test $ac_cv_cxx_thread = yes
896then
897 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
898 $CXX -c conftest.$ac_ext 2>&5
899 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
900 && test -s conftest$ac_exeext && ./conftest$ac_exeext
901 then
902 ac_cv_cxx_thread=yes
903 else
904 ac_cv_cxx_thread=no
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000905 fi
906 rm -fr conftest*
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000907fi
908fi
Martin v. Löwis519adae2003-09-20 10:47:47 +0000909CXX="$ac_save_cxx"
Martin v. Löwisab1e5852003-06-28 07:46:38 +0000910AC_MSG_RESULT($ac_cv_cxx_thread)
911
Fred Drakece81d592000-07-09 14:39:29 +0000912dnl # check for ANSI or K&R ("traditional") preprocessor
913dnl AC_MSG_CHECKING(for C preprocessor type)
914dnl AC_TRY_COMPILE([
915dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
916dnl int foo;
917dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
918dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
919dnl AC_MSG_RESULT($cpp_type)
Guido van Rossum300fda71996-08-19 21:58:16 +0000920
Guido van Rossum627b2d71993-12-24 10:39:16 +0000921# checks for header files
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000922AC_HEADER_STDC
Martin v. Löwis2e64c342002-03-27 18:49:02 +0000923AC_CHECK_HEADERS(dlfcn.h fcntl.h grp.h limits.h langinfo.h \
924libintl.h locale.h ncurses.h poll.h pthread.h \
Martin v. Löwis14e73b12003-01-01 09:51:12 +0000925signal.h stdarg.h stddef.h stdlib.h stropts.h termios.h thread.h \
926unistd.h utime.h \
Neal Norwitz82251032003-05-23 14:35:24 +0000927sys/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 +0000928sys/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 +0000929sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
Barry Warsawfe33b792003-01-07 22:42:49 +0000930sys/resource.h netpacket/packet.h sysexits.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000931AC_HEADER_DIRENT
Martin v. Löwisdbe3f762002-10-10 14:27:30 +0000932AC_HEADER_MAJOR
Guido van Rossum627b2d71993-12-24 10:39:16 +0000933
934# checks for typedefs
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000935was_it_defined=no
936AC_MSG_CHECKING(for clock_t in time.h)
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000937AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
938 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
939])
Guido van Rossum5739e7e1995-01-20 16:50:53 +0000940AC_MSG_RESULT($was_it_defined)
941
Neal Norwitz11690112002-07-30 01:08:28 +0000942# Check whether using makedev requires defining _OSF_SOURCE
943AC_MSG_CHECKING(for makedev)
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000944AC_TRY_LINK([#include <sys/types.h> ],
Neal Norwitz11690112002-07-30 01:08:28 +0000945 [ makedev(0, 0) ],
946 ac_cv_has_makedev=yes,
947 ac_cv_has_makedev=no)
948if test "$ac_cv_has_makedev" = "no"; then
949 # we didn't link, try if _OSF_SOURCE will allow us to link
950 AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +0000951#define _OSF_SOURCE 1
952#include <sys/types.h>
Neal Norwitz11690112002-07-30 01:08:28 +0000953 ],
954 [ makedev(0, 0) ],
955 ac_cv_has_makedev=yes,
956 ac_cv_has_makedev=no)
957 if test "$ac_cv_has_makedev" = "yes"; then
958 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
959 fi
960fi
961AC_MSG_RESULT($ac_cv_has_makedev)
962if test "$ac_cv_has_makedev" = "yes"; then
963 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
964fi
965
Martin v. Löwis399a6892002-10-04 10:22:02 +0000966# Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
967# the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
968# defined, but the compiler does not support pragma redefine_extname,
969# and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
970# structures (such as rlimit64) without declaring them. As a
971# work-around, disable LFS on such configurations
972
973use_lfs=yes
974AC_MSG_CHECKING(Solaris LFS bug)
975AC_TRY_COMPILE([
976#define _LARGEFILE_SOURCE 1
977#define _FILE_OFFSET_BITS 64
978#include <sys/resource.h>
979],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
980AC_MSG_RESULT($sol_lfs_bug)
981if test "$sol_lfs_bug" = "yes"; then
982 use_lfs=no
983fi
984
985if test "$use_lfs" = "yes"; then
Guido van Rossum810cc512001-09-09 23:51:39 +0000986# Two defines needed to enable largefile support on various platforms
987# These may affect some typedefs
Martin v. Löwisc45929e2002-04-06 10:10:49 +0000988AC_DEFINE(_LARGEFILE_SOURCE, 1,
989[This must be defined on some systems to enable large file support.])
990AC_DEFINE(_FILE_OFFSET_BITS, 64,
991[This must be set to 64 on some systems to enable large file support.])
Martin v. Löwis399a6892002-10-04 10:22:02 +0000992fi
Guido van Rossum810cc512001-09-09 23:51:39 +0000993
Guido van Rossum300fda71996-08-19 21:58:16 +0000994# Add some code to confdefs.h so that the test for off_t works on SCO
995cat >> confdefs.h <<\EOF
996#if defined(SCO_DS)
997#undef _OFF_T
998#endif
999EOF
1000
Guido van Rossumef2255b2000-03-10 22:30:29 +00001001# Type availability checks
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001002AC_TYPE_MODE_T
1003AC_TYPE_OFF_T
1004AC_TYPE_PID_T
1005AC_TYPE_SIGNAL
1006AC_TYPE_SIZE_T
1007AC_TYPE_UID_T
Guido van Rossum627b2d71993-12-24 10:39:16 +00001008
Guido van Rossumef2255b2000-03-10 22:30:29 +00001009# Sizes of various common basic types
Skip Montanarob9820a32004-01-17 00:16:12 +00001010# ANSI C requires sizeof(char) == 1, so no need to check it
Guido van Rossum3065c942001-09-17 04:03:14 +00001011AC_CHECK_SIZEOF(int, 4)
1012AC_CHECK_SIZEOF(long, 4)
1013AC_CHECK_SIZEOF(void *, 4)
Guido van Rossum3065c942001-09-17 04:03:14 +00001014AC_CHECK_SIZEOF(short, 2)
1015AC_CHECK_SIZEOF(float, 4)
1016AC_CHECK_SIZEOF(double, 8)
1017AC_CHECK_SIZEOF(fpos_t, 4)
Guido van Rossumac405f61994-09-12 10:56:06 +00001018
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001019AC_MSG_CHECKING(for long long support)
1020have_long_long=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001021AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1022 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1023 have_long_long=yes
1024])
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001025AC_MSG_RESULT($have_long_long)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001026if test "$have_long_long" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001027AC_CHECK_SIZEOF(long long, 8)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001028fi
1029
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001030AC_MSG_CHECKING(for uintptr_t support)
1031have_uintptr_t=no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001032AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1033 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1034 have_uintptr_t=yes
1035])
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001036AC_MSG_RESULT($have_uintptr_t)
1037if test "$have_uintptr_t" = yes ; then
Guido van Rossum3065c942001-09-17 04:03:14 +00001038AC_CHECK_SIZEOF(uintptr_t, 4)
Barry Warsawbc7c7f92000-08-18 04:53:33 +00001039fi
1040
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001041# Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1042AC_MSG_CHECKING(size of off_t)
1043AC_CACHE_VAL(ac_cv_sizeof_off_t,
1044[AC_TRY_RUN([#include <stdio.h>
1045#include <sys/types.h>
1046main()
1047{
1048 FILE *f=fopen("conftestval", "w");
1049 if (!f) exit(1);
1050 fprintf(f, "%d\n", sizeof(off_t));
1051 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001052}],
1053ac_cv_sizeof_off_t=`cat conftestval`,
1054ac_cv_sizeof_off_t=0,
1055ac_cv_sizeof_off_t=4)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001056])
1057AC_MSG_RESULT($ac_cv_sizeof_off_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001058AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1059[The number of bytes in an off_t.])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001060
1061AC_MSG_CHECKING(whether to enable large file support)
Guido van Rossum8bc1dfd1999-04-10 16:01:48 +00001062if test "$have_long_long" = yes -a \
1063 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1064 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001065 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1066 [Defined to enable large file support when an off_t is bigger than a long
1067 and long long is available and at least as big as an off_t. You may need
1068 to add some flags for configuration and compilation to enable this mode.
1069 (For Solaris and Linux, the necessary defines are already defined.)])
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001070 AC_MSG_RESULT(yes)
1071else
1072 AC_MSG_RESULT(no)
1073fi
1074
Fred Drakea3f6e912000-06-29 20:44:47 +00001075# AC_CHECK_SIZEOF() doesn't include <time.h>.
1076AC_MSG_CHECKING(size of time_t)
1077AC_CACHE_VAL(ac_cv_sizeof_time_t,
1078[AC_TRY_RUN([#include <stdio.h>
1079#include <time.h>
1080main()
1081{
1082 FILE *f=fopen("conftestval", "w");
1083 if (!f) exit(1);
1084 fprintf(f, "%d\n", sizeof(time_t));
1085 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001086}],
1087ac_cv_sizeof_time_t=`cat conftestval`,
1088ac_cv_sizeof_time_t=0,
1089ac_cv_sizeof_time_t=4)
Fred Drakea3f6e912000-06-29 20:44:47 +00001090])
1091AC_MSG_RESULT($ac_cv_sizeof_time_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001092AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1093[The number of bytes in a time_t.])
Fred Drakea3f6e912000-06-29 20:44:47 +00001094
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00001095
Trent Mick635f6fb2000-08-23 21:33:05 +00001096# if have pthread_t then define SIZEOF_PTHREAD_T
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001097ac_save_cc="$CC"
1098if test "$ac_cv_kpthread" = "yes"
1099then CC="$CC -Kpthread"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001100elif test "$ac_cv_kthread" = "yes"
1101then CC="$CC -Kthread"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001102elif test "$ac_cv_pthread" = "yes"
1103then CC="$CC -pthread"
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001104fi
Trent Mick635f6fb2000-08-23 21:33:05 +00001105AC_MSG_CHECKING(for pthread_t)
1106have_pthread_t=no
Guido van Rossum12580492000-09-24 16:47:19 +00001107AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
Trent Mick635f6fb2000-08-23 21:33:05 +00001108AC_MSG_RESULT($have_pthread_t)
1109if test "$have_pthread_t" = yes ; then
1110 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1111 AC_MSG_CHECKING(size of pthread_t)
1112 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1113 [AC_TRY_RUN([#include <stdio.h>
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001114#include <pthread.h>
Trent Mick635f6fb2000-08-23 21:33:05 +00001115 main()
1116 {
1117 FILE *f=fopen("conftestval", "w");
1118 if (!f) exit(1);
1119 fprintf(f, "%d\n", sizeof(pthread_t));
1120 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001121 }],
1122 ac_cv_sizeof_pthread_t=`cat conftestval`,
1123 ac_cv_sizeof_pthread_t=0,
1124 ac_cv_sizeof_pthread_t=4)
Trent Mick635f6fb2000-08-23 21:33:05 +00001125 ])
1126 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001127 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1128 [The number of bytes in a pthread_t.])
Trent Mick635f6fb2000-08-23 21:33:05 +00001129fi
Martin v. Löwis123cbd22001-07-19 14:21:10 +00001130CC="$ac_save_cc"
Trent Mick635f6fb2000-08-23 21:33:05 +00001131
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001132AC_MSG_CHECKING(for --enable-toolbox-glue)
1133AC_ARG_ENABLE(toolbox-glue,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001134 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001135
1136if test -z "$enable_toolbox_glue"
1137then
1138 case $ac_sys_system/$ac_sys_release in
1139 Darwin/*)
1140 enable_toolbox_glue="yes";;
1141 *)
1142 enable_toolbox_glue="no";;
1143 esac
1144fi
1145case "$enable_toolbox_glue" in
1146yes)
Jack Jansen666b1e72001-10-31 12:11:48 +00001147 extra_frameworks="-framework CoreServices -framework Foundation"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001148 extra_machdep_objs="Python/mactoolboxglue.o"
Jack Jansen591cbed2001-08-15 13:55:15 +00001149 extra_undefs="-u __dummy -u _PyMac_Error"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001150 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1151 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001152 ;;
1153*)
1154 extra_frameworks=""
1155 extra_machdep_objs=""
Jack Jansen591cbed2001-08-15 13:55:15 +00001156 extra_undefs=""
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001157 ;;
1158esac
1159AC_MSG_RESULT($enable_toolbox_glue)
1160
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001161AC_SUBST(LIBTOOL_CRUFT)
1162case $ac_sys_system/$ac_sys_release in
Jack Jansen418c3b12001-11-14 10:59:57 +00001163 Darwin/1.3*)
Jack Jansenea0c3822002-08-01 21:57:49 +00001164 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
Jack Jansen418c3b12001-11-14 10:59:57 +00001165 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
Jack Jansen66b84832003-07-04 12:14:39 +00001166 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python'
Jack Jansena3891ea2001-09-07 14:25:12 +00001167 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum5839e582000-10-09 19:52:35 +00001168 Darwin/*)
Jack Jansenea0c3822002-08-01 21:57:49 +00001169 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
Jack Jansen418c3b12001-11-14 10:59:57 +00001170 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
Jack Jansen66b84832003-07-04 12:14:39 +00001171 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001172 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001173esac
1174
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001175AC_MSG_CHECKING(for --enable-framework)
1176if test "$enable_framework"
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001177then
Skip Montanarodecc6a42003-01-01 20:07:49 +00001178 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001179 # -F. is needed to allow linking to the framework while
1180 # in the build location.
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001181 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1182 [Define if you want to produce an OpenStep/Rhapsody framework
1183 (shared library plus accessory files).])
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001184 AC_MSG_RESULT(yes)
1185else
1186 AC_MSG_RESULT(no)
1187fi
1188
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001189AC_MSG_CHECKING(for dyld)
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001190case $ac_sys_system/$ac_sys_release in
1191 Darwin/*)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001192 AC_DEFINE(WITH_DYLD, 1,
1193 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1194 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1195 linker (rld). Dyld is necessary to support frameworks.])
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001196 AC_MSG_RESULT(always on for Darwin)
1197 ;;
1198 *)
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001199 AC_MSG_RESULT(no)
1200 ;;
Jack Jansen9a66b6d2001-08-08 13:56:14 +00001201esac
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001202
Guido van Rossumac405f61994-09-12 10:56:06 +00001203# Set info about shared libraries.
Guido van Rossumac405f61994-09-12 10:56:06 +00001204AC_SUBST(SO)
1205AC_SUBST(LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001206AC_SUBST(BLDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001207AC_SUBST(CCSHARED)
1208AC_SUBST(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001209# SO is the extension of shared libraries `(including the dot!)
Guido van Rossumaef734b2001-01-10 21:09:12 +00001210# -- usually .so, .sl on HP-UX, .dll on Cygwin
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001211AC_MSG_CHECKING(SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001212if test -z "$SO"
1213then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001214 case $ac_sys_system in
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001215 hp*|HP*) SO=.sl;;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001216 CYGWIN*) SO=.dll;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00001217 *) SO=.so;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001218 esac
Martin v. Löwis368de8f2003-06-14 14:46:38 +00001219else
1220 # this might also be a termcap variable, see #610332
1221 echo
1222 echo '====================================================================='
1223 echo '+ +'
1224 echo '+ WARNING: You have set SO in your environment. +'
1225 echo '+ Do you really mean to change the extension for shared libraries? +'
1226 echo '+ Continuing in 10 seconds to let you to ponder. +'
1227 echo '+ +'
1228 echo '====================================================================='
1229 sleep 10
Guido van Rossumac405f61994-09-12 10:56:06 +00001230fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001231AC_MSG_RESULT($SO)
Guido van Rossumac405f61994-09-12 10:56:06 +00001232# LDSHARED is the ld *command* used to create shared library
Martin v. Löwis5b718fc2001-09-10 15:34:42 +00001233# -- "ld" on SunOS 4.x.x, "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001234# (Shared libraries in this instance are shared modules to be loaded into
1235# Python, as opposed to building Python itself as a shared library.)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001236AC_MSG_CHECKING(LDSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001237if test -z "$LDSHARED"
1238then
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001239 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001240 AIX*)
1241 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
Guido van Rossumce608b02001-09-28 15:59:38 +00001242 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001243 ;;
1244 BeOS*)
1245 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
Guido van Rossumce608b02001-09-28 15:59:38 +00001246 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001247 ;;
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001248 IRIX/5*) LDSHARED="ld -shared";;
Guido van Rossum91922671997-10-09 20:24:13 +00001249 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001250 SunOS/4*) LDSHARED="ld";;
Greg Ward57c9a6632000-05-26 12:22:54 +00001251 SunOS/5*)
1252 if test "$GCC" = "yes"
Neil Schemenauer95052722001-02-19 18:17:33 +00001253 then LDSHARED='$(CC) -shared'
Martin v. Löwisaa5afe12002-10-07 06:21:41 +00001254 else LDSHARED='$(CC) -G';
Greg Ward57c9a6632000-05-26 12:22:54 +00001255 fi ;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001256 hp*|HP*) LDSHARED="ld -b";;
Guido van Rossum71001e41995-01-26 00:44:03 +00001257 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
Guido van Rossum7d473291995-01-20 14:12:16 +00001258 DYNIX/ptx*) LDSHARED="ld -G";;
Jack Jansen418c3b12001-11-14 10:59:57 +00001259 Darwin/1.3*)
Jack Jansena3891ea2001-09-07 14:25:12 +00001260 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1261 if test "$enable_framework" ; then
1262 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001263 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1264 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansena3891ea2001-09-07 14:25:12 +00001265 else
1266 # No framework. Ignore undefined symbols, assuming they come from Python
Jack Jansen418c3b12001-11-14 10:59:57 +00001267 LDSHARED="$LDSHARED -undefined suppress"
Jack Jansena3891ea2001-09-07 14:25:12 +00001268 fi ;;
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001269 Darwin/*)
1270 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1271 if test "$enable_framework" ; then
1272 # Link against the framework. All externals should be defined.
Jack Jansenc8607b72003-12-08 01:10:12 +00001273 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1274 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001275 else
Michael W. Hudson0c46c0c2002-03-07 09:58:56 +00001276 # No framework, use the Python app as bundle-loader
1277 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
Jack Jansenc28fc372003-02-25 13:14:43 +00001278 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001279 fi ;;
Martin v. Löwis3cba5c02002-09-16 17:50:59 +00001280 Linux*|GNU*) LDSHARED='$(CC) -shared';;
Guido van Rossum3c4bb801997-12-18 23:55:32 +00001281 dgux*) LDSHARED="ld -G";;
Guido van Rossum458e7fa1999-09-17 15:40:40 +00001282 BSD/OS*/4*) LDSHARED="gcc -shared";;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001283 OpenBSD*|FreeBSD*)
Jeremy Hylton4bcc7c52000-08-31 17:45:35 +00001284 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
Guido van Rossum0286ae82000-08-29 15:06:49 +00001285 then
1286 LDSHARED="cc -shared ${LDFLAGS}"
1287 else
1288 LDSHARED="ld -Bshareable ${LDFLAGS}"
1289 fi;;
Martin v. Löwisd61888b2002-09-30 11:17:27 +00001290 NetBSD*) LDSHARED="cc -shared ${LDFLAGS}";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001291 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001292 if test "$GCC" = "yes"
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001293 then LDSHARED='$(CC) -shared'
1294 else LDSHARED='$(CC) -G'
Martin v. Löwisbec19582001-03-21 15:57:54 +00001295 fi;;
Martin v. Löwis79f3c532002-12-11 12:51:58 +00001296 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
Trent Mick635f6fb2000-08-23 21:33:05 +00001297 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
Guido van Rossumaef734b2001-01-10 21:09:12 +00001298 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001299 atheos*) LDSHARED="gcc -shared";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001300 *) LDSHARED="ld";;
1301 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001302fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001303AC_MSG_RESULT($LDSHARED)
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001304BLDSHARED=${BLDSHARED-$LDSHARED}
Guido van Rossumac405f61994-09-12 10:56:06 +00001305# CCSHARED are the C *flags* used to create objects to go into a shared
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001306# library (module) -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001307AC_MSG_CHECKING(CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001308if test -z "$CCSHARED"
1309then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001310 case $ac_sys_system/$ac_sys_release in
Neil Schemenauer66252162001-02-19 04:47:42 +00001311 SunOS*) if test "$GCC" = yes;
1312 then CCSHARED="-fPIC";
1313 fi;;
Guido van Rossumaf07a441995-02-13 19:45:27 +00001314 hp*|HP*) if test "$GCC" = yes;
Martin v. Löwis703ad702001-09-05 08:36:52 +00001315 then CCSHARED="-fPIC";
Guido van Rossumaf07a441995-02-13 19:45:27 +00001316 else CCSHARED="+z";
1317 fi;;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001318 Linux*|GNU*) CCSHARED="-fPIC";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001319 BSD/OS*/4*) CCSHARED="-fpic";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001320 FreeBSD*|NetBSD*|OpenBSD*) CCSHARED="-fPIC";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001321 OpenUNIX*|UnixWare*)
Martin v. Löwisbec19582001-03-21 15:57:54 +00001322 if test "$GCC" = "yes"
1323 then CCSHARED="-fPIC"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001324 else CCSHARED="-KPIC"
Martin v. Löwisbec19582001-03-21 15:57:54 +00001325 fi;;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001326 SCO_SV*)
1327 if test "$GCC" = "yes"
1328 then CCSHARED="-fPIC"
1329 else CCSHARED="-Kpic -belf"
1330 fi;;
Trent Mick635f6fb2000-08-23 21:33:05 +00001331 Monterey*) CCSHARED="-G";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001332 IRIX*/6*) case $CC in
1333 *gcc*) CCSHARED="-shared";;
Guido van Rossumee21f411998-04-20 18:51:54 +00001334 *) CCSHARED="";;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001335 esac;;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001336 atheos*) CCSHARED="-fPIC";;
Guido van Rossumac405f61994-09-12 10:56:06 +00001337 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001338fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001339AC_MSG_RESULT($CCSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001340# LINKFORSHARED are the flags passed to the $(CC) command that links
Guido van Rossumb65a48e1995-06-14 18:21:23 +00001341# the python executable -- this is only needed for a few systems
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001342AC_MSG_CHECKING(LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001343if test -z "$LINKFORSHARED"
1344then
Guido van Rossum6100aaf1997-04-29 21:48:51 +00001345 case $ac_sys_system/$ac_sys_release in
Neil Schemenauerb3531b82001-02-16 04:09:05 +00001346 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
Guido van Rossum5dab3d81996-12-06 21:18:18 +00001347 hp*|HP*)
Martin v. Löwis1142de32002-03-29 16:28:31 +00001348 LINKFORSHARED="-Wl,-E -Wl,+s";;
1349# LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
Guido van Rossumf5957ea1999-10-05 21:59:33 +00001350 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001351 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
Guido van Rossum54ecc3d1999-01-27 17:53:11 +00001352 # -u libsys_s pulls in all symbols in libsys
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001353 Darwin/*)
1354 # -u __dummy makes the linker aware of the objc runtime
1355 # in System.framework; otherwise, __objcInit (referenced in
1356 # crt1.o) gets erroneously defined as common, which breaks dynamic
1357 # loading of any modules which reference it in System.framework.
1358 # -u _PyMac_Error is needed to pull in the mac toolbox glue, which is
1359 # not used by the core itself but which needs to be in the core so
1360 # that dynamically loaded extension modules have access to it.
Jack Jansen97e3f002003-02-23 22:59:01 +00001361 # -prebind is no longer used, because it actually seems to give a
1362 # slowdown in stead of a speedup, maybe due to the large number of
1363 # dynamic loads Python does.
1364 LINKFORSHARED="$extra_undefs -framework System"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001365 if test "$enable_framework"
1366 then
Jack Jansenc8607b72003-12-08 01:10:12 +00001367 LINKFORSHARED="$LINKFORSHARED -Wl,-F. -framework Python"
Jack Jansenb6e9cad2001-08-15 01:26:28 +00001368 fi
1369 LINKFORSHARED="$LINKFORSHARED $extra_frameworks";;
Martin v. Löwis25ae43b2001-10-07 08:39:18 +00001370 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
Martin v. Löwis21ee4092002-09-30 16:19:48 +00001371 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
Fred Drake02706f52000-09-25 15:08:46 +00001372 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
Martin v. Löwis36546db2001-09-05 14:24:43 +00001373 FreeBSD*|NetBSD*|OpenBSD*)
Guido van Rossumdf693651999-01-07 21:50:41 +00001374 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1375 then
1376 LINKFORSHARED="-Wl,--export-dynamic"
1377 fi;;
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001378 SunOS/5*) case $CC in
1379 *gcc*)
Martin v. Löwisa4548572002-04-18 14:51:36 +00001380 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
Guido van Rossum8f4ceb11997-12-18 23:42:19 +00001381 then
1382 LINKFORSHARED="-Xlinker --export-dynamic"
Guido van Rossum2b5ca001998-03-05 15:41:09 +00001383 fi;;
1384 esac;;
Jason Tishler30765592003-09-04 11:04:06 +00001385 CYGWIN*)
1386 if test $enable_shared = "no"
1387 then
1388 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1389 fi;;
Guido van Rossumac405f61994-09-12 10:56:06 +00001390 esac
Guido van Rossumac405f61994-09-12 10:56:06 +00001391fi
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001392AC_MSG_RESULT($LINKFORSHARED)
Guido van Rossumac405f61994-09-12 10:56:06 +00001393
Neil Schemenauer61c51152001-01-26 16:18:16 +00001394AC_SUBST(CFLAGSFORSHARED)
1395AC_MSG_CHECKING(CFLAGSFORSHARED)
1396if test ! "$LIBRARY" = "$LDLIBRARY"
1397then
Neil Schemenauerd9cf41c2001-01-27 21:39:17 +00001398 case $ac_sys_system in
1399 CYGWIN*)
1400 # Cygwin needs CCSHARED when building extension DLLs
1401 # but not when building the interpreter DLL.
1402 CFLAGSFORSHARED='';;
1403 *)
1404 CFLAGSFORSHARED='$(CCSHARED)'
1405 esac
Neil Schemenauer61c51152001-01-26 16:18:16 +00001406fi
1407AC_MSG_RESULT($CFLAGSFORSHARED)
1408
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001409# SHLIBS are libraries (except -lc and -lm) to link to the python shared
1410# library (with --enable-shared).
1411# For platforms on which shared libraries are not allowed to have unresolved
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001412# symbols, this must be set to $(LIBS) (expanded by make). We do this even
1413# if it is not required, since it creates a dependency of the shared library
1414# to LIBS. This, in turn, means that applications linking the shared libpython
1415# don't need to link LIBS explicitly. The default should be only changed
1416# on systems where this approach causes problems.
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001417AC_SUBST(SHLIBS)
1418AC_MSG_CHECKING(SHLIBS)
1419case "$ac_sys_system" in
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001420 *)
Martin v. Löwisd6359c52002-08-04 12:38:50 +00001421 SHLIBS='$(LIBS)';;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001422esac
1423AC_MSG_RESULT($SHLIBS)
1424
1425
Guido van Rossum627b2d71993-12-24 10:39:16 +00001426# checks for libraries
Guido van Rossum76be6ed1995-01-02 18:33:54 +00001427AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1428AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
Martin v. Löwis519adae2003-09-20 10:47:47 +00001429
1430# only check for sem_ini if thread support is requested
1431if test "$with_threads" = "yes" -o -z "$with_threads"; then
1432 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1433 # posix4 on Solaris 2.6
1434 # pthread (first!) on Linux
1435fi
1436
Martin v. Löwis19d17342003-06-14 21:03:05 +00001437# check if we need libintl for locale functions
1438AC_CHECK_LIB(intl, textdomain,
1439 AC_DEFINE(WITH_LIBINTL, 1,
1440 [Define to 1 if libintl is needed for locale functions.]))
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001441
1442# checks for system dependent C++ extensions support
1443case "$ac_sys_system" in
1444 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1445 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1446 [loadAndInit("", 0, "")],
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001447 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1448 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1449 and you want support for AIX C++ shared extension modules.])
Guido van Rossum0eefa3f1999-11-16 15:57:37 +00001450 AC_MSG_RESULT(yes)],
1451 [AC_MSG_RESULT(no)]);;
1452 *) ;;
1453esac
1454
Guido van Rossum70c7f481998-03-26 18:44:10 +00001455# Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
Martin v. Löwise1172582002-11-13 08:51:19 +00001456# However on SGI IRIX 4, these exist but are broken.
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001457# BeOS' sockets are stashed in libnet.
1458case "$ac_sys_system" in
1459IRIX*) ;;
Guido van Rossum2cb56601998-05-07 13:25:56 +00001460*)
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001461AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
Guido van Rossumf618d2c1995-01-17 16:36:13 +00001462AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
Jeremy Hyltoncb25d5e2000-07-27 21:23:28 +00001463;;
1464esac
1465case "$ac_sys_system" in
1466BeOS*)
Guido van Rossumec95c7b1998-08-04 17:59:56 +00001467AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1468;;
1469esac
Guido van Rossum70c7f481998-03-26 18:44:10 +00001470
Guido van Rossumc5a39031996-07-31 17:35:03 +00001471AC_MSG_CHECKING(for --with-libs)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001472AC_ARG_WITH(libs,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001473 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1474[
Guido van Rossumc5a39031996-07-31 17:35:03 +00001475AC_MSG_RESULT($withval)
1476LIBS="$withval $LIBS"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001477],
1478[AC_MSG_RESULT(no)])
Guido van Rossum627b2d71993-12-24 10:39:16 +00001479
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001480# Determine if signalmodule should be used.
1481AC_SUBST(USE_SIGNAL_MODULE)
1482AC_SUBST(SIGNAL_OBJS)
1483AC_MSG_CHECKING(for --with-signal-module)
1484AC_ARG_WITH(signal-module,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001485 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00001486
1487if test -z "$with_signal_module"
1488then with_signal_module="yes"
1489fi
1490AC_MSG_RESULT($with_signal_module)
1491
1492if test "${with_signal_module}" = "yes"; then
1493 USE_SIGNAL_MODULE=""
1494 SIGNAL_OBJS=""
1495else
1496 USE_SIGNAL_MODULE="#"
1497 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1498fi
1499
Guido van Rossum3d15bd82001-01-10 18:53:48 +00001500# This is used to generate Setup.config
Guido van Rossum009f7871997-12-04 00:51:42 +00001501AC_SUBST(USE_THREAD_MODULE)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001502USE_THREAD_MODULE=""
Guido van Rossum009f7871997-12-04 00:51:42 +00001503
Guido van Rossum54d93d41997-01-22 20:51:58 +00001504AC_MSG_CHECKING(for --with-dec-threads)
1505AC_SUBST(LDLAST)
1506AC_ARG_WITH(dec-threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001507 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1508[
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001509AC_MSG_RESULT($withval)
Guido van Rossum54d93d41997-01-22 20:51:58 +00001510LDLAST=-threads
Guido van Rossumf78abae1997-01-21 22:02:36 +00001511if test "${with_thread+set}" != set; then
Guido van Rossum54d93d41997-01-22 20:51:58 +00001512 with_thread="$withval";
1513fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001514[AC_MSG_RESULT(no)])
Guido van Rossum54d93d41997-01-22 20:51:58 +00001515
Martin v. Löwis11437992002-04-12 09:54:03 +00001516# Templates for things AC_DEFINEd more than once.
1517# For a single AC_DEFINE, no template is needed.
1518AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1519AH_TEMPLATE(_REENTRANT,
1520 [Define to force use of thread-safe errno, h_errno, and other functions])
1521AH_TEMPLATE(WITH_THREAD,
1522 [Define if you want to compile in rudimentary thread support])
1523
Guido van Rossum54d93d41997-01-22 20:51:58 +00001524AC_MSG_CHECKING(for --with-threads)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001525dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001526AC_ARG_WITH(threads,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001527 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
Guido van Rossum54d93d41997-01-22 20:51:58 +00001528
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001529# --with-thread is deprecated, but check for it anyway
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001530dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Barry Warsawa0f3c5c2000-06-30 16:39:35 +00001531AC_ARG_WITH(thread,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001532 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1533 [with_threads=$with_thread])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001534
1535if test -z "$with_threads"
1536then with_threads="yes"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001537fi
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001538AC_MSG_RESULT($with_threads)
Guido van Rossum6400c261997-05-22 20:34:27 +00001539
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001540AC_SUBST(THREADOBJ)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001541if test "$with_threads" = "no"
1542then
1543 USE_THREAD_MODULE="#"
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001544elif test "$ac_cv_pthread_is_default" = yes
1545then
1546 AC_DEFINE(WITH_THREAD)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001547 # Defining _REENTRANT on system with POSIX threads should not hurt.
1548 AC_DEFINE(_REENTRANT)
1549 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001550 THREADOBJ="Python/thread.o"
Martin v. Löwis130fb172001-07-19 11:00:41 +00001551elif test "$ac_cv_kpthread" = "yes"
1552then
1553 CC="$CC -Kpthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001554 if test "$ac_cv_cxx_thread" = "yes"; then
1555 CXX="$CXX -Kpthread"
1556 fi
Martin v. Löwis130fb172001-07-19 11:00:41 +00001557 AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001558 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001559 THREADOBJ="Python/thread.o"
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001560elif test "$ac_cv_kthread" = "yes"
1561then
1562 CC="$CC -Kthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001563 if test "$ac_cv_cxx_thread" = "yes"; then
1564 CXX="$CXX -Kthread"
1565 fi
Martin v. Löwis5f433f02003-05-05 05:05:30 +00001566 AC_DEFINE(WITH_THREAD)
1567 posix_threads=yes
1568 THREADOBJ="Python/thread.o"
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001569elif test "$ac_cv_pthread" = "yes"
1570then
1571 CC="$CC -pthread"
Martin v. Löwis519adae2003-09-20 10:47:47 +00001572 if test "$ac_cv_cxx_thread" = "yes"; then
1573 CXX="$CXX -pthread"
1574 fi
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001575 AC_DEFINE(WITH_THREAD)
1576 posix_threads=yes
1577 THREADOBJ="Python/thread.o"
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001578else
Martin v. Löwis130fb172001-07-19 11:00:41 +00001579 if test ! -z "$with_threads" -a -d "$with_threads"
1580 then LDFLAGS="$LDFLAGS -L$with_threads"
1581 fi
1582 if test ! -z "$withval" -a -d "$withval"
1583 then LDFLAGS="$LDFLAGS -L$withval"
1584 fi
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001585
1586 # According to the POSIX spec, a pthreads implementation must
1587 # define _POSIX_THREADS in unistd.h. Some apparently don't (which ones?)
1588 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1589 AC_EGREP_CPP(yes,
Neal Norwitz6eb37f02003-02-23 23:28:15 +00001590 [
1591#include <unistd.h>
1592#ifdef _POSIX_THREADS
1593yes
1594#endif
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001595 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1596 AC_MSG_RESULT($unistd_defines_pthreads)
1597
Martin v. Löwis130fb172001-07-19 11:00:41 +00001598 AC_DEFINE(_REENTRANT)
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001599 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1600 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001601 AC_DEFINE(HURD_C_THREADS, 1,
1602 [Define if you are using Mach cthreads directly under /include])
Martin v. Löwisa6e97582002-01-01 18:41:33 +00001603 LIBS="$LIBS -lthreads"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001604 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001605 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1606 AC_DEFINE(C_THREADS)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001607 AC_DEFINE(MACH_C_THREADS, 1,
1608 [Define if you are using Mach cthreads under mach /])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001609 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001610 AC_MSG_CHECKING(for --with-pth)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001611 AC_ARG_WITH([pth],
1612 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1613 [AC_MSG_RESULT($withval)
1614 AC_DEFINE([WITH_THREAD])
1615 AC_DEFINE([HAVE_PTH], 1,
1616 [Define if you have GNU PTH threads.])
1617 LIBS="-lpth $LIBS"
1618 THREADOBJ="Python/thread.o"],
1619 [AC_MSG_RESULT(no)
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001620
1621 # Just looking for pthread_create in libpthread is not enough:
1622 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1623 # So we really have to include pthread.h, and then link.
1624 _libs=$LIBS
1625 LIBS="$LIBS -lpthread"
1626 AC_MSG_CHECKING([for pthread_create in -lpthread])
1627 AC_TRY_LINK([#include <pthread.h>
1628
1629void * start_routine (void *arg) { exit (0); }], [
1630pthread_create (NULL, NULL, start_routine, NULL)], [
1631 AC_MSG_RESULT(yes)
1632 AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001633 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001634 THREADOBJ="Python/thread.o"],[
Martin v. Löwis8158b5a2001-10-08 13:17:28 +00001635 LIBS=$_libs
Martin v. Löwis130fb172001-07-19 11:00:41 +00001636 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001637 posix_threads=yes
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001638 THREADOBJ="Python/thread.o"],[
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001639 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1640 AC_DEFINE(ATHEOS_THREADS, 1,
1641 [Define this if you have AtheOS threads.])
1642 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001643 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001644 AC_DEFINE(BEOS_THREADS, 1,
1645 [Define this if you have BeOS threads.])
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001646 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001647 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001648 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001649 LIBS="$LIBS -lpthreads"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001650 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001651 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001652 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001653 LIBS="$LIBS -lc_r"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001654 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001655 AC_CHECK_LIB(thread, __d6_pthread_create, [AC_DEFINE(WITH_THREAD)
Martin v. Löwis779ffc02002-12-02 22:17:01 +00001656 echo Systems with __d6_pthread_create are not supported anymore.
1657 echo See README
1658 exit 1
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001659 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001660 LIBS="$LIBS -lthread"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001661 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001662 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001663 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001664 LIBS="$LIBS -lpthread"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001665 THREADOBJ="Python/thread.o"], [
Martin v. Löwis130fb172001-07-19 11:00:41 +00001666 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001667 posix_threads=yes
Martin v. Löwis130fb172001-07-19 11:00:41 +00001668 LIBS="$LIBS -lcma"
Martin v. Löwis2d7e2642002-04-05 16:50:53 +00001669 THREADOBJ="Python/thread.o"],[
Martin v. Löwis130fb172001-07-19 11:00:41 +00001670 USE_THREAD_MODULE="#"])
Martin v. Löwisf90ae202002-06-11 06:22:31 +00001671 ])])])])])])])])])])])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001672
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001673 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1674 LIBS="$LIBS -lmpc"
1675 THREADOBJ="Python/thread.o"
1676 USE_THREAD_MODULE=""])
1677
1678 if test "$posix_threads" != "yes"; then
1679 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1680 LIBS="$LIBS -lthread"
1681 THREADOBJ="Python/thread.o"
1682 USE_THREAD_MODULE=""])
1683 fi
1684
1685 if test "$USE_THREAD_MODULE" != "#"
1686 then
1687 # If the above checks didn't disable threads, (at least) OSF1
1688 # needs this '-threads' argument during linking.
1689 case $ac_sys_system in
1690 OSF1) LDLAST=-threads;;
1691 esac
1692 fi
1693fi
1694
1695if test "$posix_threads" = "yes"; then
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001696 if test "$unistd_defines_pthreads" = "no"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001697 AC_DEFINE(_POSIX_THREADS, 1,
1698 [Define if you have POSIX threads,
1699 and your system does not define that.])
Martin v. Löwis69c0ff32001-10-15 14:34:42 +00001700 fi
1701
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001702 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1703 case $ac_sys_system/$ac_sys_release in
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001704 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1705 Defined for Solaris 2.6 bug in pthread header.)
1706 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001707 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001708 Define if the Posix semaphores do not work on your system)
1709 ;;
Martin v. Löwisdfc33fd2003-01-21 10:14:41 +00001710 esac
1711
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001712 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1713 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1714 [AC_TRY_RUN([#include <pthread.h>
1715 void *foo(void *parm) {
1716 return NULL;
1717 }
1718 main() {
1719 pthread_attr_t attr;
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001720 pthread_t id;
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001721 if (pthread_attr_init(&attr)) exit(-1);
1722 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
Martin v. Löwisa82d3472002-02-24 16:05:05 +00001723 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001724 exit(0);
Guido van Rossum3065c942001-09-17 04:03:14 +00001725 }],
1726 ac_cv_pthread_system_supported=yes,
1727 ac_cv_pthread_system_supported=no,
1728 ac_cv_pthread_system_supported=no)
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001729 ])
1730 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1731 if test "$ac_cv_pthread_system_supported" = "yes"; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001732 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
Guido van Rossumd0b69ec2001-09-10 14:10:54 +00001733 fi
Jason Tishlerfac083d2003-07-22 15:20:49 +00001734 AC_CHECK_FUNCS(pthread_sigmask,
1735 [case $ac_sys_system in
1736 CYGWIN*)
1737 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1738 [Define if pthread_sigmask() does not work on your system.])
1739 ;;
1740 esac])
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001741fi
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001742
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00001743
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001744# Check for enable-ipv6
Martin v. Löwis11437992002-04-12 09:54:03 +00001745AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001746AC_MSG_CHECKING([if --enable-ipv6 is specified])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001747AC_ARG_ENABLE(ipv6,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001748[ --enable-ipv6 Enable ipv6 (with ipv4) support
1749 --disable-ipv6 Disable ipv6 support],
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001750[ case "$enableval" in
1751 no)
1752 AC_MSG_RESULT(no)
1753 ipv6=no
1754 ;;
1755 *) AC_MSG_RESULT(yes)
1756 AC_DEFINE(ENABLE_IPV6)
1757 ipv6=yes
1758 ;;
1759 esac ],
1760
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001761[
1762dnl the check does not work on cross compilation case...
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001763 AC_TRY_RUN([ /* AF_INET6 available check */
1764#include <sys/types.h>
1765#include <sys/socket.h>
1766main()
1767{
1768 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1769 exit(1);
1770 else
1771 exit(0);
1772}
1773],
1774 AC_MSG_RESULT(yes)
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001775 ipv6=yes,
1776 AC_MSG_RESULT(no)
1777 ipv6=no,
1778 AC_MSG_RESULT(no)
1779 ipv6=no
Martin v. Löwisa5f8bb52001-09-05 08:22:34 +00001780)
1781
1782if test "$ipv6" = "yes"; then
1783 AC_MSG_CHECKING(if RFC2553 API is available)
1784 AC_TRY_COMPILE([#include <sys/types.h>
1785#include <netinet/in.h>],
1786 [struct sockaddr_in6 x;
1787x.sin6_scope_id;],
1788 AC_MSG_RESULT(yes)
1789 ipv6=yes,
1790 AC_MSG_RESULT(no, IPv6 disabled)
1791 ipv6=no)
1792fi
1793
1794if test "$ipv6" = "yes"; then
1795 AC_DEFINE(ENABLE_IPV6)
1796fi
1797])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001798
1799ipv6type=unknown
1800ipv6lib=none
1801ipv6trylibc=no
1802
1803if test "$ipv6" = "yes"; then
1804 AC_MSG_CHECKING([ipv6 stack type])
Guido van Rossumb8552162001-09-05 14:58:11 +00001805 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1806 do
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001807 case $i in
1808 inria)
1809 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001810 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001811#include <netinet/in.h>
1812#ifdef IPV6_INRIA_VERSION
1813yes
1814#endif],
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001815 [ipv6type=$i])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001816 ;;
1817 kame)
1818 dnl http://www.kame.net/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001819 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001820#include <netinet/in.h>
1821#ifdef __KAME__
1822yes
1823#endif],
1824 [ipv6type=$i;
1825 ipv6lib=inet6
1826 ipv6libdir=/usr/local/v6/lib
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001827 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001828 ;;
1829 linux-glibc)
1830 dnl http://www.v6.linux.or.jp/
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001831 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001832#include <features.h>
1833#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
1834yes
1835#endif],
1836 [ipv6type=$i;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001837 ipv6trylibc=yes])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001838 ;;
1839 linux-inet6)
1840 dnl http://www.v6.linux.or.jp/
1841 if test -d /usr/inet6; then
1842 ipv6type=$i
1843 ipv6lib=inet6
1844 ipv6libdir=/usr/inet6/lib
Skip Montanarodecc6a42003-01-01 20:07:49 +00001845 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001846 fi
1847 ;;
1848 solaris)
1849 if test -f /etc/netconfig; then
1850 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
1851 ipv6type=$i
1852 ipv6trylibc=yes
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001853 fi
1854 fi
1855 ;;
1856 toshiba)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001857 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001858#include <sys/param.h>
1859#ifdef _TOSHIBA_INET6
1860yes
1861#endif],
1862 [ipv6type=$i;
1863 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001864 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001865 ;;
1866 v6d)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001867 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001868#include </usr/local/v6/include/sys/v6config.h>
1869#ifdef __V6D__
1870yes
1871#endif],
1872 [ipv6type=$i;
1873 ipv6lib=v6;
1874 ipv6libdir=/usr/local/v6/lib;
Skip Montanarodecc6a42003-01-01 20:07:49 +00001875 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001876 ;;
1877 zeta)
Martin v. Löwisa5f73f92001-10-15 08:06:29 +00001878 AC_EGREP_CPP(yes, [
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001879#include <sys/param.h>
1880#ifdef _ZETA_MINAMI_INET6
1881yes
1882#endif],
1883 [ipv6type=$i;
1884 ipv6lib=inet6;
Martin v. Löwis44ddbde2001-12-02 10:15:37 +00001885 ipv6libdir=/usr/local/v6/lib])
Martin v. Löwisa2ac6022001-08-09 11:40:14 +00001886 ;;
1887 esac
1888 if test "$ipv6type" != "unknown"; then
1889 break
1890 fi
1891 done
1892 AC_MSG_RESULT($ipv6type)
1893fi
1894
1895if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
1896 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
1897 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
1898 echo "using lib$ipv6lib"
1899 else
1900 if test $ipv6trylibc = "yes"; then
1901 echo "using libc"
1902 else
1903 echo 'Fatal: no $ipv6lib library found. cannot continue.'
1904 echo "You need to fetch lib$ipv6lib.a from appropriate"
1905 echo 'ipv6 kit and compile beforehand.'
1906 exit 1
1907 fi
1908 fi
1909fi
1910
Jack Jansen7b8c7542002-04-14 20:12:41 +00001911# Check for universal newline support
Guido van Rossum402905e2002-08-15 13:56:35 +00001912AC_MSG_CHECKING(for --with-universal-newlines)
Jack Jansen7b8c7542002-04-14 20:12:41 +00001913AC_ARG_WITH(universal-newlines,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001914 AC_HELP_STRING(--with(out)-universal-newlines, disable/enable foreign newlines))
Jack Jansen7b8c7542002-04-14 20:12:41 +00001915
1916if test -z "$with_universal_newlines"
1917then with_universal_newlines="yes"
1918fi
Martin v. Löwis7e4cfcb2002-12-19 16:21:49 +00001919if test "$with_universal_newlines" = "no"
Martin v. Löwis03d00d52002-12-19 19:03:31 +00001920then
Martin v. Löwis7e4cfcb2002-12-19 16:21:49 +00001921 echo --without-universal-newlines is unsupported, see README
1922 exit 1
Martin v. Löwis03d00d52002-12-19 19:03:31 +00001923else
Martin v. Löwise8aea582002-04-16 05:51:02 +00001924 AC_DEFINE(WITH_UNIVERSAL_NEWLINES, 1,
1925 [Define if you want to read files with foreign newlines.])
Jack Jansen7b8c7542002-04-14 20:12:41 +00001926fi
1927AC_MSG_RESULT($with_universal_newlines)
1928
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001929# Check for --with-doc-strings
1930AC_MSG_CHECKING(for --with-doc-strings)
1931AC_ARG_WITH(doc-strings,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001932 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
Martin v. Löwisa3fb4f72002-06-09 13:33:54 +00001933
1934if test -z "$with_doc_strings"
1935then with_doc_strings="yes"
1936fi
1937if test "$with_doc_strings" != "no"
1938then
1939 AC_DEFINE(WITH_DOC_STRINGS, 1,
1940 [Define if you want documentation strings in extension modules])
1941fi
1942AC_MSG_RESULT($with_doc_strings)
1943
Neil Schemenauera35c6882001-02-27 04:45:05 +00001944# Check for Python-specific malloc support
1945AC_MSG_CHECKING(for --with-pymalloc)
1946AC_ARG_WITH(pymalloc,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001947 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
Neil Schemenauer16c22972002-03-22 15:34:49 +00001948
1949if test -z "$with_pymalloc"
1950then with_pymalloc="yes"
1951fi
1952if test "$with_pymalloc" != "no"
1953then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001954 AC_DEFINE(WITH_PYMALLOC, 1,
1955 [Define if you want to compile in Python-specific mallocs])
Neil Schemenauer16c22972002-03-22 15:34:49 +00001956fi
1957AC_MSG_RESULT($with_pymalloc)
Neil Schemenauera35c6882001-02-27 04:45:05 +00001958
Barry Warsawef82cd72000-06-30 16:21:01 +00001959# Check for --with-wctype-functions
1960AC_MSG_CHECKING(for --with-wctype-functions)
1961AC_ARG_WITH(wctype-functions,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001962 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
1963[
Barry Warsawef82cd72000-06-30 16:21:01 +00001964if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001965then
1966 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
1967 [Define if you want wctype.h functions to be used instead of the
1968 one supplied by Python itself. (see Include/unicodectype.h).])
1969 AC_MSG_RESULT(yes)
Barry Warsawef82cd72000-06-30 16:21:01 +00001970else AC_MSG_RESULT(no)
1971fi],
1972[AC_MSG_RESULT(no)])
1973
Guido van Rossum68242b51996-05-28 22:53:03 +00001974# -I${DLINCLDIR} is added to the compile rule for importdl.o
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001975AC_SUBST(DLINCLDIR)
Guido van Rossum98935bf2001-09-05 19:13:16 +00001976DLINCLDIR=.
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001977
Guido van Rossum5739e7e1995-01-20 16:50:53 +00001978AC_MSG_CHECKING(for --with-sgi-dl)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00001979AC_ARG_WITH(sgi-dl,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001980 AC_HELP_STRING(--with-sgi-dl=DIRECTORY, IRIX 4 dynamic linking),
1981[
Guido van Rossum5739e7e1995-01-20 16:50:53 +00001982AC_MSG_RESULT($withval)
Martin v. Löwis9ef33762002-12-02 22:23:56 +00001983echo --with-sgi-dl is unsupported, see README
Martin v. Löwis779ffc02002-12-02 22:17:01 +00001984exit 1
Martin v. Löwisc45929e2002-04-06 10:10:49 +00001985AC_DEFINE(WITH_SGI_DL, 1,
1986 [Define if you want to use SGI (IRIX 4) dynamic linking.
1987 This requires the "dl" library by Jack Jansen,
1988 ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
1989 Do not bother on IRIX 5, it already has dynamic linking using SunOS
1990 style shared libraries])
Guido van Rossume97ee181999-12-20 21:27:22 +00001991DYNLOADFILE="dynload_dl.o"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001992dldir=$withval
Guido van Rossum40951012000-10-07 16:21:27 +00001993if test ! -z "$dldir" -a -d "$dldir"
Guido van Rossum300fda71996-08-19 21:58:16 +00001994then LDFLAGS="$LDFLAGS -L$dldir"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00001995else AC_MSG_ERROR([proper usage is --with-sgi-dl=DIRECTORY])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001996fi
1997DLINCLDIR=${dldir}
Guido van Rossum5739e7e1995-01-20 16:50:53 +00001998LIBS="$LIBS -ldl -lmld"], AC_MSG_RESULT(no))
Guido van Rossum433c8ad1994-08-01 12:07:07 +00001999
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002000AC_MSG_CHECKING(for --with-dl-dld)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002001AC_ARG_WITH(dl-dld,
2002 AC_HELP_STRING(--with-dl-dld=DL_DIR, GNU dynamic linking),
2003[
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002004AC_MSG_RESULT($withval)
Martin v. Löwis9ef33762002-12-02 22:23:56 +00002005echo --with-dl-dld is unsupported, see README
Martin v. Löwis779ffc02002-12-02 22:17:01 +00002006exit 1
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002007AC_DEFINE(WITH_DL_DLD, 1,
2008 [Define if you want to emulate SGI (IRIX 4) dynamic linking.
2009 This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
2010 Sequent Symmetry (Dynix), and Atari ST.
2011 This requires the 'dl-dld' library,
2012 ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
2013 as well as the 'GNU dld' library,
2014 ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
2015 Do not bother on SunOS 4 or 5, they already have dynamic linking using
2016 shared libraries.])
Guido van Rossume97ee181999-12-20 21:27:22 +00002017DYNLOADFILE="dynload_dl.o"
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002018dldir=`echo "$withval" | sed 's/,.*//'`
2019dlddir=`echo "$withval" | sed 's/.*,//'`
Barry Warsaw7d1219d2000-10-05 18:45:53 +00002020if test ! -z "$dldir" -a -d "$dldir" -a ! -z "$dlddir" -a -d "$dlddir"
Guido van Rossum300fda71996-08-19 21:58:16 +00002021then LDFLAGS="$LDFLAGS -L$dldir -L$dlddir"
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002022else AC_MSG_ERROR([proper usage is --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002023fi
2024DLINCLDIR=${dldir}
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002025LIBS="$LIBS -ldl -ldld"], AC_MSG_RESULT(no))
Guido van Rossum627b2d71993-12-24 10:39:16 +00002026
Guido van Rossume97ee181999-12-20 21:27:22 +00002027# the dlopen() function means we might want to use dynload_shlib.o. some
2028# platforms, such as AIX, have dlopen(), but don't want to use it.
Thomas Wouters3a584202000-08-05 23:28:51 +00002029AC_CHECK_FUNCS(dlopen)
Guido van Rossume97ee181999-12-20 21:27:22 +00002030
2031# DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2032# loading of modules.
2033AC_SUBST(DYNLOADFILE)
2034AC_MSG_CHECKING(DYNLOADFILE)
2035if test -z "$DYNLOADFILE"
2036then
2037 case $ac_sys_system/$ac_sys_release in
Martin v. Löwisc19c5a62003-11-18 20:00:44 +00002038 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2039 if test "$ac_cv_func_dlopen" = yes
2040 then DYNLOADFILE="dynload_shlib.o"
2041 else DYNLOADFILE="dynload_aix.o"
2042 fi
2043 ;;
Guido van Rossume97ee181999-12-20 21:27:22 +00002044 BeOS*) DYNLOADFILE="dynload_beos.o";;
2045 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002046 Darwin/*) DYNLOADFILE="dynload_next.o";;
Martin v. Löwisf90ae202002-06-11 06:22:31 +00002047 atheos*) DYNLOADFILE="dynload_atheos.o";;
Guido van Rossume97ee181999-12-20 21:27:22 +00002048 *)
2049 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2050 # out any dynamic loading
2051 if test "$ac_cv_func_dlopen" = yes
2052 then DYNLOADFILE="dynload_shlib.o"
2053 else DYNLOADFILE="dynload_stub.o"
2054 fi
2055 ;;
2056 esac
2057fi
2058AC_MSG_RESULT($DYNLOADFILE)
2059if test "$DYNLOADFILE" != "dynload_stub.o"
2060then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002061 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2062 [Defined when any dynamic module loading is enabled.])
Guido van Rossume97ee181999-12-20 21:27:22 +00002063fi
2064
Jack Jansenc49e5b72001-06-19 15:00:23 +00002065# MACHDEP_OBJS can be set to platform-specific object files needed by Python
2066
2067AC_SUBST(MACHDEP_OBJS)
2068AC_MSG_CHECKING(MACHDEP_OBJS)
2069if test -z "$MACHDEP_OBJS"
2070then
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002071 MACHDEP_OBJS=$extra_machdep_objs
2072else
2073 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
Jack Jansenc49e5b72001-06-19 15:00:23 +00002074fi
Jack Jansenb6e9cad2001-08-15 01:26:28 +00002075AC_MSG_RESULT(MACHDEP_OBJS)
Jack Jansenc49e5b72001-06-19 15:00:23 +00002076
Guido van Rossum627b2d71993-12-24 10:39:16 +00002077# checks for library functions
Martin v. Löwisd5843682002-11-21 20:41:28 +00002078AC_CHECK_FUNCS(alarm chown clock confstr ctermid execv \
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002079 fork fpathconf ftime ftruncate \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002080 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
Martin v. Löwis49ee14d2003-11-10 06:35:36 +00002081 getpriority getpwent getsid getwd \
Martin v. Löwise9416172003-05-03 10:12:45 +00002082 kill killpg lchown lstat mkfifo mknod mktime \
Martin v. Löwisa5f09072002-10-11 05:37:59 +00002083 mremap nice pathconf pause plock poll pthread_init \
Guido van Rossum162e38c2003-02-19 15:25:10 +00002084 putenv readlink realpath \
Martin v. Löwisd5843682002-11-21 20:41:28 +00002085 select setegid seteuid setgid \
Martin v. Löwis4daacb12003-03-28 18:37:01 +00002086 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002087 sigaction siginterrupt sigrelse strftime strptime \
Michael W. Hudson34f20ea2002-05-27 15:08:24 +00002088 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
Martin v. Löwis438b5342002-12-27 10:16:42 +00002089 truncate uname unsetenv utimes waitpid wcscoll _getpty)
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002090
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002091# For some functions, having a definition is not sufficient, since
2092# we want to take their address.
2093AC_MSG_CHECKING(for chroot)
2094AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2095 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2096 AC_MSG_RESULT(yes),
2097 AC_MSG_RESULT(no)
2098)
2099AC_MSG_CHECKING(for link)
2100AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2101 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2102 AC_MSG_RESULT(yes),
2103 AC_MSG_RESULT(no)
2104)
2105AC_MSG_CHECKING(for symlink)
2106AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2107 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2108 AC_MSG_RESULT(yes),
2109 AC_MSG_RESULT(no)
2110)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002111AC_MSG_CHECKING(for fchdir)
2112AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2113 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2114 AC_MSG_RESULT(yes),
2115 AC_MSG_RESULT(no)
2116)
2117AC_MSG_CHECKING(for fsync)
2118AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
Skip Montanarod4fa8072003-09-25 14:49:15 +00002119 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
Martin v. Löwisa64988c2003-09-20 15:30:20 +00002120 AC_MSG_RESULT(yes),
2121 AC_MSG_RESULT(no)
2122)
2123AC_MSG_CHECKING(for fdatasync)
2124AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2125 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2126 AC_MSG_RESULT(yes),
2127 AC_MSG_RESULT(no)
2128)
Martin v. Löwisc8ad7cc2002-11-11 13:23:45 +00002129
Martin v. Löwisd5843682002-11-21 20:41:28 +00002130# On some systems (eg. FreeBSD 5), we would find a definition of the
2131# functions ctermid_r, setgroups in the library, but no prototype
2132# (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2133# address to avoid compiler warnings and potential miscompilations
2134# because of the missing prototypes.
2135
2136AC_MSG_CHECKING(for ctermid_r)
2137AC_TRY_COMPILE([
2138#include "confdefs.h"
2139#include <stdio.h>
2140], void* p = ctermid_r,
2141 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2142 AC_MSG_RESULT(yes),
2143 AC_MSG_RESULT(no)
2144)
2145
Martin v. Löwisf26d63b2003-03-30 17:23:49 +00002146AC_MSG_CHECKING(for flock)
2147AC_TRY_COMPILE([
2148#include "confdefs.h"
2149#include <sys/file.h>
2150], void* p = flock,
2151 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2152 AC_MSG_RESULT(yes),
2153 AC_MSG_RESULT(no)
2154)
2155
2156AC_MSG_CHECKING(for getpagesize)
2157AC_TRY_COMPILE([
2158#include "confdefs.h"
2159#include <unistd.h>
2160], void* p = getpagesize,
2161 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2162 AC_MSG_RESULT(yes),
2163 AC_MSG_RESULT(no)
2164)
2165
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002166dnl check for true
2167AC_CHECK_PROGS(TRUE, true, /bin/true)
2168
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002169dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2170dnl On others, they are in the C library, so we to take no action
Martin v. Löwis4ee6eef2003-05-26 05:37:51 +00002171AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002172 AC_CHECK_LIB(resolv, inet_aton)
2173)
2174
Martin v. Löwise9416172003-05-03 10:12:45 +00002175AC_MSG_CHECKING(for hstrerror)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002176AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002177#include "confdefs.h"
2178#include <netdb.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002179], void* p = hstrerror; hstrerror(0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002180 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2181 AC_MSG_RESULT(yes),
2182 AC_MSG_RESULT(no)
2183)
2184
2185AC_MSG_CHECKING(for inet_aton)
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002186AC_TRY_LINK([
Martin v. Löwise9416172003-05-03 10:12:45 +00002187#include "confdefs.h"
2188#include <sys/socket.h>
2189#include <netinet/in.h>
2190#include <arpa/inet.h>
Martin v. Löwis95c419b2003-05-03 12:10:48 +00002191], void* p = inet_aton;inet_aton(0,0),
Martin v. Löwise9416172003-05-03 10:12:45 +00002192 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2193 AC_MSG_RESULT(yes),
2194 AC_MSG_RESULT(no)
2195)
2196
2197AC_MSG_CHECKING(for inet_pton)
2198AC_TRY_COMPILE([
2199#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002200#include <sys/types.h>
Martin v. Löwise9416172003-05-03 10:12:45 +00002201#include <sys/socket.h>
2202#include <netinet/in.h>
2203#include <arpa/inet.h>
2204], void* p = inet_pton,
2205 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2206 AC_MSG_RESULT(yes),
2207 AC_MSG_RESULT(no)
2208)
2209
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002210# On some systems, setgroups is in unistd.h, on others, in grp.h
Martin v. Löwisd5843682002-11-21 20:41:28 +00002211AC_MSG_CHECKING(for setgroups)
2212AC_TRY_COMPILE([
2213#include "confdefs.h"
Martin v. Löwisf2e488d2003-05-05 22:00:11 +00002214#include <unistd.h>
Martin v. Löwisd6640d42003-07-06 09:29:52 +00002215#ifdef HAVE_GRP_H
2216#include <grp.h>
2217#endif
Martin v. Löwisd5843682002-11-21 20:41:28 +00002218],
2219void* p = setgroups,
2220 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2221 AC_MSG_RESULT(yes),
2222 AC_MSG_RESULT(no)
2223)
2224
Fred Drake8cef4cf2000-06-28 16:40:38 +00002225# check for openpty and forkpty
2226
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002227AC_CHECK_FUNCS(openpty,, AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"]))
2228AC_CHECK_FUNCS(forkpty,, AC_CHECK_LIB(util,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"]))
Fred Drake8cef4cf2000-06-28 16:40:38 +00002229
Guido van Rossum00f0f6e1999-01-06 18:52:29 +00002230# check for long file support functions
2231AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2232
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002233AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002234AC_CHECK_FUNCS(getpgrp,
2235 AC_TRY_COMPILE([#include <unistd.h>],
2236 [getpgrp(0);],
2237 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2238 [Define if getpgrp() must be called as getpgrp(0).])
2239 )
2240)
Jack Jansen150753c2003-03-29 22:07:47 +00002241AC_CHECK_FUNCS(setpgrp,
2242 AC_TRY_COMPILE([#include <unistd.h>],
2243 [setpgrp(0,0);],
2244 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2245 [Define if setpgrp() must be called as setpgrp(0, 0).])
2246 )
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002247)
2248AC_CHECK_FUNCS(gettimeofday,
2249 AC_TRY_COMPILE([#include <sys/time.h>],
2250 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2251 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2252 [Define if gettimeofday() does not have second (timezone) argument
2253 This is the case on Motorola V4 (R40V4.2)])
2254 )
2255)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002256
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002257AC_MSG_CHECKING(for major, minor, and makedev)
Martin v. Löwise3271202002-11-07 07:42:30 +00002258AC_TRY_LINK([
Neal Norwitz6eb37f02003-02-23 23:28:15 +00002259#if defined(MAJOR_IN_MKDEV)
2260#include <sys/mkdev.h>
2261#elif defined(MAJOR_IN_SYSMACROS)
2262#include <sys/sysmacros.h>
2263#else
2264#include <sys/types.h>
2265#endif
Martin v. Löwisdbe3f762002-10-10 14:27:30 +00002266],[
2267 makedev(major(0),minor(0));
2268],[
2269 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2270 [Define to 1 if you have the device macros.])
2271 AC_MSG_RESULT(yes)
2272],[
2273 AC_MSG_RESULT(no)
2274])
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002275
2276# On OSF/1 V5.1, getaddrinfo is available, but a define
2277# for [no]getaddrinfo in netdb.h.
2278AC_MSG_CHECKING(for getaddrinfo)
2279AC_TRY_LINK([
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002280#include <sys/types.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002281#include <sys/socket.h>
2282#include <netdb.h>
Martin v. Löwisc010b6d2001-11-09 17:50:52 +00002283#include <stdio.h>
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002284],[
2285getaddrinfo(NULL, NULL, NULL, NULL);
2286], [
2287AC_MSG_RESULT(yes)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002288AC_MSG_CHECKING(getaddrinfo bug)
2289AC_TRY_RUN([
2290#include <sys/types.h>
2291#include <netdb.h>
2292#include <string.h>
2293#include <sys/socket.h>
2294#include <netinet/in.h>
2295
2296main()
2297{
2298 int passive, gaierr, inet4 = 0, inet6 = 0;
2299 struct addrinfo hints, *ai, *aitop;
2300 char straddr[INET6_ADDRSTRLEN], strport[16];
2301
2302 for (passive = 0; passive <= 1; passive++) {
2303 memset(&hints, 0, sizeof(hints));
2304 hints.ai_family = AF_UNSPEC;
2305 hints.ai_flags = passive ? AI_PASSIVE : 0;
2306 hints.ai_socktype = SOCK_STREAM;
2307 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2308 (void)gai_strerror(gaierr);
2309 goto bad;
2310 }
2311 for (ai = aitop; ai; ai = ai->ai_next) {
2312 if (ai->ai_addr == NULL ||
2313 ai->ai_addrlen == 0 ||
2314 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2315 straddr, sizeof(straddr), strport, sizeof(strport),
2316 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2317 goto bad;
2318 }
2319 switch (ai->ai_family) {
2320 case AF_INET:
2321 if (strcmp(strport, "54321") != 0) {
2322 goto bad;
2323 }
2324 if (passive) {
2325 if (strcmp(straddr, "0.0.0.0") != 0) {
2326 goto bad;
2327 }
2328 } else {
2329 if (strcmp(straddr, "127.0.0.1") != 0) {
2330 goto bad;
2331 }
2332 }
2333 inet4++;
2334 break;
2335 case AF_INET6:
2336 if (strcmp(strport, "54321") != 0) {
2337 goto bad;
2338 }
2339 if (passive) {
2340 if (strcmp(straddr, "::") != 0) {
2341 goto bad;
2342 }
2343 } else {
2344 if (strcmp(straddr, "::1") != 0) {
2345 goto bad;
2346 }
2347 }
2348 inet6++;
2349 break;
2350 case AF_UNSPEC:
2351 goto bad;
2352 break;
2353 default:
2354 /* another family support? */
2355 break;
2356 }
2357 }
2358 }
2359
2360 if (!(inet4 == 0 || inet4 == 2))
2361 goto bad;
2362 if (!(inet6 == 0 || inet6 == 2))
2363 goto bad;
2364
2365 if (aitop)
2366 freeaddrinfo(aitop);
2367 exit(0);
2368
2369 bad:
2370 if (aitop)
2371 freeaddrinfo(aitop);
2372 exit(1);
2373}
2374],
2375AC_MSG_RESULT(good)
2376buggygetaddrinfo=no,
2377AC_MSG_RESULT(buggy)
2378buggygetaddrinfo=yes,
2379AC_MSG_RESULT(buggy)
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002380buggygetaddrinfo=yes)], [
2381AC_MSG_RESULT(no)
2382buggygetaddrinfo=yes
2383])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002384
2385if test "$buggygetaddrinfo" = "yes"; then
2386 if test "$ipv6" = "yes"; then
2387 echo 'Fatal: You must get working getaddrinfo() function.'
2388 echo ' or you can specify "--disable-ipv6"'.
2389 exit 1
2390 fi
Martin v. Löwis861a65b2001-10-24 14:36:00 +00002391else
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002392 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002393fi
Thomas Woutersb0db85a2001-08-08 10:39:03 +00002394AC_CHECK_FUNCS(getnameinfo)
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002395
Guido van Rossum627b2d71993-12-24 10:39:16 +00002396# checks for structures
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002397AC_HEADER_TIME
Guido van Rossum627b2d71993-12-24 10:39:16 +00002398AC_STRUCT_TM
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002399AC_STRUCT_TIMEZONE
Martin v. Löwis60a5d722002-10-16 20:28:25 +00002400AC_CHECK_MEMBERS([struct stat.st_rdev])
2401AC_CHECK_MEMBERS([struct stat.st_blksize])
Guido van Rossum98bf58f2001-10-18 20:34:25 +00002402AC_STRUCT_ST_BLOCKS
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002403
2404AC_MSG_CHECKING(for time.h that defines altzone)
2405AC_CACHE_VAL(ac_cv_header_time_altzone,
2406[AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2407 ac_cv_header_time_altzone=yes,
2408 ac_cv_header_time_altzone=no)])
2409AC_MSG_RESULT($ac_cv_header_time_altzone)
2410if test $ac_cv_header_time_altzone = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002411 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002412fi
2413
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002414was_it_defined=no
2415AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002416AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002417#include <sys/types.h>
2418#include <sys/select.h>
2419#include <sys/time.h>
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002420], [;], [
2421 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2422 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2423 (which you can't on SCO ODT 3.0).])
2424 was_it_defined=yes
2425])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002426AC_MSG_RESULT($was_it_defined)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002427
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002428AC_MSG_CHECKING(for addrinfo)
2429AC_CACHE_VAL(ac_cv_struct_addrinfo,
2430AC_TRY_COMPILE([
2431# include <netdb.h>],
2432 [struct addrinfo a],
2433 ac_cv_struct_addrinfo=yes,
2434 ac_cv_struct_addrinfo=no))
2435AC_MSG_RESULT($ac_cv_struct_addrinfo)
2436if test $ac_cv_struct_addrinfo = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002437 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002438fi
2439
2440AC_MSG_CHECKING(for sockaddr_storage)
2441AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2442AC_TRY_COMPILE([
2443# include <sys/types.h>
2444# include <sys/socket.h>],
2445 [struct sockaddr_storage s],
2446 ac_cv_struct_sockaddr_storage=yes,
2447 ac_cv_struct_sockaddr_storage=no))
2448AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2449if test $ac_cv_struct_sockaddr_storage = yes; then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002450 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002451fi
2452
Guido van Rossum627b2d71993-12-24 10:39:16 +00002453# checks for compiler characteristics
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002454
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002455AC_C_CHAR_UNSIGNED
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002456AC_C_CONST
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002457
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002458works=no
2459AC_MSG_CHECKING(for working volatile)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002460AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2461 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2462)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002463AC_MSG_RESULT($works)
Guido van Rossumdabb11b1994-10-11 15:04:27 +00002464
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002465works=no
2466AC_MSG_CHECKING(for working signed char)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002467AC_TRY_COMPILE([], [signed char c;], works=yes,
2468 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2469)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002470AC_MSG_RESULT($works)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002471
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002472have_prototypes=no
2473AC_MSG_CHECKING(for prototypes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002474AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2475 AC_DEFINE(HAVE_PROTOTYPES, 1,
2476 [Define if your compiler supports function prototype])
2477 have_prototypes=yes
2478])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002479AC_MSG_RESULT($have_prototypes)
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002480
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002481works=no
2482AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002483AC_TRY_COMPILE([
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002484#include <stdarg.h>
Guido van Rossum3f13e481996-08-30 20:58:11 +00002485int foo(int x, ...) {
2486 va_list va;
2487 va_start(va, x);
2488 va_arg(va, int);
2489 va_arg(va, char *);
2490 va_arg(va, double);
2491 return 0;
2492}
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002493], [return foo(10, "", 3.14);], [
2494 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2495 [Define if your compiler supports variable length function prototypes
2496 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2497 works=yes
2498])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002499AC_MSG_RESULT($works)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002500
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002501if test "$have_prototypes" = yes; then
2502bad_prototypes=no
2503AC_MSG_CHECKING(for bad exec* prototypes)
2504AC_TRY_COMPILE([#include <unistd.h>], [char **t;execve("@",t,t);], ,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002505 AC_DEFINE(BAD_EXEC_PROTOTYPES, 1,
2506 [Define if your <unistd.h> contains bad prototypes for exec*()
2507 (as it does on SGI IRIX 4.x)])
2508 bad_prototypes=yes
2509)
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002510AC_MSG_RESULT($bad_prototypes)
Guido van Rossum627b2d71993-12-24 10:39:16 +00002511fi
2512
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002513# check if sockaddr has sa_len member
2514AC_MSG_CHECKING(if sockaddr has sa_len member)
2515AC_TRY_COMPILE([#include <sys/types.h>
2516#include <sys/socket.h>],
2517[struct sockaddr x;
2518x.sa_len = 0;],
2519 AC_MSG_RESULT(yes)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002520 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
Martin v. Löwis01dfdb32001-06-23 16:30:13 +00002521 AC_MSG_RESULT(no))
2522
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002523va_list_is_array=no
2524AC_MSG_CHECKING(whether va_list is an array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002525AC_TRY_COMPILE([
2526#ifdef HAVE_STDARG_PROTOTYPES
2527#include <stdarg.h>
2528#else
2529#include <varargs.h>
2530#endif
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002531], [va_list list1, list2; list1 = list2;], , [
2532 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2533 va_list_is_array=yes
2534])
Guido van Rossum5739e7e1995-01-20 16:50:53 +00002535AC_MSG_RESULT($va_list_is_array)
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002536
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002537# sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
Martin v. Löwis11437992002-04-12 09:54:03 +00002538AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2539 [Define this if you have some version of gethostbyname_r()])
2540
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002541AC_CHECK_FUNC(gethostbyname_r, [
2542 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2543 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2544 OLD_CFLAGS=$CFLAGS
2545 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2546 AC_TRY_COMPILE([
2547# include <netdb.h>
2548 ], [
2549 char *name;
2550 struct hostent *he, *res;
2551 char buffer[2048];
2552 int buflen = 2048;
2553 int h_errnop;
2554
2555 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2556 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002557 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002558 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2559 [Define this if you have the 6-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002560 AC_MSG_RESULT(yes)
2561 ], [
2562 AC_MSG_RESULT(no)
2563 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2564 AC_TRY_COMPILE([
2565# include <netdb.h>
2566 ], [
2567 char *name;
2568 struct hostent *he;
2569 char buffer[2048];
2570 int buflen = 2048;
2571 int h_errnop;
2572
2573 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2574 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002575 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002576 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2577 [Define this if you have the 5-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002578 AC_MSG_RESULT(yes)
2579 ], [
2580 AC_MSG_RESULT(no)
2581 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2582 AC_TRY_COMPILE([
2583# include <netdb.h>
2584 ], [
2585 char *name;
2586 struct hostent *he;
2587 struct hostent_data data;
2588
2589 (void) gethostbyname_r(name, he, &data);
2590 ], [
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002591 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002592 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2593 [Define this if you have the 3-arg version of gethostbyname_r().])
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002594 AC_MSG_RESULT(yes)
2595 ], [
2596 AC_MSG_RESULT(no)
2597 ])
2598 ])
2599 ])
2600 CFLAGS=$OLD_CFLAGS
2601], [
Thomas Wouters3a584202000-08-05 23:28:51 +00002602 AC_CHECK_FUNCS(gethostbyname)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002603])
2604AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2605AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2606AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
Guido van Rossum8db7d8b1999-03-23 16:40:33 +00002607AC_SUBST(HAVE_GETHOSTBYNAME_R)
Guido van Rossuma96f0ba1999-03-22 21:49:51 +00002608AC_SUBST(HAVE_GETHOSTBYNAME)
2609
Guido van Rossum627b2d71993-12-24 10:39:16 +00002610# checks for system services
2611# (none yet)
2612
Guido van Rossum76be6ed1995-01-02 18:33:54 +00002613# Linux requires this for correct f.p. operations
Jeremy Hyltonbe28f5b2000-07-27 21:03:04 +00002614AC_CHECK_FUNC(__fpu_control,
2615 [],
2616 [AC_CHECK_LIB(ieee, __fpu_control)
2617])
Guido van Rossum627b2d71993-12-24 10:39:16 +00002618
Guido van Rossum93274221997-05-09 02:42:00 +00002619# Check for --with-fpectl
Guido van Rossum93274221997-05-09 02:42:00 +00002620AC_MSG_CHECKING(for --with-fpectl)
Barry Warsawc0d24d8b2000-06-29 16:12:00 +00002621AC_ARG_WITH(fpectl,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002622 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2623[
Guido van Rossum93274221997-05-09 02:42:00 +00002624if test "$withval" != no
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002625then
2626 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2627 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2628 AC_MSG_RESULT(yes)
Guido van Rossum93274221997-05-09 02:42:00 +00002629else AC_MSG_RESULT(no)
Guido van Rossumef2255b2000-03-10 22:30:29 +00002630fi],
2631[AC_MSG_RESULT(no)])
Guido van Rossum93274221997-05-09 02:42:00 +00002632
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002633# check for --with-libm=...
2634AC_SUBST(LIBM)
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002635case $ac_sys_system in
Guido van Rossum3dc0a512000-10-05 18:00:06 +00002636Darwin) ;;
Guido van Rossumec95c7b1998-08-04 17:59:56 +00002637BeOS) ;;
Guido van Rossum4b6b5791996-09-09 20:09:34 +00002638*) LIBM=-lm
2639esac
Guido van Rossum93274221997-05-09 02:42:00 +00002640AC_MSG_CHECKING(for --with-libm=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002641AC_ARG_WITH(libm,
2642 AC_HELP_STRING(--with-libm=STRING, math library),
2643[
Guido van Rossum93274221997-05-09 02:42:00 +00002644if test "$withval" = no
2645then LIBM=
2646 AC_MSG_RESULT(force LIBM empty)
2647elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002648then LIBM=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002649 AC_MSG_RESULT(set LIBM="$withval")
2650else AC_MSG_ERROR([proper usage is --with-libm=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002651fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002652[AC_MSG_RESULT(default LIBM="$LIBM")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002653
2654# check for --with-libc=...
2655AC_SUBST(LIBC)
Guido van Rossum93274221997-05-09 02:42:00 +00002656AC_MSG_CHECKING(for --with-libc=STRING)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002657AC_ARG_WITH(libc,
2658 AC_HELP_STRING(--with-libc=STRING, C library),
2659[
Guido van Rossum93274221997-05-09 02:42:00 +00002660if test "$withval" = no
2661then LIBC=
2662 AC_MSG_RESULT(force LIBC empty)
2663elif test "$withval" != yes
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002664then LIBC=$withval
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002665 AC_MSG_RESULT(set LIBC="$withval")
2666else AC_MSG_ERROR([proper usage is --with-libc=STRING])
Guido van Rossum93274221997-05-09 02:42:00 +00002667fi],
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002668[AC_MSG_RESULT(default LIBC="$LIBC")])
Guido van Rossum433c8ad1994-08-01 12:07:07 +00002669
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002670# check for hypot() in math library
2671LIBS_SAVE=$LIBS
2672LIBS="$LIBS $LIBM"
Guido van Rossumf2f7eb31996-08-30 15:18:00 +00002673AC_REPLACE_FUNCS(hypot)
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00002674LIBS=$LIBS_SAVE
2675
Guido van Rossumef2255b2000-03-10 22:30:29 +00002676# check for wchar.h
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002677AC_CHECK_HEADER(wchar.h, [
2678 AC_DEFINE(HAVE_WCHAR_H, 1,
2679 [Define if the compiler provides a wchar.h header file.])
2680 wchar_h="yes"
2681],
Guido van Rossumef2255b2000-03-10 22:30:29 +00002682wchar_h="no"
2683)
2684
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002685# determine wchar_t size
2686if test "$wchar_h" = yes
2687then
Guido van Rossum67b26592001-10-20 14:21:45 +00002688 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002689fi
2690
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002691AC_MSG_CHECKING(for UCS-4 tcl)
2692have_ucs4_tcl=no
2693AC_TRY_COMPILE([
2694#include <tcl.h>
2695#if TCL_UTF_MAX != 6
2696# error "NOT UCS4_TCL"
2697#endif], [], [
2698 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2699 have_ucs4_tcl=yes
2700])
2701AC_MSG_RESULT($have_ucs4_tcl)
2702
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002703# check whether wchar_t is signed or not
2704if test "$wchar_h" = yes
2705then
2706 # check whether wchar_t is signed or not
2707 AC_MSG_CHECKING(whether wchar_t is signed)
2708 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2709 AC_TRY_RUN([
2710 #include <wchar.h>
2711 int main()
2712 {
2713 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 1 : 0);
2714 }
2715 ],
2716 ac_cv_wchar_t_signed=yes,
2717 ac_cv_wchar_t_signed=no,
2718 ac_cv_wchar_t_signed=yes)])
2719 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2720fi
2721
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002722AC_MSG_CHECKING(what type to use for unicode)
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002723dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002724AC_ARG_ENABLE(unicode,
Martin v. Löwis3e2c6322002-10-29 10:07:43 +00002725 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2726 [],
2727 [enable_unicode=yes])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002728
2729if test $enable_unicode = yes
2730then
Martin v. Löwisfd917792001-06-27 20:22:04 +00002731 # Without any arguments, Py_UNICODE defaults to two-byte mode
Martin v. Löwisfa3bdea2003-09-04 18:50:54 +00002732 case "$have_ucs4_tcl" in
2733 yes) enable_unicode="ucs4"
2734 ;;
2735 *) enable_unicode="ucs2"
2736 ;;
2737 esac
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002738fi
2739
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002740AH_TEMPLATE(Py_UNICODE_SIZE,
2741 [Define as the size of the unicode type.])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002742case "$enable_unicode" in
2743ucs2) unicode_size="2"
2744 AC_DEFINE(Py_UNICODE_SIZE,2)
2745 ;;
2746ucs4) unicode_size="4"
2747 AC_DEFINE(Py_UNICODE_SIZE,4)
2748 ;;
2749esac
2750
Martin v. Löwis11437992002-04-12 09:54:03 +00002751AH_TEMPLATE(PY_UNICODE_TYPE,
2752 [Define as the integral type used for Unicode representation.])
Martin v. Löwis0036cba2002-04-12 09:58:45 +00002753
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002754AC_SUBST(UNICODE_OBJS)
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002755if test "$enable_unicode" = "no"
2756then
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002757 UNICODE_OBJS=""
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002758 AC_MSG_RESULT(not used)
2759else
Martin v. Löwis339d0f72001-08-17 18:39:25 +00002760 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002761 AC_DEFINE(Py_USING_UNICODE, 1,
2762 [Define if you want to have a Unicode type.])
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002763
2764 # wchar_t is only usable if it maps to an unsigned type
2765 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2766 -a "$ac_cv_wchar_t_signed" == "no"
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002767 then
2768 PY_UNICODE_TYPE="wchar_t"
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002769 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2770 [Define if you have a useable wchar_t type defined in wchar.h; useable
Marc-André Lemburgd7160f82003-09-22 11:14:40 +00002771 means wchar_t must be an unsigned type with at least 16 bits. (see
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002772 Include/unicodeobject.h).])
Martin v. Löwis0ba70cc2001-06-26 22:22:37 +00002773 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2774 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2775 then
2776 PY_UNICODE_TYPE="unsigned short"
2777 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2778 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2779 then
2780 PY_UNICODE_TYPE="unsigned long"
2781 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2782 else
2783 PY_UNICODE_TYPE="no type found"
2784 fi
2785 AC_MSG_RESULT($PY_UNICODE_TYPE)
2786fi
Guido van Rossumef2255b2000-03-10 22:30:29 +00002787
2788# check for endianness
2789AC_C_BIGENDIAN
2790
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002791# Check whether right shifting a negative integer extends the sign bit
2792# or fills with zeros (like the Cray J90, according to Tim Peters).
2793AC_MSG_CHECKING(whether right shift extends the sign bit)
Vladimir Marangozova6180282000-07-12 05:05:06 +00002794AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002795AC_TRY_RUN([
2796int main()
2797{
Vladimir Marangozova6180282000-07-12 05:05:06 +00002798 exit(((-1)>>3 == -1) ? 0 : 1);
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002799}
Guido van Rossum3065c942001-09-17 04:03:14 +00002800],
2801ac_cv_rshift_extends_sign=yes,
2802ac_cv_rshift_extends_sign=no,
2803ac_cv_rshift_extends_sign=yes)])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002804AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2805if test "$ac_cv_rshift_extends_sign" = no
2806then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002807 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2808 [Define if i>>j for signed int i does not extend the sign bit
2809 when i < 0])
Vladimir Marangozova6180282000-07-12 05:05:06 +00002810fi
2811
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002812# check for getc_unlocked and related locking functions
2813AC_MSG_CHECKING(for getc_unlocked() and friends)
2814AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2815AC_TRY_LINK([#include <stdio.h>],[
2816 FILE *f = fopen("/dev/null", "r");
2817 flockfile(f);
2818 getc_unlocked(f);
2819 funlockfile(f);
2820], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2821AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2822if test "$ac_cv_have_getc_unlocked" = yes
2823then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002824 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2825 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
Guido van Rossumcadfaec2001-01-05 14:45:49 +00002826fi
Vladimir Marangozov9a5a5d12000-07-12 03:02:16 +00002827
Guido van Rossumfaf5e4d2002-12-30 16:25:41 +00002828# check for readline 2.2
2829AC_TRY_CPP([#include <readline/readline.h>],
2830have_readline=yes, have_readline=no)
2831if test $have_readline = yes
2832then
2833 AC_EGREP_HEADER([extern int rl_completion_append_character;],
2834 [readline/readline.h],
2835 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
2836 [Define if you have readline 2.2]), )
2837fi
2838
Martin v. Löwis0daad592001-09-30 21:09:59 +00002839# check for readline 4.0
2840AC_CHECK_LIB(readline, rl_pre_input_hook,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002841 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
2842 [Define if you have readline 4.0]), , -ltermcap)
Martin v. Löwis0daad592001-09-30 21:09:59 +00002843
Guido van Rossum353ae582001-07-10 16:45:32 +00002844# check for readline 4.2
2845AC_CHECK_LIB(readline, rl_completion_matches,
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002846 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
2847 [Define if you have readline 4.2]), , -ltermcap)
Guido van Rossum353ae582001-07-10 16:45:32 +00002848
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002849AC_MSG_CHECKING(for broken nice())
2850AC_CACHE_VAL(ac_cv_broken_nice, [
2851AC_TRY_RUN([
2852int main()
2853{
2854 int val1 = nice(1);
2855 if (val1 != -1 && val1 == nice(2))
2856 exit(0);
2857 exit(1);
2858}
Guido van Rossum3065c942001-09-17 04:03:14 +00002859],
2860ac_cv_broken_nice=yes,
2861ac_cv_broken_nice=no,
2862ac_cv_broken_nice=no)])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002863AC_MSG_RESULT($ac_cv_broken_nice)
2864if test "$ac_cv_broken_nice" = yes
2865then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002866 AC_DEFINE(HAVE_BROKEN_NICE, 1,
2867 [Define if nice() returns success/failure instead of the new priority.])
Thomas Wouterse38b2f12001-07-11 22:35:31 +00002868fi
2869
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002870# tzset(3) exists and works like we expect it to
2871AC_MSG_CHECKING(for working tzset())
2872AC_CACHE_VAL(ac_cv_working_tzset, [
2873AC_TRY_RUN([
2874#include <stdlib.h>
2875#include <time.h>
Brett Cannon18367812003-09-19 00:59:16 +00002876#include <string.h>
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002877int main()
2878{
Brett Cannon18367812003-09-19 00:59:16 +00002879 /* Note that we need to ensure that not only does tzset(3)
2880 do 'something' with localtime, but it works as documented
2881 in the library reference and as expected by the test suite.
2882
2883 Red Hat 6.2 doesn't understand the southern hemisphere
2884 after New Year's Day; it thinks swaps on that day.
2885 */
2886
2887 time_t groundhogday = 1044144000; /* GMT-based; well, it's a colony */
2888 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
2889
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002890 putenv("TZ=UTC+0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002891 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002892 if (localtime(&groundhogday)->tm_hour != 0)
2893 exit(1);
2894
Neal Norwitz7f2588c2003-04-11 15:35:53 +00002895 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002896 tzset();
Brett Cannon18367812003-09-19 00:59:16 +00002897 if (localtime(&groundhogday)->tm_hour != 19)
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002898 exit(1);
Brett Cannon18367812003-09-19 00:59:16 +00002899
2900 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
2901 tzset();
2902 if (localtime(&groundhogday)->tm_hour != 11)
2903 exit(1);
2904 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
2905 exit(1);
2906 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
2907 exit(1);
2908
Guido van Rossumd11b62e2003-03-14 21:51:36 +00002909 exit(0);
2910}
2911],
2912ac_cv_working_tzset=yes,
2913ac_cv_working_tzset=no,
2914ac_cv_working_tzset=no)])
2915AC_MSG_RESULT($ac_cv_working_tzset)
2916if test "$ac_cv_working_tzset" = yes
2917then
2918 AC_DEFINE(HAVE_WORKING_TZSET, 1,
2919 [Define if tzset() actually switches the local timezone in a meaningful way.])
2920fi
2921
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002922# Look for subsecond timestamps in struct stat
2923AC_MSG_CHECKING(for tv_nsec in struct stat)
2924AC_CACHE_VAL(ac_cv_stat_tv_nsec,
2925AC_TRY_COMPILE([#include <sys/stat.h>], [
2926struct stat st;
2927st.st_mtim.tv_nsec = 1;
2928],
Martin v. Löwisa32c9942002-09-09 16:17:47 +00002929ac_cv_stat_tv_nsec=yes,
Martin v. Löwis94717ed2002-09-09 14:24:16 +00002930ac_cv_stat_tv_nsec=no,
2931ac_cv_stat_tv_nsec=no))
2932AC_MSG_RESULT($ac_cv_stat_tv_nsec)
2933if test "$ac_cv_stat_tv_nsec" = yes
2934then
2935 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
2936 [Define if you have struct stat.st_mtim.tv_nsec])
2937fi
2938
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002939# On HP/UX 11.0, mvwdelch is a block with a return statement
2940AC_MSG_CHECKING(whether mvwdelch is an expression)
2941AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
2942AC_TRY_COMPILE([#include <curses.h>], [
2943 int rtn;
2944 rtn = mvwdelch(0,0,0);
2945], ac_cv_mvwdelch_is_expression=yes,
2946 ac_cv_mvwdelch_is_expression=no,
2947 ac_cv_mvwdelch_is_expression=yes))
2948AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
2949
2950if test "$ac_cv_mvwdelch_is_expression" = yes
2951then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002952 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
2953 [Define if mvwdelch in curses.h is an expression.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002954fi
2955
2956AC_MSG_CHECKING(whether WINDOW has _flags)
2957AC_CACHE_VAL(ac_cv_window_has_flags,
2958AC_TRY_COMPILE([#include <curses.h>], [
2959 WINDOW *w;
2960 w->_flags = 0;
2961], ac_cv_window_has_flags=yes,
2962 ac_cv_window_has_flags=no,
2963 ac_cv_window_has_flags=no))
2964AC_MSG_RESULT($ac_cv_window_has_flags)
2965
2966
2967if test "$ac_cv_window_has_flags" = yes
2968then
Martin v. Löwisc45929e2002-04-06 10:10:49 +00002969 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
2970 [Define if WINDOW in curses.h offers a field _flags.])
Martin v. Löwiseb9b1032001-10-24 17:10:49 +00002971fi
2972
Martin v. Löwis24a880b2002-12-31 12:55:15 +00002973AC_MSG_CHECKING(for /dev/ptmx)
2974
2975if test -e /dev/ptmx
2976then
2977 AC_MSG_RESULT(yes)
2978 AC_DEFINE(HAVE_DEV_PTMX, 1,
2979 [Define if we have /dev/ptmx.])
2980else
2981 AC_MSG_RESULT(no)
2982fi
2983
Neal Norwitz865400f2003-03-21 01:42:58 +00002984AC_MSG_CHECKING(for /dev/ptc)
2985
2986if test -e /dev/ptc
2987then
2988 AC_MSG_RESULT(yes)
2989 AC_DEFINE(HAVE_DEV_PTC, 1,
2990 [Define if we have /dev/ptc.])
2991else
2992 AC_MSG_RESULT(no)
2993fi
2994
Martin v. Löwis01c04012002-11-11 14:58:44 +00002995AC_CHECK_TYPE(socklen_t,,
2996 AC_DEFINE(socklen_t,int,
2997 Define to `int' if <sys/socket.h> does not define.),[
2998#ifdef HAVE_SYS_TYPES_H
2999#include <sys/types.h>
3000#endif
Guido van Rossum95713eb2000-05-18 20:53:31 +00003001#ifdef HAVE_SYS_SOCKET_H
3002#include <sys/socket.h>
3003#endif
Martin v. Löwis01c04012002-11-11 14:58:44 +00003004])
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003005
Martin v. Löwis06f15bb2001-12-02 13:02:32 +00003006AC_SUBST(THREADHEADERS)
3007
3008for h in `(cd $srcdir;echo Python/thread_*.h)`
3009do
3010 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3011done
3012
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003013AC_SUBST(SRCDIRS)
Jack Jansen0b06be72002-06-21 14:48:38 +00003014SRCDIRS="Parser Grammar Objects Python Modules Mac Mac/Python"
Andrew M. Kuchling8abedde2001-01-26 22:55:24 +00003015AC_MSG_CHECKING(for build directories)
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003016for dir in $SRCDIRS; do
3017 if test ! -d $dir; then
3018 mkdir $dir
Fred Drake884d3ba2000-11-02 17:52:56 +00003019 fi
Neil Schemenauer55f0cf32001-01-24 17:24:33 +00003020done
3021AC_MSG_RESULT(done)
Fred Drake036144d2000-10-26 17:09:35 +00003022
Guido van Rossum627b2d71993-12-24 10:39:16 +00003023# generate output files
Martin v. Löwis88afe662002-10-26 13:47:44 +00003024AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3025AC_OUTPUT
Neil Schemenauer61c51152001-01-26 16:18:16 +00003026
3027echo "creating Setup"
3028if test ! -f Modules/Setup
3029then
3030 cp $srcdir/Modules/Setup.dist Modules/Setup
3031fi
3032
3033echo "creating Setup.local"
3034if test ! -f Modules/Setup.local
3035then
3036 echo "# Edit this file for local setup changes" >Modules/Setup.local
3037fi
3038
3039echo "creating Makefile"
3040$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3041 -s Modules Modules/Setup.config \
Neil Schemenauerf8b71c52001-04-21 17:41:16 +00003042 Modules/Setup.local Modules/Setup
Neil Schemenauer66252162001-02-19 04:47:42 +00003043mv config.c Modules