adam@0: # Helper functions for option handling. -*- Autoconf -*- adam@0: # adam@0: # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. adam@0: # Written by Gary V. Vaughan, 2004 adam@0: # adam@0: # This file is free software; the Free Software Foundation gives adam@0: # unlimited permission to copy and/or distribute it, with or without adam@0: # modifications, as long as this notice is preserved. adam@0: adam@0: # serial 6 ltoptions.m4 adam@0: adam@0: # This is to help aclocal find these macros, as it can't see m4_define. adam@0: AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) adam@0: adam@0: adam@0: # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) adam@0: # ------------------------------------------ adam@0: m4_define([_LT_MANGLE_OPTION], adam@0: [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) adam@0: adam@0: adam@0: # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) adam@0: # --------------------------------------- adam@0: # Set option OPTION-NAME for macro MACRO-NAME, and if there is a adam@0: # matching handler defined, dispatch to it. Other OPTION-NAMEs are adam@0: # saved as a flag. adam@0: m4_define([_LT_SET_OPTION], adam@0: [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl adam@0: m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), adam@0: _LT_MANGLE_DEFUN([$1], [$2]), adam@0: [m4_warning([Unknown $1 option `$2'])])[]dnl adam@0: ]) adam@0: adam@0: adam@0: # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) adam@0: # ------------------------------------------------------------ adam@0: # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. adam@0: m4_define([_LT_IF_OPTION], adam@0: [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) adam@0: adam@0: adam@0: # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) adam@0: # ------------------------------------------------------- adam@0: # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME adam@0: # are set. adam@0: m4_define([_LT_UNLESS_OPTIONS], adam@0: [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), adam@0: [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), adam@0: [m4_define([$0_found])])])[]dnl adam@0: m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 adam@0: ])[]dnl adam@0: ]) adam@0: adam@0: adam@0: # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) adam@0: # ---------------------------------------- adam@0: # OPTION-LIST is a space-separated list of Libtool options associated adam@0: # with MACRO-NAME. If any OPTION has a matching handler declared with adam@0: # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about adam@0: # the unknown option and exit. adam@0: m4_defun([_LT_SET_OPTIONS], adam@0: [# Set options adam@0: m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), adam@0: [_LT_SET_OPTION([$1], _LT_Option)]) adam@0: adam@0: m4_if([$1],[LT_INIT],[ adam@0: dnl adam@0: dnl Simply set some default values (i.e off) if boolean options were not adam@0: dnl specified: adam@0: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no adam@0: ]) adam@0: _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no adam@0: ]) adam@0: dnl adam@0: dnl If no reference was made to various pairs of opposing options, then adam@0: dnl we run the default mode handler for the pair. For example, if neither adam@0: dnl `shared' nor `disable-shared' was passed, we enable building of shared adam@0: dnl archives by default: adam@0: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) adam@0: _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) adam@0: _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) adam@0: _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], adam@0: [_LT_ENABLE_FAST_INSTALL]) adam@0: ]) adam@0: ])# _LT_SET_OPTIONS adam@0: adam@0: adam@0: ## --------------------------------- ## adam@0: ## Macros to handle LT_INIT options. ## adam@0: ## --------------------------------- ## adam@0: adam@0: # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) adam@0: # ----------------------------------------- adam@0: m4_define([_LT_MANGLE_DEFUN], adam@0: [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) adam@0: adam@0: adam@0: # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) adam@0: # ----------------------------------------------- adam@0: m4_define([LT_OPTION_DEFINE], adam@0: [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl adam@0: ])# LT_OPTION_DEFINE adam@0: adam@0: adam@0: # dlopen adam@0: # ------ adam@0: LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes adam@0: ]) adam@0: adam@0: AU_DEFUN([AC_LIBTOOL_DLOPEN], adam@0: [_LT_SET_OPTION([LT_INIT], [dlopen]) adam@0: AC_DIAGNOSE([obsolete], adam@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you adam@0: put the `dlopen' option into LT_INIT's first parameter.]) adam@0: ]) adam@0: adam@0: dnl aclocal-1.4 backwards compatibility: adam@0: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) adam@0: adam@0: adam@0: # win32-dll adam@0: # --------- adam@0: # Declare package support for building win32 dll's. adam@0: LT_OPTION_DEFINE([LT_INIT], [win32-dll], adam@0: [enable_win32_dll=yes adam@0: adam@0: case $host in adam@0: *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) adam@0: AC_CHECK_TOOL(AS, as, false) adam@0: AC_CHECK_TOOL(DLLTOOL, dlltool, false) adam@0: AC_CHECK_TOOL(OBJDUMP, objdump, false) adam@0: ;; adam@0: esac adam@0: adam@0: test -z "$AS" && AS=as adam@0: _LT_DECL([], [AS], [0], [Assembler program])dnl adam@0: adam@0: test -z "$DLLTOOL" && DLLTOOL=dlltool adam@0: _LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl adam@0: adam@0: test -z "$OBJDUMP" && OBJDUMP=objdump adam@0: _LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl adam@0: ])# win32-dll adam@0: adam@0: AU_DEFUN([AC_LIBTOOL_WIN32_DLL], adam@0: [AC_REQUIRE([AC_CANONICAL_HOST])dnl adam@0: _LT_SET_OPTION([LT_INIT], [win32-dll]) adam@0: AC_DIAGNOSE([obsolete], adam@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you adam@0: put the `win32-dll' option into LT_INIT's first parameter.]) adam@0: ]) adam@0: adam@0: dnl aclocal-1.4 backwards compatibility: adam@0: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) adam@0: adam@0: adam@0: # _LT_ENABLE_SHARED([DEFAULT]) adam@0: # ---------------------------- adam@0: # implement the --enable-shared flag, and supports the `shared' and adam@0: # `disable-shared' LT_INIT options. adam@0: # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. adam@0: m4_define([_LT_ENABLE_SHARED], adam@0: [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl adam@0: AC_ARG_ENABLE([shared], adam@0: [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], adam@0: [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], adam@0: [p=${PACKAGE-default} adam@0: case $enableval in adam@0: yes) enable_shared=yes ;; adam@0: no) enable_shared=no ;; adam@0: *) adam@0: enable_shared=no adam@0: # Look at the argument we got. We use all the common list separators. adam@0: lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," adam@0: for pkg in $enableval; do adam@0: IFS="$lt_save_ifs" adam@0: if test "X$pkg" = "X$p"; then adam@0: enable_shared=yes adam@0: fi adam@0: done adam@0: IFS="$lt_save_ifs" adam@0: ;; adam@0: esac], adam@0: [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) adam@0: adam@0: _LT_DECL([build_libtool_libs], [enable_shared], [0], adam@0: [Whether or not to build shared libraries]) adam@0: ])# _LT_ENABLE_SHARED adam@0: adam@0: LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) adam@0: LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) adam@0: adam@0: # Old names: adam@0: AC_DEFUN([AC_ENABLE_SHARED], adam@0: [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) adam@0: ]) adam@0: adam@0: AC_DEFUN([AC_DISABLE_SHARED], adam@0: [_LT_SET_OPTION([LT_INIT], [disable-shared]) adam@0: ]) adam@0: adam@0: AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) adam@0: AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) adam@0: adam@0: dnl aclocal-1.4 backwards compatibility: adam@0: dnl AC_DEFUN([AM_ENABLE_SHARED], []) adam@0: dnl AC_DEFUN([AM_DISABLE_SHARED], []) adam@0: adam@0: adam@0: adam@0: # _LT_ENABLE_STATIC([DEFAULT]) adam@0: # ---------------------------- adam@0: # implement the --enable-static flag, and support the `static' and adam@0: # `disable-static' LT_INIT options. adam@0: # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. adam@0: m4_define([_LT_ENABLE_STATIC], adam@0: [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl adam@0: AC_ARG_ENABLE([static], adam@0: [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], adam@0: [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], adam@0: [p=${PACKAGE-default} adam@0: case $enableval in adam@0: yes) enable_static=yes ;; adam@0: no) enable_static=no ;; adam@0: *) adam@0: enable_static=no adam@0: # Look at the argument we got. We use all the common list separators. adam@0: lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," adam@0: for pkg in $enableval; do adam@0: IFS="$lt_save_ifs" adam@0: if test "X$pkg" = "X$p"; then adam@0: enable_static=yes adam@0: fi adam@0: done adam@0: IFS="$lt_save_ifs" adam@0: ;; adam@0: esac], adam@0: [enable_static=]_LT_ENABLE_STATIC_DEFAULT) adam@0: adam@0: _LT_DECL([build_old_libs], [enable_static], [0], adam@0: [Whether or not to build static libraries]) adam@0: ])# _LT_ENABLE_STATIC adam@0: adam@0: LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) adam@0: LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) adam@0: adam@0: # Old names: adam@0: AC_DEFUN([AC_ENABLE_STATIC], adam@0: [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) adam@0: ]) adam@0: adam@0: AC_DEFUN([AC_DISABLE_STATIC], adam@0: [_LT_SET_OPTION([LT_INIT], [disable-static]) adam@0: ]) adam@0: adam@0: AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) adam@0: AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) adam@0: adam@0: dnl aclocal-1.4 backwards compatibility: adam@0: dnl AC_DEFUN([AM_ENABLE_STATIC], []) adam@0: dnl AC_DEFUN([AM_DISABLE_STATIC], []) adam@0: adam@0: adam@0: adam@0: # _LT_ENABLE_FAST_INSTALL([DEFAULT]) adam@0: # ---------------------------------- adam@0: # implement the --enable-fast-install flag, and support the `fast-install' adam@0: # and `disable-fast-install' LT_INIT options. adam@0: # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. adam@0: m4_define([_LT_ENABLE_FAST_INSTALL], adam@0: [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl adam@0: AC_ARG_ENABLE([fast-install], adam@0: [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], adam@0: [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], adam@0: [p=${PACKAGE-default} adam@0: case $enableval in adam@0: yes) enable_fast_install=yes ;; adam@0: no) enable_fast_install=no ;; adam@0: *) adam@0: enable_fast_install=no adam@0: # Look at the argument we got. We use all the common list separators. adam@0: lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," adam@0: for pkg in $enableval; do adam@0: IFS="$lt_save_ifs" adam@0: if test "X$pkg" = "X$p"; then adam@0: enable_fast_install=yes adam@0: fi adam@0: done adam@0: IFS="$lt_save_ifs" adam@0: ;; adam@0: esac], adam@0: [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) adam@0: adam@0: _LT_DECL([fast_install], [enable_fast_install], [0], adam@0: [Whether or not to optimize for fast installation])dnl adam@0: ])# _LT_ENABLE_FAST_INSTALL adam@0: adam@0: LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) adam@0: LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) adam@0: adam@0: # Old names: adam@0: AU_DEFUN([AC_ENABLE_FAST_INSTALL], adam@0: [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) adam@0: AC_DIAGNOSE([obsolete], adam@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you put adam@0: the `fast-install' option into LT_INIT's first parameter.]) adam@0: ]) adam@0: adam@0: AU_DEFUN([AC_DISABLE_FAST_INSTALL], adam@0: [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) adam@0: AC_DIAGNOSE([obsolete], adam@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you put adam@0: the `disable-fast-install' option into LT_INIT's first parameter.]) adam@0: ]) adam@0: adam@0: dnl aclocal-1.4 backwards compatibility: adam@0: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) adam@0: dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) adam@0: adam@0: adam@0: # _LT_WITH_PIC([MODE]) adam@0: # -------------------- adam@0: # implement the --with-pic flag, and support the `pic-only' and `no-pic' adam@0: # LT_INIT options. adam@0: # MODE is either `yes' or `no'. If omitted, it defaults to `both'. adam@0: m4_define([_LT_WITH_PIC], adam@0: [AC_ARG_WITH([pic], adam@0: [AS_HELP_STRING([--with-pic], adam@0: [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], adam@0: [pic_mode="$withval"], adam@0: [pic_mode=default]) adam@0: adam@0: test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) adam@0: adam@0: _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl adam@0: ])# _LT_WITH_PIC adam@0: adam@0: LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) adam@0: LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) adam@0: adam@0: # Old name: adam@0: AU_DEFUN([AC_LIBTOOL_PICMODE], adam@0: [_LT_SET_OPTION([LT_INIT], [pic-only]) adam@0: AC_DIAGNOSE([obsolete], adam@0: [$0: Remove this warning and the call to _LT_SET_OPTION when you adam@0: put the `pic-only' option into LT_INIT's first parameter.]) adam@0: ]) adam@0: adam@0: dnl aclocal-1.4 backwards compatibility: adam@0: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) adam@0: adam@0: ## ----------------- ## adam@0: ## LTDL_INIT Options ## adam@0: ## ----------------- ## adam@0: adam@0: m4_define([_LTDL_MODE], []) adam@0: LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], adam@0: [m4_define([_LTDL_MODE], [nonrecursive])]) adam@0: LT_OPTION_DEFINE([LTDL_INIT], [recursive], adam@0: [m4_define([_LTDL_MODE], [recursive])]) adam@0: LT_OPTION_DEFINE([LTDL_INIT], [subproject], adam@0: [m4_define([_LTDL_MODE], [subproject])]) adam@0: adam@0: m4_define([_LTDL_TYPE], []) adam@0: LT_OPTION_DEFINE([LTDL_INIT], [installable], adam@0: [m4_define([_LTDL_TYPE], [installable])]) adam@0: LT_OPTION_DEFINE([LTDL_INIT], [convenience], adam@0: [m4_define([_LTDL_TYPE], [convenience])])