Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. # Helper functions for option handling.                    -*- Autoconf -*-
  2. #
  3. #   Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
  4. #   Foundation, 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 8 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.   _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
  86.                    [_LT_WITH_AIX_SONAME([aix])])
  87.   ])
  88. ])# _LT_SET_OPTIONS
  89.  
  90.  
  91. ## --------------------------------- ##
  92. ## Macros to handle LT_INIT options. ##
  93. ## --------------------------------- ##
  94.  
  95. # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
  96. # -----------------------------------------
  97. m4_define([_LT_MANGLE_DEFUN],
  98. [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
  99.  
  100.  
  101. # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
  102. # -----------------------------------------------
  103. m4_define([LT_OPTION_DEFINE],
  104. [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
  105. ])# LT_OPTION_DEFINE
  106.  
  107.  
  108. # dlopen
  109. # ------
  110. LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
  111. ])
  112.  
  113. AU_DEFUN([AC_LIBTOOL_DLOPEN],
  114. [_LT_SET_OPTION([LT_INIT], [dlopen])
  115. AC_DIAGNOSE([obsolete],
  116. [$0: Remove this warning and the call to _LT_SET_OPTION when you
  117. put the 'dlopen' option into LT_INIT's first parameter.])
  118. ])
  119.  
  120. dnl aclocal-1.4 backwards compatibility:
  121. dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
  122.  
  123.  
  124. # win32-dll
  125. # ---------
  126. # Declare package support for building win32 dll's.
  127. LT_OPTION_DEFINE([LT_INIT], [win32-dll],
  128. [enable_win32_dll=yes
  129.  
  130. case $host in
  131. *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
  132.   AC_CHECK_TOOL(AS, as, false)
  133.   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
  134.   AC_CHECK_TOOL(OBJDUMP, objdump, false)
  135.   ;;
  136. esac
  137.  
  138. test -z "$AS" && AS=as
  139. _LT_DECL([], [AS],      [1], [Assembler program])dnl
  140.  
  141. test -z "$DLLTOOL" && DLLTOOL=dlltool
  142. _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
  143.  
  144. test -z "$OBJDUMP" && OBJDUMP=objdump
  145. _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
  146. ])# win32-dll
  147.  
  148. AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
  149. [AC_REQUIRE([AC_CANONICAL_HOST])dnl
  150. _LT_SET_OPTION([LT_INIT], [win32-dll])
  151. AC_DIAGNOSE([obsolete],
  152. [$0: Remove this warning and the call to _LT_SET_OPTION when you
  153. put the 'win32-dll' option into LT_INIT's first parameter.])
  154. ])
  155.  
  156. dnl aclocal-1.4 backwards compatibility:
  157. dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
  158.  
  159.  
  160. # _LT_ENABLE_SHARED([DEFAULT])
  161. # ----------------------------
  162. # implement the --enable-shared flag, and supports the 'shared' and
  163. # 'disable-shared' LT_INIT options.
  164. # DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
  165. m4_define([_LT_ENABLE_SHARED],
  166. [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
  167. AC_ARG_ENABLE([shared],
  168.     [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
  169.         [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
  170.     [p=${PACKAGE-default}
  171.     case $enableval in
  172.     yes) enable_shared=yes ;;
  173.     no) enable_shared=no ;;
  174.     *)
  175.       enable_shared=no
  176.       # Look at the argument we got.  We use all the common list separators.
  177.       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
  178.       for pkg in $enableval; do
  179.         IFS=$lt_save_ifs
  180.         if test "X$pkg" = "X$p"; then
  181.           enable_shared=yes
  182.         fi
  183.       done
  184.       IFS=$lt_save_ifs
  185.       ;;
  186.     esac],
  187.     [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
  188.  
  189.     _LT_DECL([build_libtool_libs], [enable_shared], [0],
  190.         [Whether or not to build shared libraries])
  191. ])# _LT_ENABLE_SHARED
  192.  
  193. LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
  194. LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
  195.  
  196. # Old names:
  197. AC_DEFUN([AC_ENABLE_SHARED],
  198. [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
  199. ])
  200.  
  201. AC_DEFUN([AC_DISABLE_SHARED],
  202. [_LT_SET_OPTION([LT_INIT], [disable-shared])
  203. ])
  204.  
  205. AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
  206. AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
  207.  
  208. dnl aclocal-1.4 backwards compatibility:
  209. dnl AC_DEFUN([AM_ENABLE_SHARED], [])
  210. dnl AC_DEFUN([AM_DISABLE_SHARED], [])
  211.  
  212.  
  213.  
  214. # _LT_ENABLE_STATIC([DEFAULT])
  215. # ----------------------------
  216. # implement the --enable-static flag, and support the 'static' and
  217. # 'disable-static' LT_INIT options.
  218. # DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
  219. m4_define([_LT_ENABLE_STATIC],
  220. [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
  221. AC_ARG_ENABLE([static],
  222.     [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
  223.         [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
  224.     [p=${PACKAGE-default}
  225.     case $enableval in
  226.     yes) enable_static=yes ;;
  227.     no) enable_static=no ;;
  228.     *)
  229.      enable_static=no
  230.       # Look at the argument we got.  We use all the common list separators.
  231.       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
  232.       for pkg in $enableval; do
  233.         IFS=$lt_save_ifs
  234.         if test "X$pkg" = "X$p"; then
  235.           enable_static=yes
  236.         fi
  237.       done
  238.       IFS=$lt_save_ifs
  239.       ;;
  240.     esac],
  241.     [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
  242.  
  243.     _LT_DECL([build_old_libs], [enable_static], [0],
  244.         [Whether or not to build static libraries])
  245. ])# _LT_ENABLE_STATIC
  246.  
  247. LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
  248. LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
  249.  
  250. # Old names:
  251. AC_DEFUN([AC_ENABLE_STATIC],
  252. [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
  253. ])
  254.  
  255. AC_DEFUN([AC_DISABLE_STATIC],
  256. [_LT_SET_OPTION([LT_INIT], [disable-static])
  257. ])
  258.  
  259. AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
  260. AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
  261.  
  262. dnl aclocal-1.4 backwards compatibility:
  263. dnl AC_DEFUN([AM_ENABLE_STATIC], [])
  264. dnl AC_DEFUN([AM_DISABLE_STATIC], [])
  265.  
  266.  
  267.  
  268. # _LT_ENABLE_FAST_INSTALL([DEFAULT])
  269. # ----------------------------------
  270. # implement the --enable-fast-install flag, and support the 'fast-install'
  271. # and 'disable-fast-install' LT_INIT options.
  272. # DEFAULT is either 'yes' or 'no'.  If omitted, it defaults to 'yes'.
  273. m4_define([_LT_ENABLE_FAST_INSTALL],
  274. [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
  275. AC_ARG_ENABLE([fast-install],
  276.     [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
  277.     [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
  278.     [p=${PACKAGE-default}
  279.     case $enableval in
  280.     yes) enable_fast_install=yes ;;
  281.     no) enable_fast_install=no ;;
  282.     *)
  283.       enable_fast_install=no
  284.       # Look at the argument we got.  We use all the common list separators.
  285.       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
  286.       for pkg in $enableval; do
  287.         IFS=$lt_save_ifs
  288.         if test "X$pkg" = "X$p"; then
  289.           enable_fast_install=yes
  290.         fi
  291.       done
  292.       IFS=$lt_save_ifs
  293.       ;;
  294.     esac],
  295.     [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
  296.  
  297. _LT_DECL([fast_install], [enable_fast_install], [0],
  298.          [Whether or not to optimize for fast installation])dnl
  299. ])# _LT_ENABLE_FAST_INSTALL
  300.  
  301. LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
  302. LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
  303.  
  304. # Old names:
  305. AU_DEFUN([AC_ENABLE_FAST_INSTALL],
  306. [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
  307. AC_DIAGNOSE([obsolete],
  308. [$0: Remove this warning and the call to _LT_SET_OPTION when you put
  309. the 'fast-install' option into LT_INIT's first parameter.])
  310. ])
  311.  
  312. AU_DEFUN([AC_DISABLE_FAST_INSTALL],
  313. [_LT_SET_OPTION([LT_INIT], [disable-fast-install])
  314. AC_DIAGNOSE([obsolete],
  315. [$0: Remove this warning and the call to _LT_SET_OPTION when you put
  316. the 'disable-fast-install' option into LT_INIT's first parameter.])
  317. ])
  318.  
  319. dnl aclocal-1.4 backwards compatibility:
  320. dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
  321. dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
  322.  
  323.  
  324. # _LT_WITH_AIX_SONAME([DEFAULT])
  325. # ----------------------------------
  326. # implement the --with-aix-soname flag, and support the `aix-soname=aix'
  327. # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
  328. # is either `aix', `both' or `svr4'.  If omitted, it defaults to `aix'.
  329. m4_define([_LT_WITH_AIX_SONAME],
  330. [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
  331. shared_archive_member_spec=
  332. case $host,$enable_shared in
  333. power*-*-aix[[5-9]]*,yes)
  334.   AC_MSG_CHECKING([which variant of shared library versioning to provide])
  335.   AC_ARG_WITH([aix-soname],
  336.     [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
  337.       [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
  338.     [case $withval in
  339.     aix|svr4|both)
  340.       ;;
  341.     *)
  342.       AC_MSG_ERROR([Unknown argument to --with-aix-soname])
  343.       ;;
  344.     esac
  345.     lt_cv_with_aix_soname=$with_aix_soname],
  346.     [AC_CACHE_VAL([lt_cv_with_aix_soname],
  347.       [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
  348.     with_aix_soname=$lt_cv_with_aix_soname])
  349.   AC_MSG_RESULT([$with_aix_soname])
  350.   if test aix != "$with_aix_soname"; then
  351.     # For the AIX way of multilib, we name the shared archive member
  352.     # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
  353.     # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
  354.     # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
  355.     # the AIX toolchain works better with OBJECT_MODE set (default 32).
  356.     if test 64 = "${OBJECT_MODE-32}"; then
  357.       shared_archive_member_spec=shr_64
  358.     else
  359.       shared_archive_member_spec=shr
  360.     fi
  361.   fi
  362.   ;;
  363. *)
  364.   with_aix_soname=aix
  365.   ;;
  366. esac
  367.  
  368. _LT_DECL([], [shared_archive_member_spec], [0],
  369.     [Shared archive member basename, for filename based shared library versioning on AIX])dnl
  370. ])# _LT_WITH_AIX_SONAME
  371.  
  372. LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
  373. LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
  374. LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
  375.  
  376.  
  377. # _LT_WITH_PIC([MODE])
  378. # --------------------
  379. # implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
  380. # LT_INIT options.
  381. # MODE is either 'yes' or 'no'.  If omitted, it defaults to 'both'.
  382. m4_define([_LT_WITH_PIC],
  383. [AC_ARG_WITH([pic],
  384.     [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
  385.         [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
  386.     [lt_p=${PACKAGE-default}
  387.     case $withval in
  388.     yes|no) pic_mode=$withval ;;
  389.     *)
  390.       pic_mode=default
  391.       # Look at the argument we got.  We use all the common list separators.
  392.       lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
  393.       for lt_pkg in $withval; do
  394.         IFS=$lt_save_ifs
  395.         if test "X$lt_pkg" = "X$lt_p"; then
  396.           pic_mode=yes
  397.         fi
  398.       done
  399.       IFS=$lt_save_ifs
  400.       ;;
  401.     esac],
  402.     [pic_mode=m4_default([$1], [default])])
  403.  
  404. _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
  405. ])# _LT_WITH_PIC
  406.  
  407. LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
  408. LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
  409.  
  410. # Old name:
  411. AU_DEFUN([AC_LIBTOOL_PICMODE],
  412. [_LT_SET_OPTION([LT_INIT], [pic-only])
  413. AC_DIAGNOSE([obsolete],
  414. [$0: Remove this warning and the call to _LT_SET_OPTION when you
  415. put the 'pic-only' option into LT_INIT's first parameter.])
  416. ])
  417.  
  418. dnl aclocal-1.4 backwards compatibility:
  419. dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
  420.  
  421. ## ----------------- ##
  422. ## LTDL_INIT Options ##
  423. ## ----------------- ##
  424.  
  425. m4_define([_LTDL_MODE], [])
  426. LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
  427.                  [m4_define([_LTDL_MODE], [nonrecursive])])
  428. LT_OPTION_DEFINE([LTDL_INIT], [recursive],
  429.                  [m4_define([_LTDL_MODE], [recursive])])
  430. LT_OPTION_DEFINE([LTDL_INIT], [subproject],
  431.                  [m4_define([_LTDL_MODE], [subproject])])
  432.  
  433. m4_define([_LTDL_TYPE], [])
  434. LT_OPTION_DEFINE([LTDL_INIT], [installable],
  435.                  [m4_define([_LTDL_TYPE], [installable])])
  436. LT_OPTION_DEFINE([LTDL_INIT], [convenience],
  437.                  [m4_define([_LTDL_TYPE], [convenience])])
  438.