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