Update PUI to use ffi-curl
[sxemacs] / m4 / sxe-libtool.m4
1 dnl sxe-libtool.m4 -- just a quick libtoolish macros
2 dnl
3 dnl Copyright (C) 2007, 2008 Sebastian Freundt.
4 dnl
5 dnl This file is part of SXEmacs
6
7 AC_DEFUN([SXE_CHECK_LIBTOOL], [dnl
8         AC_MSG_RESULT([starting libtool investigation...])
9         m4_ifdef([LT_INIT], [_SXE_CHECK_LT2], [_SXE_CHECK_LT1])
10
11         if test -n "$export_dynamic_flag_spec"; then
12                 sxe_cv_export_dynamic=$(\
13                         echo $(eval echo "$export_dynamic_flag_spec"))
14                 SXE_APPEND_UNDUP([$sxe_cv_export_dynamic], [LDFLAGS])
15         else
16                 AC_MSG_NOTICE([
17 Neither -export-dynamic nor equivalent flags are supported by your linker.
18 Emodules however will reference some symbols dynamically.
19 We assume that your linker will do what we need, but this assumption
20 might be wrong as well.
21 ])dnl AC_MSG_NOTICE
22         fi
23
24         ## cope with libtool's convenience lib/bin concept
25         if test -n "$lt_cv_objdir"; then
26                 ## this variable is a #define, too
27                 LT_OBJDIR="$lt_cv_objdir"
28         else
29                 ## hm, probably not the best idea but let's try
30                 LT_OBJDIR="."
31         fi
32         ## definitely subst that though
33         AC_SUBST([LT_OBJDIR])
34
35         ## currently there's no official variable for that, but `lt-'
36         ## seems to be a consistent choice throughout all libtools
37         LT_CONVENIENCE_PREFIX="lt-"
38         AC_SUBST([LT_CONVENIENCE_PREFIX])
39
40         ## prefix all the stuff in XCCLDFLAGS with XCCFLAG
41         ## assume XCCFLAG = -XCClinker for now
42         XCCFLAG="-XCClinker"
43         XCCLDFLAGS=$(echo "${XCCLDFLAGS}" | \
44                 sed -e 's/\B-/'${XCCFLAG}' -/g')
45 ])dnl SXE_CHECK_LIBTOOL
46
47 AC_DEFUN([_SXE_CHECK_LT2], [dnl
48         LT_CONFIG_LTDL_DIR([libltdl], [recursive])
49         LT_PREREQ([2.1])
50         AC_REQUIRE([_LT_SYS_DYNAMIC_LINKER])
51         LT_INIT([dlopen])
52         LTDL_INSTALLABLE
53         LTDL_INIT
54
55         LT_LIB_DLLOAD
56         LT_LIB_M
57         LT_SYS_DLOPEN_DEPLIBS
58         LT_SYS_DLSEARCH_PATH
59         LT_SYS_MODULE_EXT
60         LT_SYS_MODULE_PATH
61         LT_SYS_SYMBOL_USCORE
62         LT_FUNC_DLSYM_USCORE
63
64         dnl Configure libltdl
65         dnl newer libtool2s will do this implicitly, we drop all support
66         dnl for the `old' libtool2 stuff as this is available through
67         dnl cvs only and we stick with the latest
68         dnl AC_CONFIG_SUBDIRS([libltdl])
69         AC_CONFIG_MACRO_DIR([libltdl/m4])
70 ])dnl _SXE_CHECK_LT2
71
72 m4_ifdef([LT_CONFIG_LTDL_DIR], [], [dnl else
73 AC_DEFUN([LT_CONFIG_LTDL_DIR], [dnl
74         AS_MESSAGE([trying to fake an initialisation of a libltdl subproject])
75 ])dnl LT_CONFIG_LTDL_DIR
76 ])
77
78 AC_DEFUN([_SXE_CHECK_LT1], [dnl
79         ## This overcomes a strange but existent scenario
80         ## (see ssh horstbox for one)
81         ## where autoconf is SO new that it can actually only work
82         ## with libtool2 but, sigh, of course, sigh, libtool-1.stone.age
83         ## is installed
84         LT_CONFIG_LTDL_DIR([libltdl], [recursive])
85
86         AC_LIBLTDL_INSTALLABLE
87         dnl AC_LTDL_ENABLE_INSTALL
88         dnl Check for dlopen support
89         AC_LIBTOOL_DLOPEN
90         AC_PROG_LIBTOOL([dlopen])
91         AC_LIB_LTDL
92         AC_LTDL_SYMBOL_USCORE
93
94         dnl Substitute LTDLINCL and LIBLTDL in the Makefiles
95         AC_SUBST(LTDLINCL)
96         AC_SUBST(LIBLTDL)
97         AC_SUBST([LIBTOOL_DEPS])
98
99         dnl Configure libltdl
100         AC_CONFIG_SUBDIRS([libltdl])
101 ])dnl _SXE_CHECK_LT1
102
103 AC_DEFUN([SXE_CHECK_LIBLTDL], [dnl
104         ## make sure the libtool stuff has been run before
105         AC_REQUIRE([SXE_CHECK_LIBTOOL])
106
107         AC_CACHE_CHECK([for dynamic loader provided by libltdl],
108                 [sxe_cv_feat_libltdl], [_SXE_CHECK_LIBLTDL])
109
110         ## if the user wants to use the included libltdl, descend
111         if test -z "$with_included_ltdl" -a \
112                 -d "${sxe_srcdir}/libltdl" -a \
113                 "$with_module_support" != "no" -a \
114                 "$sxe_cv_feat_libltdl" != "yes"; then
115                 with_included_ltdl="yes"
116                 ## assume we have a working ltdl lib afterwards
117                 sxe_cv_feat_libltdl="yes"
118                 ## also install that pig
119                 enable_ltdl_install="yes"
120                 ## add libltdl/ to the include path
121                 CPPFLAGS="$CPPFLAGS ${LTDLINCL}"
122                 ## and assume we've seen ltdl.h
123                 AC_DEFINE([HAVE_LTDL_H], [1], [Whether ltdl.h is somewhere])
124         elif test -d "${sxe_srcdir}/libltdl" -a \
125                 "$with_included_ltdl" = "yes"; then
126                 ## the user WANTS to use the included ltdl
127                 ## assume we have a working ltdl lib afterwards
128                 sxe_cv_feat_libltdl="yes"
129                 ## also install that pig
130                 enable_ltdl_install="yes"
131                 ## add libltdl/ to the include path
132                 CPPFLAGS="$CPPFLAGS -I${top_srcdir}/libltdl"
133                 ## and assume we've seen ltdl.h
134                 AC_DEFINE([HAVE_LTDL_H], [1], [Whether ltdl.h is somewhere])
135         else
136                 with_included_ltdl="no"
137         fi
138         AM_CONDITIONAL([DESCEND_LIBLTDL], [test "$with_included_ltdl" = "yes"])
139 ])dnl SXE_CHECK_LIBLTDL
140
141 AC_DEFUN([_SXE_CHECK_LIBLTDL], [dnl
142         AC_MSG_RESULT([])
143         SXE_CHECK_LTDL_HEADERS
144         SXE_CHECK_LTDL_FUNCS
145
146         if test "$ac_cv_header_ltdl_h" = "yes" -a \
147                 "$ac_cv_func_lt_dlopen" = "yes" -a \
148                 "$ac_cv_func_lt_dlclose" = "yes" -a \
149                 "$ac_cv_type_lt_dlhandle" = "yes" -a \
150                 "$ac_cv_type_lt_dlinfo" = "yes"; then
151                 sxe_cv_feat_libltdl="yes"
152         else
153                 sxe_cv_feat_libltdl="no"
154         fi
155 ])dnl _SXE_CHECK_LIBLTDL
156
157 AC_DEFUN([SXE_CHECK_LTDL_HEADERS], [dnl
158         AC_CHECK_HEADERS([ltdl.h])
159 ])dnl SXE_CHECK_LTDL_HEADERS
160
161 AC_DEFUN([SXE_CHECK_LTDL_FUNCS], [dnl
162         AC_REQUIRE([SXE_CHECK_LIBTOOL])
163
164         SXE_DUMP_LIBS
165         LIBS="$LIBS $LIBLTDL"
166         _SXE_CHECK_LTDL_FUNCS
167         SXE_RESTORE_LIBS
168
169         _SXE_CHECK_LTDL_TYPES
170 ])dnl _SXE_CHECK_LTDL_FUNCS
171
172 AC_DEFUN([_SXE_CHECK_LTDL_FUNCS], [dnl
173         AC_CHECK_FUNCS([dnl
174                 lt_dlopen lt_dlopenext dnl
175                 lt_dlclose lt_dlexit dnl
176                 lt_dlsym lt_dlgetinfo dnl
177                 lt_dlfree lt_dlforeach lt_dlhandle_next dnl
178                 lt_dlinterface_register lt_dlcaller_register lt_dlhandle_fetch dnl
179                 lt_dladdsearchdir dnl
180                 lt_dlcaller_set_data lt_dlcaller_get_data dnl
181                 lt_dlcaller_id dnl
182                 ])
183
184         AC_CHECK_DECLS([lt_dlopen, lt_dlopenext, lt_dlclose, lt_dlexit],
185                 [], [], [
186 #ifdef HAVE_LTDL_H
187 # include <ltdl.h>
188 #endif
189                 ])
190 ])dnl _SXE_CHECK_LTDL_FUNCS
191
192 AC_DEFUN([_SXE_CHECK_LTDL_TYPES], [dnl
193         AC_CHECK_TYPES([lt_dlinfo, lt_dlhandle], [], [], [
194 #ifdef HAVE_LTDL_H
195 # include <ltdl.h>
196 #endif
197                 ])
198 ])dnl _SXE_CHECK_LTDL_TYPES
199
200 dnl sxe-libtool.m4 ends here