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_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
51 AC_DEFUN([DRUNTIME_LIBRARIES_ZLIB],
53 AC_ARG_WITH(target-system-zlib,
54 AS_HELP_STRING([--with-target-system-zlib],
55 [use installed libz (default: no)]))
58 AS_IF([test "x$with_target_system_zlib" = "xyes"], [
59 AC_CHECK_LIB([z], [deflate], [
62 AC_MSG_ERROR([System zlib not found])
65 AC_MSG_CHECKING([for zlib])
66 AC_MSG_RESULT([just compiled])
69 AM_CONDITIONAL([DRUNTIME_ZLIB_SYSTEM], [test "$with_target_system_zlib" = yes])
72 # DRUNTIME_LIBRARIES_ATOMIC
73 # -------------------------
74 # Allow specifying whether to use libatomic for atomic support.
75 AC_DEFUN([DRUNTIME_LIBRARIES_ATOMIC],
77 AC_ARG_WITH(libatomic,
78 AS_HELP_STRING([--without-libatomic],
79 [Do not use libatomic in core.atomic (default: auto)]))
81 DCFG_HAVE_LIBATOMIC=false
83 AS_IF([test "x$with_libatomic" != "xno"], [
84 DCFG_HAVE_LIBATOMIC=true
85 LIBATOMIC=../../libatomic/libatomic_convenience.la
87 AC_MSG_CHECKING([for libatomic])
88 AC_MSG_RESULT([disabled])
91 AC_SUBST(DCFG_HAVE_LIBATOMIC)
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],
103 BACKTRACE_SUPPORTED=false
104 BACKTRACE_USES_MALLOC=false
105 BACKTRACE_SUPPORTS_THREADS=false
108 AC_ARG_WITH(libbacktrace,
109 AS_HELP_STRING([--without-libbacktrace],
110 [Do not use libbacktrace in core.runtime (default: auto)]))
112 AS_IF([test "x$with_libbacktrace" != "xno"], [
113 LIBBACKTRACE=../../libbacktrace/libbacktrace.la
115 gdc_save_CPPFLAGS=$CPPFLAGS
116 CPPFLAGS+=" -I../libbacktrace "
118 AC_CHECK_HEADER(backtrace-supported.h, have_libbacktrace_h=true,
119 have_libbacktrace_h=false)
121 if $have_libbacktrace_h; then
122 AC_MSG_CHECKING([libbacktrace: BACKTRACE_SUPPORTED])
123 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
125 #include <backtrace-supported.h>
126 #if BACKTRACE_SUPPORTED
127 FOUND_LIBBACKTRACE_RESULT_GDC
129 ], BACKTRACE_SUPPORTED=true, BACKTRACE_SUPPORTED=false)
130 AC_MSG_RESULT($BACKTRACE_SUPPORTED)
132 AC_MSG_CHECKING([libbacktrace: BACKTRACE_USES_MALLOC])
133 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
135 #include <backtrace-supported.h>
136 #if BACKTRACE_USES_MALLOC
137 FOUND_LIBBACKTRACE_RESULT_GDC
139 ], BACKTRACE_USES_MALLOC=true, BACKTRACE_USES_MALLOC=false)
140 AC_MSG_RESULT($BACKTRACE_USES_MALLOC)
142 AC_MSG_CHECKING([libbacktrace: BACKTRACE_SUPPORTS_THREADS])
143 AC_EGREP_CPP(FOUND_LIBBACKTRACE_RESULT_GDC,
145 #include <backtrace-supported.h>
146 #if BACKTRACE_SUPPORTS_THREADS
147 FOUND_LIBBACKTRACE_RESULT_GDC
149 ], BACKTRACE_SUPPORTS_THREADS=true, BACKTRACE_SUPPORTS_THREADS=false)
150 AC_MSG_RESULT($BACKTRACE_SUPPORTS_THREADS)
152 CPPFLAGS=$gdc_save_CPPFLAGS
154 AC_MSG_CHECKING([for libbacktrace])
155 AC_MSG_RESULT([disabled])
158 AC_SUBST(LIBBACKTRACE)
159 AC_SUBST(BACKTRACE_SUPPORTED)
160 AC_SUBST(BACKTRACE_USES_MALLOC)
161 AC_SUBST(BACKTRACE_SUPPORTS_THREADS)