]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/config/tools/configure.in
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / config / tools / configure.in
CommitLineData
7c673cae
FG
1# copyright John Maddock 2003
2# Use, modification and distribution are subject to the
3# Boost Software License, Version 1.0. (See accompanying file
4# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5#
6# the following variables contain our macro definitions:
7#
8required_defs=""
9required_undefs=""
10
11dnl Process this file with autoconf to produce a configure script.
12dnl disable cache processing, it has no effect here:
13define([AC_CACHE_LOAD], )dnl
14define([AC_CACHE_SAVE], )dnl
15AC_INIT(./tools/configure.in)
16
17
18AC_ARG_ENABLE(test, --enable-test tests current settings rather than defining new ones)
19
20if test "foo"$enable_test = "foo"; then
21 enable_test="no"
22fi
23
24cat << EOF
25*** $0: boost configuration utility ***
26
27Please stand by while exploring compiler capabilities...
28Be patient - this could take some time...
29
30Note that this test script only gives an approximate
31configuration - you will need to test the results carefully
32using the boost regression test suite before using the results.
33EOF
34
35if test $enable_test = 'yes'; then
36
37cat << EOF
38
39This script reports only the difference between the detected
40configuration, and the existing boost configuration. Its
41primary aim is to quickly report how well boost is configured
42for one compiler.
43
44***
45
46EOF
47
48else
49
50cat << EOF
51
52***
53
54EOF
55fi
56
57AC_ARG_ENABLE(extension,[--enable-extension=<ext>],
58[
59case "$enableval" in
60 no) AC_MSG_RESULT(Info :.cpp used as extension for tests)
61 ac_ext=cpp
62 ;;
63 *) AC_MSG_RESULT(Argument : .$enableval used as extension)
64 ac_ext=$enableval
65esac
66],
67[AC_MSG_RESULT(Info : .cpp used as extension for tests)
68 ac_ext=cpp
69]
70)
71
72dnl figure out which version of sed to use, on some platforms
73dnl the version in the path is not Unix conforming (MacOS X ? )
74
75if test -f /bin/sed ; then
76 SED=/bin/sed
77else
78 if test -f /usr/bin/sed ; then
79 SED=/usr/bin/sed
80 else
81 SED=sed
82 fi
83fi
84
85dnl Set the boost main directory.
86AC_MSG_CHECKING(for boost main tree)
87boost_base=
88AC_ARG_WITH(boost,
89 AC_HELP_STRING([--with-boost=DIR],[path to the boost main tree]),
90 [
91 #echo "--with boost is set"
92 if test "x$withval" != "x"; then
93 if test "x$withval" != no; then
94 boost_base=`echo "$withval" | $SED 's,//*,/,g' | $SED 's,/$,,'`
95 #echo boost_base=$boost_base
96 if test -f "$boost_base/boost/config.hpp"; then
97 if test -f "$boost_base/libs/config/configure"; then :; else
98 boost_base=
99 #echo "$boost_base/libs/config/configure" not found
100 fi
101 else
102 #echo "$boost_base/boost/config.hpp" not found
103 boost_base=
104 fi
105 fi
106 fi
107 ]
108)
109if test "x$boost_base" = "x"; then
110 #echo '$0 = ' $0
111 boost_base=`expr "x$0" : 'x\(.*\)/@<:@/@:>@*' \| '.'`
112 boost_base="$boost_base/../.."
113 #echo boost_base=$boost_base
114 if test -f "$boost_base/boost/config.hpp"; then
115 if test -f "$boost_base/libs/config/configure"; then :; else
116 boost_base=
117 fi
118 else
119 boost_base=
120 fi
121fi
122if test "x$boost_base" != "x"; then
123 AC_MSG_RESULT([$boost_base])
124else
125 AC_MSG_RESULT([not found])
126 AC_MSG_ERROR([The boost main tree was not found.
127 Specify its location by the --with-boost option.])
128fi
129
130
131
132# Save that, as it is being redefined several times
133use_ac_ext=$ac_ext
134
135AC_PROG_CXX
136ac_ext=$use_ac_ext
137
138AC_LANG_CPLUSPLUS
139
140OLD_CXXFLAGS="$CXXFLAGS"
141
142
143if test $enable_test = 'yes'; then
144 CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS"
145else
146 CXXFLAGS="-I$boost_base -I$boost_base/libs/config/test $CXXFLAGS -DBOOST_NO_CONFIG"
147fi
148
149# add the -AA conformance option to CXXFLAGS for HP aCC only
150if test $CXX = 'aCC'; then
151 CXXFLAGS="-AA $CXXFLAGS"
152fi
153
154dnl check for some standard libraries
155dnl without these some of the tests may fail:
156
157AC_CHECK_LIB(pthread, pthread_exit)
158AC_CHECK_LIB(m, cos)
159AC_CHECK_LIB(rt, clock)
160
161#
162# enumerate test files and test each one:
163#
164for file in $boost_base/libs/config/test/boost_no*.ipp; do
165
166 basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
167 macroname=`cat $file | grep '^//[[ ]]*MACRO:' | $SED 's/.*MACRO:[[ ]]*\([[_A-Z0-9]]*\).*/\1/'`
168 title=`cat $file | grep '^//[[ ]]*TITLE:' | $SED 's/.*TITLE:[[ ]]*\([[^ ]].*\)/\1/'`
b32b8144 169 namespace=`echo $macroname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
7c673cae
FG
170
171#echo file = $file
172#echo basename = $basename
173#echo macroname = $macroname
174#echo title = $title
175#echo namespace = $namespace
176
177 ac_ext=$use_ac_ext
178 if test $enable_test = 'yes'; then
179 AC_MSG_CHECKING($title (pass expected) )
180 else
181 AC_MSG_CHECKING($title )
182 fi
183 AC_TRY_RUN(
184 [
185#include <boost/config.hpp>
186#include "test.hpp"
187
188#if !defined($macroname) || defined(BOOST_NO_CONFIG)
189#include "boost_$basename.ipp"
190#else
191namespace ${namespace} = empty_boost;
192#endif
193
194int main(){ return ${namespace}::test(); } ]
195 ,
196 [AC_MSG_RESULT(OK)]
197 ,
198 [AC_MSG_RESULT(Failed)
199 required_defs="$macroname $required_defs"]
200 )
201
202 if test $enable_test = 'yes'; then
203
204 ac_ext=$use_ac_ext
205 AC_MSG_CHECKING($title (fail expected) )
206 AC_TRY_RUN(
207 [
208#include <boost/config.hpp>
209#include "test.hpp"
210
211#ifdef $macroname
212#include "boost_$basename.ipp"
213#else
214#error "this file should not compile"
215#endif
216
217int main() { return ${namespace}::test(); }]
218 ,
219 [AC_MSG_RESULT(failed)
220 required_undefs="$macroname $required_undefs"]
221 ,
222 [AC_MSG_RESULT(OK)]
223 )
224
225 fi
226
227done
228
229#
230# enumerate optional test files and test each one:
231#
232for file in $boost_base/libs/config/test/boost_has*.ipp; do
233
234 basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
235 macroname=`cat $file | grep '^//[[ ]]*MACRO:' | $SED 's/.*MACRO:[[ ]]*\([[_A-Z0-9]]*\).*/\1/'`
236 title=`cat $file | grep '^//[[ ]]*TITLE:' | $SED 's/.*TITLE:[[ ]]*\([[^ ]].*\)/\1/'`
b32b8144 237 namespace=`echo $macroname | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
7c673cae
FG
238
239# echo $file
240# echo $basename
241# echo $macroname
242# echo $title
243
244 ac_ext=$use_ac_ext
245 if test $enable_test = 'yes'; then
246 AC_MSG_CHECKING($title (pass expected) )
247 AC_TRY_RUN(
248 [
249#include <boost/config.hpp>
250#include "test.hpp"
251
252#ifdef $macroname
253#include "boost_$basename.ipp"
254#else
255namespace ${namespace} = empty_boost;
256#endif
257
258int main(){ return ${namespace}::test(); }]
259 ,
260 [AC_MSG_RESULT(OK)]
261 ,
262 [AC_MSG_RESULT(Failed)
263 required_undefs="$macroname $required_undefs"]
264 )
265
266 AC_MSG_CHECKING($title (fail expected) )
267 AC_TRY_RUN(
268 [
269#include <boost/config.hpp>
270#include "test.hpp"
271
272#ifndef $macroname
273#include "boost_$basename.ipp"
274#else
275#error "this file should not compile"
276#endif
277
278int main(){ return ${namespace}::test(); }]
279 ,
280 [
281 AC_MSG_RESULT(failed)
282 required_defs="$macroname $required_defs"
283 ]
284 ,
285 [
286 AC_MSG_RESULT(OK)
287 ]
288 )
289
290 else
291
292 ac_ext=$use_ac_ext
293 AC_MSG_CHECKING($title)
294 AC_TRY_RUN(
295 [
296#include <boost/config.hpp>
297#include "test.hpp"
298
299#include "boost_$basename.ipp"
300
301int main(){ return ${namespace}::test(); }]
302 ,
303 [
304 AC_MSG_RESULT(Yes)
305 required_defs="$macroname $required_defs"
306 ]
307 ,
308 [
309 AC_MSG_RESULT(no)
310 ]
311 )
312
313 fi
314
315done
316
317
318#echo $required_defs
319#echo $required_undefs
320
321if test $enable_test = 'yes'; then
322
323if test "$required_defs" = ""; then
324echo no boost macros need to be defined
325echo no boost macros need to be defined >&5
326else
327echo the following macros need to be defined
328echo $required_defs
329echo the following macros need to be defined >&5
330echo $required_defs >&5
331fi
332if test "$required_undefs" = ""; then
333echo no boost macros need to be undefined
334echo no boost macros need to be undefined >&5
335else
336echo "the following macros need to be undef'ed"
337echo $required_undefs
338echo "the following macros need to be undef'ed" >&5
339echo $required_undefs >&5
340fi
341
342else
343
344date_string=`date`
345
346echo boost_base=$boost_base
347
348cat > user.hpp << EOF
349// (C) Copyright Boost.org 2001.
350// Do not check in modified versions of this file,
351// This file may be customised by the end user, but not by boost.
352
353//
354// Use this file to define a site and compiler specific
355// configuration policy, this version was auto-generated by
356// configure on ${date_string}
357// With the following options:
358// CXX = ${CXX}
359// CXXFLAGS = ${CXXFLAGS}
360// LDFLAGS = ${LDFLAGS}
361// LIBS = ${LIBS}
362//
363
364// define this to disable all config options,
365// excluding the user config. Use if your
366// setup is fully ISO complient, and has no
367// useful extentions, or for autoconf generated
368// setups:
369#ifndef BOOST_NO_CONFIG
370# define BOOST_NO_CONFIG
371#endif
372
373
374// define if you want to disable threading support, even
375// when available:
376// #define BOOST_DISABLE_THREADS
377
378// define if you want the regex library to use the C locale
379// even on Win32:
380// #define BOOST_REGEX_USE_C_LOCALE
381
382// define this is you want the regex library to use the C++
383// locale:
384// #define BOOST_REGEX_USE_CPP_LOCALE
385
386
387//
388// options added by configure:
389//
390EOF
391
392for name in $required_defs; do
393echo '#define '"$name" >> user.hpp
394done
395
396cat_conts=`cat user.hpp`
397
398#
399# post configuration step:
400#
401AC_MSG_CHECKING(original configuration )
402rm -f conftest$ac_exeext
403$CXX -I$boost_base $OLD_CXXFLAGS -DBOOST_NO_USER_CONFIG -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
404./conftest >&5 2>&1
405AC_MSG_RESULT(done)
406AC_MSG_CHECKING(new configuration )
407rm -f conftest$ac_exeext
408$CXX -I$boost_base -I$boost_base/libs/config $OLD_CXXFLAGS -DBOOST_USER_CONFIG='"user.hpp"' -o conftest$ac_exeext $LDFLAGS $boost_base/libs/config/test/config_info.cpp $LIBS >&5 2>&1
409./conftest >&5 2>&1
410AC_MSG_RESULT(done)
411
412AC_OUTPUT(
413[],
414[
415cat > user.hpp << EEEOF
416${cat_conts}
417EEEOF
418cat << EEEOF
419
420Adjustments to boost configuration have been written to
421user.hpp. Copy this to boost/config/user.hpp to use "as is",
422or define BOOST_SITE_CONFIG to point to its location.
423
424TREAT THIS FILE WITH CARE.
425Autoconf generated options are not infallible!
426
427EEEOF
428],
429[
430cat_conts="$cat_conts"
431]
432)
433
434fi
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463