2 # Contains macros to handle library dependencies.
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],
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)]))
17 AS_IF([test "x$enable_thread_lib" = "xyes"], [
18 AC_SEARCH_LIBS([pthread_create], [pthread])
20 AS_IF([test "x$enable_thread_lib" = "xno"], [
21 AC_MSG_CHECKING([for thread library])
22 AC_MSG_RESULT([disabled])
24 AC_CHECK_LIB([$enable_thread_lib], [pthread_create], [], [
25 AC_MSG_ERROR([Thread library not found])
32 # DRUNTIME_LIBRARIES_DLOPEN
33 # -----------------------
34 # Autodetect and add dl library to LIBS if necessary.
35 AC_DEFUN([DRUNTIME_LIBRARIES_DLOPEN],
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"
45 # DRUNTIME_LIBRARIES_NET
46 # -----------------------
47 # Autodetect and add networking library to LIBS if necessary.
48 AC_DEFUN([DRUNTIME_LIBRARIES_NET],
50 dnl Test for -lsocket and -lnsl. Copied from libjava/configure.ac.
51 AC_CACHE_CHECK([for socket libraries], druntime_cv_lib_sockets,
52 [druntime_cv_lib_sockets=
53 druntime_check_both=no
54 AC_CHECK_FUNC(connect, druntime_check_socket=no, druntime_check_socket=yes)
55 if test "$druntime_check_socket" = "yes"; then
56 unset ac_cv_func_connect
57 AC_CHECK_LIB(socket, main, druntime_cv_lib_sockets="-lsocket",
58 druntime_check_both=yes)
60 if test "$druntime_check_both" = "yes"; then
61 druntime_old_libs=$LIBS
62 LIBS="$LIBS -lsocket -lnsl"
63 unset ac_cv_func_accept
65 [druntime_check_nsl=no
66 druntime_cv_lib_sockets="-lsocket -lnsl"])
67 unset ac_cv_func_accept
68 LIBS=$druntime_old_libs
70 unset ac_cv_func_gethostbyname
71 druntime_old_libs="$LIBS"
72 AC_CHECK_FUNC(gethostbyname, ,
73 [AC_CHECK_LIB(nsl, main,
74 [druntime_cv_lib_sockets="$druntime_cv_lib_sockets -lnsl"])])
76 LIBS="$LIBS $druntime_cv_lib_sockets"
79 # DRUNTIME_LIBRARIES_ZLIB
80 # -----------------------
81 # Allow specifying whether to use the system zlib or
82 # compiling the zlib included in GCC. Define
83 # DRUNTIME_ZLIB_SYSTEM conditional and add zlib to
85 AC_DEFUN([DRUNTIME_LIBRARIES_ZLIB],
87 AC_ARG_WITH(target-system-zlib,
88 AS_HELP_STRING([--with-target-system-zlib],
89 [use installed libz (default: no)]))
92 AS_IF([test "x$with_target_system_zlib" = "xyes"], [
93 AC_CHECK_LIB([z], [deflate], [
96 AC_MSG_ERROR([System zlib not found])
99 AC_MSG_CHECKING([for zlib])
100 AC_MSG_RESULT([just compiled])
103 AM_CONDITIONAL([DRUNTIME_ZLIB_SYSTEM], [test "$with_target_system_zlib" = yes])
106 # DRUNTIME_LIBRARIES_ATOMIC
107 # -------------------------
108 # Allow specifying whether to use libatomic for atomic support.
109 AC_DEFUN([DRUNTIME_LIBRARIES_ATOMIC],
111 AC_ARG_WITH(libatomic,
112 AS_HELP_STRING([--without-libatomic],
113 [Do not use libatomic in core.atomic (default: auto)]))
115 DCFG_HAVE_LIBATOMIC=false
117 AS_IF([test "x$with_libatomic" != "xno"], [
118 DCFG_HAVE_LIBATOMIC=true
119 LIBATOMIC=../../libatomic/libatomic_convenience.la
121 AC_MSG_CHECKING([for libatomic])
122 AC_MSG_RESULT([disabled])
125 AC_SUBST(DCFG_HAVE_LIBATOMIC)
129 # DRUNTIME_LIBRARIES_BACKTRACE
130 # ---------------------------
131 # Allow specifying whether to use libbacktrace for backtrace support.
132 # Adds subsitute for BACKTRACE_SUPPORTED, BACKTRACE_USES_MALLOC,
133 # and BACKTRACE_SUPPORTS_THREADS.
134 AC_DEFUN([DRUNTIME_LIBRARIES_BACKTRACE],
137 BACKTRACE_SUPPORTED=false
138 BACKTRACE_USES_MALLOC=false
139 BACKTRACE_SUPPORTS_THREADS=false
142 AC_ARG_WITH(libbacktrace,
143 AS_HELP_STRING([--without-libbacktrace],
144 [Do not use libbacktrace in core.runtime (default: auto)]))
146 AS_IF([test "x$with_libbacktrace" != "xno"], [
147 LIBBACKTRACE=../../libbacktrace/libbacktrace.la
149 gdc_save_CPPFLAGS=$CPPFLAGS
150 CPPFLAGS+=" -I../libbacktrace "
152 AC_CHECK_HEADER(backtrace-supported.h, have_libbacktrace_h=true,
153 have_libbacktrace_h=false)
155 if $have_libbacktrace_h; then
156 AC_MSG_CHECKING([libbacktrace: BACKTRACE_SUPPORTED])
157 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
159 #include <backtrace-supported.h>
160 #if BACKTRACE_SUPPORTED
161 FOUND_LIBBACKTRACE_RESULT_GDC
163 ], BACKTRACE_SUPPORTED=true, BACKTRACE_SUPPORTED=false)
164 AC_MSG_RESULT($BACKTRACE_SUPPORTED)
166 AC_MSG_CHECKING([libbacktrace: BACKTRACE_USES_MALLOC])
167 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
169 #include <backtrace-supported.h>
170 #if BACKTRACE_USES_MALLOC
171 FOUND_LIBBACKTRACE_RESULT_GDC
173 ], BACKTRACE_USES_MALLOC=true, BACKTRACE_USES_MALLOC=false)
174 AC_MSG_RESULT($BACKTRACE_USES_MALLOC)
176 AC_MSG_CHECKING([libbacktrace: BACKTRACE_SUPPORTS_THREADS])
177 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
179 #include <backtrace-supported.h>
180 #if BACKTRACE_SUPPORTS_THREADS
181 FOUND_LIBBACKTRACE_RESULT_GDC
183 ], BACKTRACE_SUPPORTS_THREADS=true, BACKTRACE_SUPPORTS_THREADS=false)
184 AC_MSG_RESULT($BACKTRACE_SUPPORTS_THREADS)
186 CPPFLAGS=$gdc_save_CPPFLAGS
188 AC_MSG_CHECKING([for libbacktrace])
189 AC_MSG_RESULT([disabled])
192 AC_SUBST(LIBBACKTRACE)
193 AC_SUBST(BACKTRACE_SUPPORTED)
194 AC_SUBST(BACKTRACE_USES_MALLOC)
195 AC_SUBST(BACKTRACE_SUPPORTS_THREADS)
199 # DRUNTIME_LIBRARIES_CLIB
200 # -----------------------
201 # Perform various feature checks on the C library.
202 AC_DEFUN([DRUNTIME_LIBRARIES_CLIB],
205 DCFG_HAVE_QSORT_R=false
206 AC_CHECK_FUNC(qsort_r, [DCFG_HAVE_QSORT_R=true])
207 AC_SUBST(DCFG_HAVE_QSORT_R)