ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/m4/ltoptions.m4
Revision: 2480
Committed: Wed Oct 23 16:05:41 2013 UTC (12 years, 9 months ago) by michael
File size: 12347 byte(s)
Log Message:
- Initial build system related modernizations
- Add -fstack-protector to CFLAGS if available

File Contents

# User Rev Content
1 michael 2480 # Helper functions for option handling. -*- Autoconf -*-
2     #
3     # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
4     # Inc.
5     # Written by Gary V. Vaughan, 2004
6     #
7     # This file is free software; the Free Software Foundation gives
8     # unlimited permission to copy and/or distribute it, with or without
9     # modifications, as long as this notice is preserved.
10    
11     # serial 7 ltoptions.m4
12    
13     # This is to help aclocal find these macros, as it can't see m4_define.
14     AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
15    
16    
17     # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
18     # ------------------------------------------
19     m4_define([_LT_MANGLE_OPTION],
20     [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
21    
22    
23     # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
24     # ---------------------------------------
25     # Set option OPTION-NAME for macro MACRO-NAME, and if there is a
26     # matching handler defined, dispatch to it. Other OPTION-NAMEs are
27     # saved as a flag.
28     m4_define([_LT_SET_OPTION],
29     [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
30     m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
31     _LT_MANGLE_DEFUN([$1], [$2]),
32     [m4_warning([Unknown $1 option `$2'])])[]dnl
33     ])
34    
35    
36     # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
37     # ------------------------------------------------------------
38     # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
39     m4_define([_LT_IF_OPTION],
40     [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
41    
42    
43     # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
44     # -------------------------------------------------------
45     # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
46     # are set.
47     m4_define([_LT_UNLESS_OPTIONS],
48     [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
49     [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
50     [m4_define([$0_found])])])[]dnl
51     m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
52     ])[]dnl
53     ])
54    
55    
56     # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
57     # ----------------------------------------
58     # OPTION-LIST is a space-separated list of Libtool options associated
59     # with MACRO-NAME. If any OPTION has a matching handler declared with
60     # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
61     # the unknown option and exit.
62     m4_defun([_LT_SET_OPTIONS],
63     [# Set options
64     m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
65     [_LT_SET_OPTION([$1], _LT_Option)])
66    
67     m4_if([$1],[LT_INIT],[
68     dnl
69     dnl Simply set some default values (i.e off) if boolean options were not
70     dnl specified:
71     _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
72     ])
73     _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
74     ])
75     dnl
76     dnl If no reference was made to various pairs of opposing options, then
77     dnl we run the default mode handler for the pair. For example, if neither
78     dnl `shared' nor `disable-shared' was passed, we enable building of shared
79     dnl archives by default:
80     _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
81     _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
82     _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
83     _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
84     [_LT_ENABLE_FAST_INSTALL])
85     ])
86     ])# _LT_SET_OPTIONS
87    
88    
89     ## --------------------------------- ##
90     ## Macros to handle LT_INIT options. ##
91     ## --------------------------------- ##
92    
93     # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
94     # -----------------------------------------
95     m4_define([_LT_MANGLE_DEFUN],
96     [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
97    
98    
99     # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
100     # -----------------------------------------------
101     m4_define([LT_OPTION_DEFINE],
102     [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
103     ])# LT_OPTION_DEFINE
104    
105    
106     # dlopen
107     # ------
108     LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
109     ])
110    
111     AU_DEFUN([AC_LIBTOOL_DLOPEN],
112     [_LT_SET_OPTION([LT_INIT], [dlopen])
113     AC_DIAGNOSE([obsolete],
114     [$0: Remove this warning and the call to _LT_SET_OPTION when you
115     put the `dlopen' option into LT_INIT's first parameter.])
116     ])
117    
118     dnl aclocal-1.4 backwards compatibility:
119     dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
120    
121    
122     # win32-dll
123     # ---------
124     # Declare package support for building win32 dll's.
125     LT_OPTION_DEFINE([LT_INIT], [win32-dll],
126     [enable_win32_dll=yes
127    
128     case $host in
129     *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
130     AC_CHECK_TOOL(AS, as, false)
131     AC_CHECK_TOOL(DLLTOOL, dlltool, false)
132     AC_CHECK_TOOL(OBJDUMP, objdump, false)
133     ;;
134     esac
135    
136     test -z "$AS" && AS=as
137     _LT_DECL([], [AS], [1], [Assembler program])dnl
138    
139     test -z "$DLLTOOL" && DLLTOOL=dlltool
140     _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
141    
142     test -z "$OBJDUMP" && OBJDUMP=objdump
143     _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
144     ])# win32-dll
145    
146     AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
147     [AC_REQUIRE([AC_CANONICAL_HOST])dnl
148     _LT_SET_OPTION([LT_INIT], [win32-dll])
149     AC_DIAGNOSE([obsolete],
150     [$0: Remove this warning and the call to _LT_SET_OPTION when you
151     put the `win32-dll' option into LT_INIT's first parameter.])
152     ])
153    
154     dnl aclocal-1.4 backwards compatibility:
155     dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
156    
157    
158     # _LT_ENABLE_SHARED([DEFAULT])
159     # ----------------------------
160     # implement the --enable-shared flag, and supports the `shared' and
161     # `disable-shared' LT_INIT options.
162     # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
163     m4_define([_LT_ENABLE_SHARED],
164     [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
165     AC_ARG_ENABLE([shared],
166     [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
167     [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
168     [p=${PACKAGE-default}
169     case $enableval in
170     yes) enable_shared=yes ;;
171     no) enable_shared=no ;;
172     *)
173     enable_shared=no
174     # Look at the argument we got. We use all the common list separators.
175     lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
176     for pkg in $enableval; do
177     IFS="$lt_save_ifs"
178     if test "X$pkg" = "X$p"; then
179     enable_shared=yes
180     fi
181     done
182     IFS="$lt_save_ifs"
183     ;;
184     esac],
185     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
186    
187     _LT_DECL([build_libtool_libs], [enable_shared], [0],
188     [Whether or not to build shared libraries])
189     ])# _LT_ENABLE_SHARED
190    
191     LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
192     LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
193    
194     # Old names:
195     AC_DEFUN([AC_ENABLE_SHARED],
196     [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
197     ])
198    
199     AC_DEFUN([AC_DISABLE_SHARED],
200     [_LT_SET_OPTION([LT_INIT], [disable-shared])
201     ])
202    
203     AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
204     AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
205    
206     dnl aclocal-1.4 backwards compatibility:
207     dnl AC_DEFUN([AM_ENABLE_SHARED], [])
208     dnl AC_DEFUN([AM_DISABLE_SHARED], [])
209    
210    
211    
212     # _LT_ENABLE_STATIC([DEFAULT])
213     # ----------------------------
214     # implement the --enable-static flag, and support the `static' and
215     # `disable-static' LT_INIT options.
216     # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
217     m4_define([_LT_ENABLE_STATIC],
218     [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
219     AC_ARG_ENABLE([static],
220     [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
221     [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
222     [p=${PACKAGE-default}
223     case $enableval in
224     yes) enable_static=yes ;;
225     no) enable_static=no ;;
226     *)
227     enable_static=no
228     # Look at the argument we got. We use all the common list separators.
229     lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
230     for pkg in $enableval; do
231     IFS="$lt_save_ifs"
232     if test "X$pkg" = "X$p"; then
233     enable_static=yes
234     fi
235     done
236     IFS="$lt_save_ifs"
237     ;;
238     esac],
239     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
240    
241     _LT_DECL([build_old_libs], [enable_static], [0],
242     [Whether or not to build static libraries])
243     ])# _LT_ENABLE_STATIC
244    
245     LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
246     LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
247    
248     # Old names:
249     AC_DEFUN([AC_ENABLE_STATIC],
250     [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
251     ])
252    
253     AC_DEFUN([AC_DISABLE_STATIC],
254     [_LT_SET_OPTION([LT_INIT], [disable-static])
255     ])
256    
257     AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
258     AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
259    
260     dnl aclocal-1.4 backwards compatibility:
261     dnl AC_DEFUN([AM_ENABLE_STATIC], [])
262     dnl AC_DEFUN([AM_DISABLE_STATIC], [])
263    
264    
265    
266     # _LT_ENABLE_FAST_INSTALL([DEFAULT])
267     # ----------------------------------
268     # implement the --enable-fast-install flag, and support the `fast-install'
269     # and `disable-fast-install' LT_INIT options.
270     # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
271     m4_define([_LT_ENABLE_FAST_INSTALL],
272     [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
273     AC_ARG_ENABLE([fast-install],
274     [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
275     [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
276     [p=${PACKAGE-default}
277     case $enableval in
278     yes) enable_fast_install=yes ;;
279     no) enable_fast_install=no ;;
280     *)
281     enable_fast_install=no
282     # Look at the argument we got. We use all the common list separators.
283     lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
284     for pkg in $enableval; do
285     IFS="$lt_save_ifs"
286     if test "X$pkg" = "X$p"; then
287     enable_fast_install=yes
288     fi
289     done
290     IFS="$lt_save_ifs"
291     ;;
292     esac],
293     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
294    
295     _LT_DECL([fast_install], [enable_fast_install], [0],
296     [Whether or not to optimize for fast installation])dnl
297     ])# _LT_ENABLE_FAST_INSTALL
298    
299     LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
300     LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
301    
302     # Old names:
303     AU_DEFUN([AC_ENABLE_FAST_INSTALL],
304     [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
305     AC_DIAGNOSE([obsolete],
306     [$0: Remove this warning and the call to _LT_SET_OPTION when you put
307     the `fast-install' option into LT_INIT's first parameter.])
308     ])
309    
310     AU_DEFUN([AC_DISABLE_FAST_INSTALL],
311     [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
312     AC_DIAGNOSE([obsolete],
313     [$0: Remove this warning and the call to _LT_SET_OPTION when you put
314     the `disable-fast-install' option into LT_INIT's first parameter.])
315     ])
316    
317     dnl aclocal-1.4 backwards compatibility:
318     dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
319     dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
320    
321    
322     # _LT_WITH_PIC([MODE])
323     # --------------------
324     # implement the --with-pic flag, and support the `pic-only' and `no-pic'
325     # LT_INIT options.
326     # MODE is either `yes' or `no'. If omitted, it defaults to `both'.
327     m4_define([_LT_WITH_PIC],
328     [AC_ARG_WITH([pic],
329     [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
330     [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
331     [lt_p=${PACKAGE-default}
332     case $withval in
333     yes|no) pic_mode=$withval ;;
334     *)
335     pic_mode=default
336     # Look at the argument we got. We use all the common list separators.
337     lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
338     for lt_pkg in $withval; do
339     IFS="$lt_save_ifs"
340     if test "X$lt_pkg" = "X$lt_p"; then
341     pic_mode=yes
342     fi
343     done
344     IFS="$lt_save_ifs"
345     ;;
346     esac],
347     [pic_mode=default])
348    
349     test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
350    
351     _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
352     ])# _LT_WITH_PIC
353    
354     LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
355     LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
356    
357     # Old name:
358     AU_DEFUN([AC_LIBTOOL_PICMODE],
359     [_LT_SET_OPTION([LT_INIT], [pic-only])
360     AC_DIAGNOSE([obsolete],
361     [$0: Remove this warning and the call to _LT_SET_OPTION when you
362     put the `pic-only' option into LT_INIT's first parameter.])
363     ])
364    
365     dnl aclocal-1.4 backwards compatibility:
366     dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
367    
368     ## ----------------- ##
369     ## LTDL_INIT Options ##
370     ## ----------------- ##
371    
372     m4_define([_LTDL_MODE], [])
373     LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
374     [m4_define([_LTDL_MODE], [nonrecursive])])
375     LT_OPTION_DEFINE([LTDL_INIT], [recursive],
376     [m4_define([_LTDL_MODE], [recursive])])
377     LT_OPTION_DEFINE([LTDL_INIT], [subproject],
378     [m4_define([_LTDL_MODE], [subproject])])
379    
380     m4_define([_LTDL_TYPE], [])
381     LT_OPTION_DEFINE([LTDL_INIT], [installable],
382     [m4_define([_LTDL_TYPE], [installable])])
383     LT_OPTION_DEFINE([LTDL_INIT], [convenience],
384     [m4_define([_LTDL_TYPE], [convenience])])