Mercurial > hg > CbC > CbC_gcc
annotate libgomp/configure.ac @ 107:a3a2f64cf8f4
modify implementation of rectype
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 14 Jun 2012 19:44:54 +0900 |
parents | f6334be47118 |
children | 04ced10e8804 |
rev | line source |
---|---|
0 | 1 # Process this file with autoconf to produce a configure script, like so: |
2 # aclocal -I ../config && autoconf && autoheader && automake | |
3 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
4 AC_PREREQ(2.64) |
0 | 5 AC_INIT([GNU OpenMP Runtime Library], 1.0,,[libgomp]) |
6 AC_CONFIG_HEADER(config.h) | |
7 | |
8 # ------- | |
9 # Options | |
10 # ------- | |
11 | |
12 AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) | |
13 LIBGOMP_ENABLE(version-specific-runtime-libs, no, , | |
14 [Specify that runtime libraries should be installed in a compiler-specific directory], | |
15 permit yes|no) | |
16 AC_MSG_RESULT($enable_version_specific_runtime_libs) | |
17 | |
18 # We would like our source tree to be readonly. However when releases or | |
19 # pre-releases are generated, the flex/bison generated files as well as the | |
20 # various formats of manuals need to be included along with the rest of the | |
21 # sources. Therefore we have --enable-generated-files-in-srcdir to do | |
22 # just that. | |
23 AC_MSG_CHECKING([for --enable-generated-files-in-srcdir]) | |
24 LIBGOMP_ENABLE(generated-files-in-srcdir, no, , | |
25 [put copies of generated files in source dir intended for creating source | |
26 tarballs for users without texinfo bison or flex.], | |
27 permit yes|no) | |
28 AC_MSG_RESULT($enable_generated_files_in_srcdir) | |
29 AM_CONDITIONAL(GENINSRC, test "$enable_generated_files_in_srcdir" = yes) | |
30 | |
31 | |
32 # ------- | |
33 # ------- | |
34 | |
35 # Gets build, host, target, *_vendor, *_cpu, *_os, etc. | |
36 # | |
37 # You will slowly go insane if you do not grok the following fact: when | |
38 # building this library, the top-level /target/ becomes the library's /host/. | |
39 # | |
40 # configure then causes --target to default to --host, exactly like any | |
41 # other package using autoconf. Therefore, 'target' and 'host' will | |
42 # always be the same. This makes sense both for native and cross compilers | |
43 # just think about it for a little while. :-) | |
44 # | |
45 # Also, if this library is being configured as part of a cross compiler, the | |
46 # top-level configure script will pass the "real" host as $with_cross_host. | |
47 # | |
48 # Do not delete or change the following two lines. For why, see | |
49 # http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html | |
50 AC_CANONICAL_SYSTEM | |
51 target_alias=${target_alias-$host_alias} | |
52 | |
53 # Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the | |
54 # following is magically included in AUTOMAKE_OPTIONS in each Makefile.am. | |
55 # 1.9.0: minimum required version | |
56 # no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch | |
57 # of other PACKAGE_* variables will, however, and there's nothing | |
58 # we can do about that; they come from AC_INIT). | |
59 # foreign: we don't follow the normal rules for GNU packages (no COPYING | |
60 # file in the top srcdir, etc, etc), so stop complaining. | |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
61 # no-dist: we don't want 'dist' and related rules. |
0 | 62 # -Wall: turns on all automake warnings... |
63 # -Wno-portability: ...except this one, since GNU make is required. | |
64 # -Wno-override: ... and this one, since we do want this in testsuite. | |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
65 AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override]) |
0 | 66 AM_ENABLE_MULTILIB(, ..) |
67 | |
68 # Calculate toolexeclibdir | |
69 # Also toolexecdir, though it's only used in toolexeclibdir | |
70 case ${enable_version_specific_runtime_libs} in | |
71 yes) | |
72 # Need the gcc compiler version to know where to install libraries | |
73 # and header files if --enable-version-specific-runtime-libs option | |
74 # is selected. | |
75 toolexecdir='$(libdir)/gcc/$(target_alias)' | |
76 toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' | |
77 ;; | |
78 no) | |
79 if test -n "$with_cross_host" && | |
80 test x"$with_cross_host" != x"no"; then | |
81 # Install a library built with a cross compiler in tooldir, not libdir. | |
82 toolexecdir='$(exec_prefix)/$(target_alias)' | |
83 toolexeclibdir='$(toolexecdir)/lib' | |
84 else | |
85 toolexecdir='$(libdir)/gcc-lib/$(target_alias)' | |
86 toolexeclibdir='$(libdir)' | |
87 fi | |
88 multi_os_directory=`$CC -print-multi-os-directory` | |
89 case $multi_os_directory in | |
90 .) ;; # Avoid trailing /. | |
91 *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; | |
92 esac | |
93 ;; | |
94 esac | |
95 AC_SUBST(toolexecdir) | |
96 AC_SUBST(toolexeclibdir) | |
97 | |
98 # Check the compiler. | |
99 # The same as in boehm-gc and libstdc++. Have to borrow it from there. | |
100 # We must force CC to /not/ be precious variables; otherwise | |
101 # the wrong, non-multilib-adjusted value will be used in multilibs. | |
102 # As a side effect, we have to subst CFLAGS ourselves. | |
103 | |
104 m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) | |
105 m4_define([_AC_ARG_VAR_PRECIOUS],[]) | |
106 AC_PROG_CC | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
107 m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) |
0 | 108 |
109 AC_SUBST(CFLAGS) | |
110 | |
111 # In order to override CFLAGS_FOR_TARGET, all of our special flags go | |
112 # in XCFLAGS. But we need them in CFLAGS during configury. So put them | |
113 # in both places for now and restore CFLAGS at the end of config. | |
114 save_CFLAGS="$CFLAGS" | |
115 | |
116 # Add -Wall -Werror if we are using GCC. | |
117 if test "x$GCC" = "xyes"; then | |
118 XCFLAGS="$XCFLAGS -Wall -Werror" | |
119 fi | |
120 | |
121 # Find other programs we need. | |
122 AC_CHECK_TOOL(AR, ar) | |
123 AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error) | |
124 AC_PATH_PROG(PERL, perl, perl-not-found-in-path-error) | |
125 AC_PROG_MAKE_SET | |
126 AC_PROG_INSTALL | |
127 | |
128 # See if makeinfo has been installed and is modern enough | |
129 # that we can use it. | |
130 ACX_CHECK_PROG_VER([MAKEINFO], [makeinfo], [--version], | |
131 [GNU texinfo.* \([0-9][0-9.]*\)], | |
132 [4.[4-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*]) | |
133 AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes") | |
134 | |
135 | |
136 # Configure libtool | |
137 AM_PROG_LIBTOOL | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
138 ACX_LT_HOST_FLAGS |
0 | 139 AC_SUBST(enable_shared) |
140 AC_SUBST(enable_static) | |
141 | |
142 AM_MAINTAINER_MODE | |
143 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
144 # Create a spec file, so that compile/link tests don't fail |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
145 test -f libgfortran.spec || touch libgfortran.spec |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
146 FCFLAGS="$FCFLAGS -L." |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
147 |
0 | 148 # We need gfortran to compile parts of the library |
149 # We can't use AC_PROG_FC because it expects a fully working gfortran. | |
150 #AC_PROG_FC(gfortran) | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
151 case `echo $GFORTRAN` in |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
152 -* | no* ) |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
153 FC=no ;; |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
154 *) |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
155 set dummy $GFORTRAN; ac_word=$2 |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
156 if test -x "$ac_word"; then |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
157 FC="$GFORTRAN" |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
158 else |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
159 FC=no |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
160 fi ;; |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
161 esac |
0 | 162 AC_PROG_FC(gfortran) |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
163 FCFLAGS="$FCFLAGS -Wall -L../libgfortran" |
0 | 164 |
165 # For libtool versioning info, format is CURRENT:REVISION:AGE | |
166 libtool_VERSION=1:0:0 | |
167 AC_SUBST(libtool_VERSION) | |
168 | |
169 # Check header files. | |
170 AC_STDC_HEADERS | |
171 AC_HEADER_TIME | |
172 ACX_HEADER_STRING | |
173 AC_CHECK_HEADERS(unistd.h semaphore.h sys/loadavg.h sys/time.h sys/time.h) | |
174 | |
175 GCC_HEADER_STDINT(gstdint.h) | |
176 | |
177 # Check to see if -pthread or -lpthread is needed. Prefer the former. | |
178 # In case the pthread.h system header is not found, this test will fail. | |
179 XPCFLAGS="" | |
180 CFLAGS="$CFLAGS -pthread" | |
181 AC_LINK_IFELSE( | |
182 [AC_LANG_PROGRAM( | |
183 [#include <pthread.h> | |
184 void *g(void *d) { return NULL; }], | |
185 [pthread_t t; pthread_create(&t,NULL,g,NULL);])], | |
186 [XPCFLAGS=" -Wc,-pthread"], | |
187 [CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS" | |
188 AC_LINK_IFELSE( | |
189 [AC_LANG_PROGRAM( | |
190 [#include <pthread.h> | |
191 void *g(void *d) { return NULL; }], | |
192 [pthread_t t; pthread_create(&t,NULL,g,NULL);])], | |
193 [], | |
194 [AC_MSG_ERROR([Pthreads are required to build libgomp])])]) | |
195 | |
196 # Check for functions needed. | |
197 AC_CHECK_FUNCS(getloadavg clock_gettime strtoull) | |
198 | |
199 # Check for broken semaphore implementation on darwin. | |
200 # sem_init returns: sem_init error: Function not implemented. | |
201 case "$host" in | |
202 *-darwin*) | |
203 AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1, | |
204 Define if the POSIX Semaphores do not work on your system.) | |
205 ;; | |
206 esac | |
207 | |
208 GCC_LINUX_FUTEX(:) | |
209 | |
210 # Check for pthread_{,attr_}[sg]etaffinity_np. | |
211 AC_LINK_IFELSE( | |
212 [AC_LANG_PROGRAM( | |
213 [#define _GNU_SOURCE | |
214 #include <pthread.h>], | |
215 [cpu_set_t cpuset; | |
216 pthread_attr_t attr; | |
217 pthread_getaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset); | |
218 if (CPU_ISSET (0, &cpuset)) | |
219 CPU_SET (1, &cpuset); | |
220 else | |
221 CPU_ZERO (&cpuset); | |
222 pthread_setaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset); | |
223 pthread_attr_init (&attr); | |
224 pthread_attr_getaffinity_np (&attr, sizeof (cpu_set_t), &cpuset); | |
225 pthread_attr_setaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);])], | |
226 AC_DEFINE(HAVE_PTHREAD_AFFINITY_NP, 1, | |
227 [ Define if pthread_{,attr_}{g,s}etaffinity_np is supported.])) | |
228 | |
229 # At least for glibc, clock_gettime is in librt. But don't pull that | |
230 # in if it still doesn't give us the function we want. | |
231 if test $ac_cv_func_clock_gettime = no; then | |
232 AC_CHECK_LIB(rt, clock_gettime, | |
233 [LIBS="-lrt $LIBS" | |
234 AC_DEFINE(HAVE_CLOCK_GETTIME, 1, | |
235 [Define to 1 if you have the `clock_gettime' function.])]) | |
236 fi | |
237 | |
238 # See if we support thread-local storage. | |
239 GCC_CHECK_TLS | |
240 | |
241 # See what sort of export controls are availible. | |
242 LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY | |
243 LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT | |
244 LIBGOMP_CHECK_ATTRIBUTE_ALIAS | |
245 LIBGOMP_ENABLE_SYMVERS | |
246 | |
247 if test $enable_symvers = gnu; then | |
248 AC_DEFINE(LIBGOMP_GNU_SYMBOL_VERSIONING, 1, | |
249 [Define to 1 if GNU symbol versioning is used for libgomp.]) | |
250 fi | |
251 | |
252 # Get target configury. | |
253 . ${srcdir}/configure.tgt | |
254 CFLAGS="$save_CFLAGS $XCFLAGS" | |
255 | |
256 # Check for __sync_val_compare_and_swap, but only after the target has | |
257 # had a chance to set XCFLAGS. | |
258 LIBGOMP_CHECK_SYNC_BUILTINS | |
259 | |
260 XCFLAGS="$XCFLAGS$XPCFLAGS" | |
261 | |
262 AC_SUBST(config_path) | |
263 AC_SUBST(XCFLAGS) | |
264 AC_SUBST(XLDFLAGS) | |
265 | |
266 # Cleanup and exit. | |
267 CFLAGS="$save_CFLAGS" | |
268 AC_CACHE_SAVE | |
269 | |
270 if test ${multilib} = yes; then | |
271 multilib_arg="--enable-multilib" | |
272 else | |
273 multilib_arg= | |
274 fi | |
275 | |
276 # Set up the set of libraries that we need to link against for libgomp. | |
277 # Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp, | |
278 # which will force linkage against -lpthread (or equivalent for the system). | |
279 # That's not 100% ideal, but about the best we can do easily. | |
280 if test $enable_shared = yes; then | |
281 link_gomp="-lgomp %{static: $LIBS}" | |
282 else | |
283 link_gomp="-lgomp $LIBS" | |
284 fi | |
285 AC_SUBST(link_gomp) | |
286 | |
287 AM_CONDITIONAL([USE_FORTRAN], [test "$ac_cv_fc_compiler_gnu" = yes]) | |
288 | |
289 # ??? 2006-01-24: Paulo committed to asking autoconf folk to document | |
290 # and export AC_COMPUTE_INT. If that happens, then we'll need to remove | |
291 # the underscore here and update the PREREQ. If it doesn't, then we'll | |
292 # need to copy this macro to our acinclude.m4. | |
293 save_CFLAGS="$CFLAGS" | |
294 for i in $config_path; do | |
295 if test -f $srcdir/config/$i/omp-lock.h; then | |
296 CFLAGS="$CFLAGS -include confdefs.h -include $srcdir/config/$i/omp-lock.h" | |
297 break | |
298 fi | |
299 done | |
300 | |
301 _AC_COMPUTE_INT([sizeof (omp_lock_t)], [OMP_LOCK_SIZE],, | |
302 [AC_MSG_ERROR([unsupported system, cannot find sizeof (omp_lock_t)])]) | |
303 _AC_COMPUTE_INT([__alignof (omp_lock_t)], [OMP_LOCK_ALIGN]) | |
304 _AC_COMPUTE_INT([sizeof (omp_nest_lock_t)], [OMP_NEST_LOCK_SIZE]) | |
305 _AC_COMPUTE_INT([__alignof (omp_nest_lock_t)], [OMP_NEST_LOCK_ALIGN]) | |
306 _AC_COMPUTE_INT([sizeof (omp_lock_25_t)], [OMP_LOCK_25_SIZE],, | |
307 [AC_MSG_ERROR([unsupported system, cannot find sizeof (omp_lock_25_t)])]) | |
308 _AC_COMPUTE_INT([__alignof (omp_lock_25_t)], [OMP_LOCK_25_ALIGN]) | |
309 _AC_COMPUTE_INT([sizeof (omp_nest_lock_25_t)], [OMP_NEST_LOCK_25_SIZE]) | |
310 _AC_COMPUTE_INT([__alignof (omp_nest_lock_25_t)], [OMP_NEST_LOCK_25_ALIGN]) | |
311 | |
312 # If the lock fits in an integer, then arrange for Fortran to use that | |
313 # integer. If it doesn't, then arrange for Fortran to use a pointer. | |
314 # Except that we don't have a way at present to multi-lib the installed | |
315 # Fortran modules, so we assume 8 bytes for pointers, regardless of the | |
316 # actual target. | |
317 OMP_LOCK_KIND=$OMP_LOCK_SIZE | |
318 OMP_NEST_LOCK_KIND=$OMP_NEST_LOCK_SIZE | |
319 if test $OMP_LOCK_SIZE -gt 8 || test $OMP_LOCK_ALIGN -gt $OMP_LOCK_SIZE; then | |
320 OMP_LOCK_KIND=8 | |
321 fi | |
322 if test $OMP_NEST_LOCK_SIZE -gt 8 || test $OMP_NEST_LOCK_ALIGN -gt $OMP_NEST_LOCK_SIZE; then | |
323 OMP_NEST_LOCK_KIND=8 | |
324 fi | |
325 OMP_LOCK_25_KIND=$OMP_LOCK_25_SIZE | |
326 OMP_NEST_LOCK_25_KIND=$OMP_NEST_LOCK_25_SIZE | |
327 if test $OMP_LOCK_25_SIZE -gt 8 || test $OMP_LOCK_25_ALIGN -gt $OMP_LOCK_25_SIZE; then | |
328 OMP_LOCK_25_KIND=8 | |
329 fi | |
330 if test $OMP_NEST_LOCK_25_SIZE -gt 8 || test $OMP_NEST_LOCK_25_ALIGN -gt $OMP_NEST_LOCK_25_SIZE; then | |
331 OMP_NEST_LOCK_25_KIND=8 | |
332 fi | |
333 | |
334 AC_SUBST(OMP_LOCK_SIZE) | |
335 AC_SUBST(OMP_LOCK_ALIGN) | |
336 AC_SUBST(OMP_NEST_LOCK_SIZE) | |
337 AC_SUBST(OMP_NEST_LOCK_ALIGN) | |
338 AC_SUBST(OMP_LOCK_KIND) | |
339 AC_SUBST(OMP_NEST_LOCK_KIND) | |
340 AC_SUBST(OMP_LOCK_25_SIZE) | |
341 AC_SUBST(OMP_LOCK_25_ALIGN) | |
342 AC_SUBST(OMP_NEST_LOCK_25_SIZE) | |
343 AC_SUBST(OMP_NEST_LOCK_25_ALIGN) | |
344 AC_SUBST(OMP_LOCK_25_KIND) | |
345 AC_SUBST(OMP_NEST_LOCK_25_KIND) | |
346 CFLAGS="$save_CFLAGS" | |
347 | |
348 AC_CONFIG_FILES(omp.h omp_lib.h omp_lib.f90 libgomp_f.h) | |
349 AC_CONFIG_FILES(Makefile testsuite/Makefile libgomp.spec) | |
350 AC_OUTPUT |