]> git.ipfire.org Git - thirdparty/gcc.git/blob - libphobos/m4/druntime/libraries.m4
Add D front-end, libphobos library, and D2 testsuite.
[thirdparty/gcc.git] / libphobos / m4 / druntime / libraries.m4
1 #
2 # Contains macros to handle library dependencies.
3 #
4
5
6 # DRUNTIME_LIBRARIES_THREAD
7 # -------------------------
8 # Allow specifying the thread library to link with or autodetect
9 # Add thread library to LIBS if necessary.
10 AC_DEFUN([DRUNTIME_LIBRARIES_THREAD],
11 [
12 enable_thread_lib=yes
13 AC_ARG_ENABLE(thread-lib,
14 AC_HELP_STRING([--enable-thread-lib=<arg>],
15 [specify linker option for the system thread library (default: autodetect)]))
16
17 AS_IF([test "x$enable_thread_lib" = "xyes"], [
18 AC_SEARCH_LIBS([pthread_create], [pthread])
19 ], [
20 AS_IF([test "x$enable_thread_lib" = "xno"], [
21 AC_MSG_CHECKING([for thread library])
22 AC_MSG_RESULT([disabled])
23 ], [
24 AC_CHECK_LIB([$enable_thread_lib], [pthread_create], [], [
25 AC_MSG_ERROR([Thread library not found])
26 ])
27 ])
28 ])
29 ])
30
31
32 # DRUNTIME_LIBRARIES_DLOPEN
33 # -----------------------
34 # Autodetect and add dl library to LIBS if necessary.
35 AC_DEFUN([DRUNTIME_LIBRARIES_DLOPEN],
36 [
37 # Libtool has already checked this, so re-use the inferred dlopen lib.
38 AS_IF([test "x$enable_dlopen" = "xyes" && test -n "$lt_cv_dlopen_libs"], [
39 LIBS="$LIBS $lt_cv_dlopen_libs"
40 ], [
41 ])
42 ])
43
44
45 # DRUNTIME_LIBRARIES_ZLIB
46 # -----------------------
47 # Allow specifying whether to use the system zlib or
48 # compiling the zlib included in GCC. Define
49 # DRUNTIME_ZLIB_SYSTEM conditional and add zlib to
50 # LIBS if necessary.
51 AC_DEFUN([DRUNTIME_LIBRARIES_ZLIB],
52 [
53 AC_ARG_WITH(target-system-zlib,
54 AS_HELP_STRING([--with-target-system-zlib],
55 [use installed libz (default: no)]))
56
57 system_zlib=false
58 AS_IF([test "x$with_target_system_zlib" = "xyes"], [
59 AC_CHECK_LIB([z], [deflate], [
60 system_zlib=yes
61 ], [
62 AC_MSG_ERROR([System zlib not found])
63 ])
64 ], [
65 AC_MSG_CHECKING([for zlib])
66 AC_MSG_RESULT([just compiled])
67 ])
68
69 AM_CONDITIONAL([DRUNTIME_ZLIB_SYSTEM], [test "$with_target_system_zlib" = yes])
70 ])
71
72 # DRUNTIME_LIBRARIES_ATOMIC
73 # -------------------------
74 # Allow specifying whether to use libatomic for atomic support.
75 AC_DEFUN([DRUNTIME_LIBRARIES_ATOMIC],
76 [
77 AC_ARG_WITH(libatomic,
78 AS_HELP_STRING([--without-libatomic],
79 [Do not use libatomic in core.atomic (default: auto)]))
80
81 DCFG_HAVE_LIBATOMIC=false
82 LIBATOMIC=
83 AS_IF([test "x$with_libatomic" != "xno"], [
84 DCFG_HAVE_LIBATOMIC=true
85 LIBATOMIC=../../libatomic/libatomic_convenience.la
86 ], [
87 AC_MSG_CHECKING([for libatomic])
88 AC_MSG_RESULT([disabled])
89 ])
90
91 AC_SUBST(DCFG_HAVE_LIBATOMIC)
92 AC_SUBST(LIBATOMIC)
93 ])
94
95 # DRUNTIME_LIBRARIES_BACKTRACE
96 # ---------------------------
97 # Allow specifying whether to use libbacktrace for backtrace support.
98 # Adds subsitute for BACKTRACE_SUPPORTED, BACKTRACE_USES_MALLOC,
99 # and BACKTRACE_SUPPORTS_THREADS.
100 AC_DEFUN([DRUNTIME_LIBRARIES_BACKTRACE],
101 [
102 AC_LANG_PUSH([C])
103 BACKTRACE_SUPPORTED=false
104 BACKTRACE_USES_MALLOC=false
105 BACKTRACE_SUPPORTS_THREADS=false
106 LIBBACKTRACE=""
107
108 AC_ARG_WITH(libbacktrace,
109 AS_HELP_STRING([--without-libbacktrace],
110 [Do not use libbacktrace in core.runtime (default: auto)]))
111
112 AS_IF([test "x$with_libbacktrace" != "xno"], [
113 LIBBACKTRACE=../../libbacktrace/libbacktrace.la
114
115 gdc_save_CPPFLAGS=$CPPFLAGS
116 CPPFLAGS+=" -I../libbacktrace "
117
118 AC_CHECK_HEADER(backtrace-supported.h, have_libbacktrace_h=true,
119 have_libbacktrace_h=false)
120
121 if $have_libbacktrace_h; then
122 AC_MSG_CHECKING([libbacktrace: BACKTRACE_SUPPORTED])
123 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
124 [
125 #include <backtrace-supported.h>
126 #if BACKTRACE_SUPPORTED
127 FOUND_LIBBACKTRACE_RESULT_GDC
128 #endif
129 ], BACKTRACE_SUPPORTED=true, BACKTRACE_SUPPORTED=false)
130 AC_MSG_RESULT($BACKTRACE_SUPPORTED)
131
132 AC_MSG_CHECKING([libbacktrace: BACKTRACE_USES_MALLOC])
133 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
134 [
135 #include <backtrace-supported.h>
136 #if BACKTRACE_USES_MALLOC
137 FOUND_LIBBACKTRACE_RESULT_GDC
138 #endif
139 ], BACKTRACE_USES_MALLOC=true, BACKTRACE_USES_MALLOC=false)
140 AC_MSG_RESULT($BACKTRACE_USES_MALLOC)
141
142 AC_MSG_CHECKING([libbacktrace: BACKTRACE_SUPPORTS_THREADS])
143 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
144 [
145 #include <backtrace-supported.h>
146 #if BACKTRACE_SUPPORTS_THREADS
147 FOUND_LIBBACKTRACE_RESULT_GDC
148 #endif
149 ], BACKTRACE_SUPPORTS_THREADS=true, BACKTRACE_SUPPORTS_THREADS=false)
150 AC_MSG_RESULT($BACKTRACE_SUPPORTS_THREADS)
151 fi
152 CPPFLAGS=$gdc_save_CPPFLAGS
153 ], [
154 AC_MSG_CHECKING([for libbacktrace])
155 AC_MSG_RESULT([disabled])
156 ])
157
158 AC_SUBST(LIBBACKTRACE)
159 AC_SUBST(BACKTRACE_SUPPORTED)
160 AC_SUBST(BACKTRACE_USES_MALLOC)
161 AC_SUBST(BACKTRACE_SUPPORTS_THREADS)
162 AC_LANG_POP([C])
163 ])