Annotation of embedaddon/curl/m4/xc-lt-iface.m4, revision 1.1.1.1
1.1 misho 1: #---------------------------------------------------------------------------
2: #
3: # xc-lt-iface.m4
4: #
5: # Copyright (c) 2013 - 2020, Daniel Stenberg <daniel@haxx.se>
6: #
7: # Permission to use, copy, modify, and distribute this software for any
8: # purpose with or without fee is hereby granted, provided that the above
9: # copyright notice and this permission notice appear in all copies.
10: #
11: # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12: # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13: # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14: # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15: # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16: # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17: # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18: #
19: #---------------------------------------------------------------------------
20:
21: # serial 1
22:
23:
24: dnl _XC_LIBTOOL_PREAMBLE
25: dnl -------------------------------------------------
26: dnl Private macro.
27: dnl
28: dnl Checks some configure script options related with
29: dnl libtool and customizes its default behavior before
30: dnl libtool code is actually used in script.
31:
32: m4_define([_XC_LIBTOOL_PREAMBLE],
33: [dnl
34: # ------------------------------------ #
35: # Determine libtool default behavior #
36: # ------------------------------------ #
37:
38: #
39: # Default behavior is to enable shared and static libraries on systems
40: # where libtool knows how to build both library versions, and does not
41: # require separate configuration and build runs for each flavor.
42: #
43:
44: xc_lt_want_enable_shared='yes'
45: xc_lt_want_enable_static='yes'
46:
47: #
48: # User may have disabled shared or static libraries.
49: #
50: case "x$enable_shared" in @%:@ (
51: xno)
52: xc_lt_want_enable_shared='no'
53: ;;
54: esac
55: case "x$enable_static" in @%:@ (
56: xno)
57: xc_lt_want_enable_static='no'
58: ;;
59: esac
60: if test "x$xc_lt_want_enable_shared" = 'xno' &&
61: test "x$xc_lt_want_enable_static" = 'xno'; then
62: AC_MSG_ERROR([can not disable shared and static libraries simultaneously])
63: fi
64:
65: #
66: # Default behavior on systems that require independent configuration
67: # and build runs for shared and static is to enable shared libraries
68: # and disable static ones. On these systems option '--disable-shared'
69: # must be used in order to build a proper static library.
70: #
71:
72: if test "x$xc_lt_want_enable_shared" = 'xyes' &&
73: test "x$xc_lt_want_enable_static" = 'xyes'; then
74: case $host_os in @%:@ (
75: pw32* | cegcc* | os2* | aix*)
76: xc_lt_want_enable_static='no'
77: ;;
78: esac
79: fi
80:
81: #
82: # Make libtool aware of current shared and static library preferences
83: # taking in account that, depending on host characteristics, libtool
84: # may modify these option preferences later in this configure script.
85: #
86:
87: enable_shared=$xc_lt_want_enable_shared
88: enable_static=$xc_lt_want_enable_static
89:
90: #
91: # Default behavior is to build PIC objects for shared libraries and
92: # non-PIC objects for static libraries.
93: #
94:
95: xc_lt_want_with_pic='default'
96:
97: #
98: # User may have specified PIC preference.
99: #
100:
101: case "x$with_pic" in @%:@ ((
102: xno)
103: xc_lt_want_with_pic='no'
104: ;;
105: xyes)
106: xc_lt_want_with_pic='yes'
107: ;;
108: esac
109:
110: #
111: # Default behavior on some systems where building a shared library out
112: # of non-PIC compiled objects will fail with following linker error
113: # "relocation R_X86_64_32 can not be used when making a shared object"
114: # is to build PIC objects even for static libraries. This behavior may
115: # be overridden using 'configure --disable-shared --without-pic'.
116: #
117:
118: if test "x$xc_lt_want_with_pic" = 'xdefault'; then
119: case $host_cpu in @%:@ (
120: x86_64 | amd64 | ia64)
121: case $host_os in @%:@ (
122: linux* | freebsd*)
123: xc_lt_want_with_pic='yes'
124: ;;
125: esac
126: ;;
127: esac
128: fi
129:
130: #
131: # Make libtool aware of current PIC preference taking in account that,
132: # depending on host characteristics, libtool may modify PIC default
133: # behavior to fit host system idiosyncrasies later in this script.
134: #
135:
136: with_pic=$xc_lt_want_with_pic
137: dnl
138: m4_define([$0],[])dnl
139: ])
140:
141:
142: dnl _XC_LIBTOOL_BODY
143: dnl -------------------------------------------------
144: dnl Private macro.
145: dnl
146: dnl This macro performs embedding of libtool code into
147: dnl configure script, regardless of libtool version in
148: dnl use when generating configure script.
149:
150: m4_define([_XC_LIBTOOL_BODY],
151: [dnl
152: ## ----------------------- ##
153: ## Start of libtool code ##
154: ## ----------------------- ##
155: m4_ifdef([LT_INIT],
156: [dnl
157: LT_INIT([win32-dll])
158: ],[dnl
159: AC_LIBTOOL_WIN32_DLL
160: AC_PROG_LIBTOOL
161: ])dnl
162: ## --------------------- ##
163: ## End of libtool code ##
164: ## --------------------- ##
165: dnl
166: m4_define([$0], [])[]dnl
167: ])
168:
169:
170: dnl _XC_CHECK_LT_BUILD_LIBRARIES
171: dnl -------------------------------------------------
172: dnl Private macro.
173: dnl
174: dnl Checks whether libtool shared and static libraries
175: dnl are finally built depending on user input, default
176: dnl behavior and knowledge that libtool has about host
177: dnl characteristics.
178: dnl Results stored in following shell variables:
179: dnl xc_lt_build_shared
180: dnl xc_lt_build_static
181:
182: m4_define([_XC_CHECK_LT_BUILD_LIBRARIES],
183: [dnl
184: #
185: # Verify if finally libtool shared libraries will be built
186: #
187:
188: case "x$enable_shared" in @%:@ ((
189: xyes | xno)
190: xc_lt_build_shared=$enable_shared
191: ;;
192: *)
193: AC_MSG_ERROR([unexpected libtool enable_shared value: $enable_shared])
194: ;;
195: esac
196:
197: #
198: # Verify if finally libtool static libraries will be built
199: #
200:
201: case "x$enable_static" in @%:@ ((
202: xyes | xno)
203: xc_lt_build_static=$enable_static
204: ;;
205: *)
206: AC_MSG_ERROR([unexpected libtool enable_static value: $enable_static])
207: ;;
208: esac
209: dnl
210: m4_define([$0],[])dnl
211: ])
212:
213:
214: dnl _XC_CHECK_LT_SHLIB_USE_VERSION_INFO
215: dnl -------------------------------------------------
216: dnl Private macro.
217: dnl
218: dnl Checks if the -version-info linker flag must be
219: dnl provided when building libtool shared libraries.
220: dnl Result stored in xc_lt_shlib_use_version_info.
221:
222: m4_define([_XC_CHECK_LT_SHLIB_USE_VERSION_INFO],
223: [dnl
224: #
225: # Verify if libtool shared libraries should be linked using flag -version-info
226: #
227:
228: AC_MSG_CHECKING([whether to build shared libraries with -version-info])
229: xc_lt_shlib_use_version_info='yes'
230: if test "x$version_type" = 'xnone'; then
231: xc_lt_shlib_use_version_info='no'
232: fi
233: case $host_os in @%:@ (
234: amigaos*)
235: xc_lt_shlib_use_version_info='yes'
236: ;;
237: esac
238: AC_MSG_RESULT([$xc_lt_shlib_use_version_info])
239: dnl
240: m4_define([$0], [])[]dnl
241: ])
242:
243:
244: dnl _XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED
245: dnl -------------------------------------------------
246: dnl Private macro.
247: dnl
248: dnl Checks if the -no-undefined linker flag must be
249: dnl provided when building libtool shared libraries.
250: dnl Result stored in xc_lt_shlib_use_no_undefined.
251:
252: m4_define([_XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED],
253: [dnl
254: #
255: # Verify if libtool shared libraries should be linked using flag -no-undefined
256: #
257:
258: AC_MSG_CHECKING([whether to build shared libraries with -no-undefined])
259: xc_lt_shlib_use_no_undefined='no'
260: if test "x$allow_undefined" = 'xno'; then
261: xc_lt_shlib_use_no_undefined='yes'
262: elif test "x$allow_undefined_flag" = 'xunsupported'; then
263: xc_lt_shlib_use_no_undefined='yes'
264: fi
265: case $host_os in @%:@ (
266: cygwin* | mingw* | pw32* | cegcc* | os2* | aix*)
267: xc_lt_shlib_use_no_undefined='yes'
268: ;;
269: esac
270: AC_MSG_RESULT([$xc_lt_shlib_use_no_undefined])
271: dnl
272: m4_define([$0], [])[]dnl
273: ])
274:
275:
276: dnl _XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT
277: dnl -------------------------------------------------
278: dnl Private macro.
279: dnl
280: dnl Checks if the -mimpure-text linker flag must be
281: dnl provided when building libtool shared libraries.
282: dnl Result stored in xc_lt_shlib_use_mimpure_text.
283:
284: m4_define([_XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT],
285: [dnl
286: #
287: # Verify if libtool shared libraries should be linked using flag -mimpure-text
288: #
289:
290: AC_MSG_CHECKING([whether to build shared libraries with -mimpure-text])
291: xc_lt_shlib_use_mimpure_text='no'
292: case $host_os in @%:@ (
293: solaris2*)
294: if test "x$GCC" = 'xyes'; then
295: xc_lt_shlib_use_mimpure_text='yes'
296: fi
297: ;;
298: esac
299: AC_MSG_RESULT([$xc_lt_shlib_use_mimpure_text])
300: dnl
301: m4_define([$0], [])[]dnl
302: ])
303:
304:
305: dnl _XC_CHECK_LT_BUILD_WITH_PIC
306: dnl -------------------------------------------------
307: dnl Private macro.
308: dnl
309: dnl Checks whether libtool shared and static libraries
310: dnl would be built with PIC depending on user input,
311: dnl default behavior and knowledge that libtool has
312: dnl about host characteristics.
313: dnl Results stored in following shell variables:
314: dnl xc_lt_build_shared_with_pic
315: dnl xc_lt_build_static_with_pic
316:
317: m4_define([_XC_CHECK_LT_BUILD_WITH_PIC],
318: [dnl
319: #
320: # Find out whether libtool libraries would be built wit PIC
321: #
322:
323: case "x$pic_mode" in @%:@ ((((
324: xdefault)
325: xc_lt_build_shared_with_pic='yes'
326: xc_lt_build_static_with_pic='no'
327: ;;
328: xyes)
329: xc_lt_build_shared_with_pic='yes'
330: xc_lt_build_static_with_pic='yes'
331: ;;
332: xno)
333: xc_lt_build_shared_with_pic='no'
334: xc_lt_build_static_with_pic='no'
335: ;;
336: *)
337: xc_lt_build_shared_with_pic='unknown'
338: xc_lt_build_static_with_pic='unknown'
339: AC_MSG_WARN([unexpected libtool pic_mode value: $pic_mode])
340: ;;
341: esac
342: AC_MSG_CHECKING([whether to build shared libraries with PIC])
343: AC_MSG_RESULT([$xc_lt_build_shared_with_pic])
344: AC_MSG_CHECKING([whether to build static libraries with PIC])
345: AC_MSG_RESULT([$xc_lt_build_static_with_pic])
346: dnl
347: m4_define([$0],[])dnl
348: ])
349:
350:
351: dnl _XC_CHECK_LT_BUILD_SINGLE_VERSION
352: dnl -------------------------------------------------
353: dnl Private macro.
354: dnl
355: dnl Checks whether a libtool shared or static library
356: dnl is finally built exclusively without the other.
357: dnl Results stored in following shell variables:
358: dnl xc_lt_build_shared_only
359: dnl xc_lt_build_static_only
360:
361: m4_define([_XC_CHECK_LT_BUILD_SINGLE_VERSION],
362: [dnl
363: #
364: # Verify if libtool shared libraries will be built while static not built
365: #
366:
367: AC_MSG_CHECKING([whether to build shared libraries only])
368: if test "$xc_lt_build_shared" = 'yes' &&
369: test "$xc_lt_build_static" = 'no'; then
370: xc_lt_build_shared_only='yes'
371: else
372: xc_lt_build_shared_only='no'
373: fi
374: AC_MSG_RESULT([$xc_lt_build_shared_only])
375:
376: #
377: # Verify if libtool static libraries will be built while shared not built
378: #
379:
380: AC_MSG_CHECKING([whether to build static libraries only])
381: if test "$xc_lt_build_static" = 'yes' &&
382: test "$xc_lt_build_shared" = 'no'; then
383: xc_lt_build_static_only='yes'
384: else
385: xc_lt_build_static_only='no'
386: fi
387: AC_MSG_RESULT([$xc_lt_build_static_only])
388: dnl
389: m4_define([$0],[])dnl
390: ])
391:
392:
393: dnl _XC_LIBTOOL_POSTLUDE
394: dnl -------------------------------------------------
395: dnl Private macro.
396: dnl
397: dnl Performs several checks related with libtool that
398: dnl can not be done unless libtool code has already
399: dnl been executed. See individual check descriptions
400: dnl for further info.
401:
402: m4_define([_XC_LIBTOOL_POSTLUDE],
403: [dnl
404: _XC_CHECK_LT_BUILD_LIBRARIES
405: _XC_CHECK_LT_SHLIB_USE_VERSION_INFO
406: _XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED
407: _XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT
408: _XC_CHECK_LT_BUILD_WITH_PIC
409: _XC_CHECK_LT_BUILD_SINGLE_VERSION
410: dnl
411: m4_define([$0],[])dnl
412: ])
413:
414:
415: dnl XC_LIBTOOL
416: dnl -------------------------------------------------
417: dnl Public macro.
418: dnl
419: dnl This macro embeds libtool machinery into configure
420: dnl script, regardless of libtool version, and performs
421: dnl several additional checks whose results can be used
422: dnl later on.
423: dnl
424: dnl Usage of this macro ensures that generated configure
425: dnl script uses equivalent logic irrespective of autoconf
426: dnl or libtool version being used to generate configure
427: dnl script.
428: dnl
429: dnl Results stored in following shell variables:
430: dnl xc_lt_build_shared
431: dnl xc_lt_build_static
432: dnl xc_lt_shlib_use_version_info
433: dnl xc_lt_shlib_use_no_undefined
434: dnl xc_lt_shlib_use_mimpure_text
435: dnl xc_lt_build_shared_with_pic
436: dnl xc_lt_build_static_with_pic
437: dnl xc_lt_build_shared_only
438: dnl xc_lt_build_static_only
439:
440: AC_DEFUN([XC_LIBTOOL],
441: [dnl
442: AC_PREREQ([2.50])dnl
443: dnl
444: AC_BEFORE([$0],[LT_INIT])dnl
445: AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl
446: AC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl
447: dnl
448: AC_REQUIRE([XC_CHECK_PATH_SEPARATOR])dnl
449: AC_REQUIRE([AC_CANONICAL_HOST])dnl
450: AC_REQUIRE([AC_PROG_CC])dnl
451: dnl
452: _XC_LIBTOOL_PREAMBLE
453: _XC_LIBTOOL_BODY
454: _XC_LIBTOOL_POSTLUDE
455: dnl
456: m4_ifdef([AC_LIBTOOL_WIN32_DLL],
457: [m4_undefine([AC_LIBTOOL_WIN32_DLL])])dnl
458: m4_ifdef([AC_PROG_LIBTOOL],
459: [m4_undefine([AC_PROG_LIBTOOL])])dnl
460: m4_ifdef([LT_INIT],
461: [m4_undefine([LT_INIT])])dnl
462: dnl
463: m4_define([$0],[])dnl
464: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>