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