104007ebaSmrg# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- 204007ebaSmrg# 379d5fcd7Smrg# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software 405cf1079Smrg# Foundation, Inc. 504007ebaSmrg# Written by Gary V. Vaughan, 2004 604007ebaSmrg# 704007ebaSmrg# This file is free software; the Free Software Foundation gives 804007ebaSmrg# unlimited permission to copy and/or distribute it, with or without 904007ebaSmrg# modifications, as long as this notice is preserved. 1004007ebaSmrg 1104007ebaSmrg# serial 6 ltsugar.m4 1204007ebaSmrg 1304007ebaSmrg# This is to help aclocal find these macros, as it can't see m4_define. 1404007ebaSmrgAC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) 1504007ebaSmrg 1604007ebaSmrg 1704007ebaSmrg# lt_join(SEP, ARG1, [ARG2...]) 1804007ebaSmrg# ----------------------------- 1904007ebaSmrg# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their 2004007ebaSmrg# associated separator. 2104007ebaSmrg# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier 2204007ebaSmrg# versions in m4sugar had bugs. 2304007ebaSmrgm4_define([lt_join], 2404007ebaSmrg[m4_if([$#], [1], [], 2504007ebaSmrg [$#], [2], [[$2]], 2604007ebaSmrg [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) 2704007ebaSmrgm4_define([_lt_join], 2804007ebaSmrg[m4_if([$#$2], [2], [], 2904007ebaSmrg [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) 3004007ebaSmrg 3104007ebaSmrg 3204007ebaSmrg# lt_car(LIST) 3304007ebaSmrg# lt_cdr(LIST) 3404007ebaSmrg# ------------ 3504007ebaSmrg# Manipulate m4 lists. 3604007ebaSmrg# These macros are necessary as long as will still need to support 3705cf1079Smrg# Autoconf-2.59, which quotes differently. 3804007ebaSmrgm4_define([lt_car], [[$1]]) 3904007ebaSmrgm4_define([lt_cdr], 4004007ebaSmrg[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], 4104007ebaSmrg [$#], 1, [], 4204007ebaSmrg [m4_dquote(m4_shift($@))])]) 4304007ebaSmrgm4_define([lt_unquote], $1) 4404007ebaSmrg 4504007ebaSmrg 4604007ebaSmrg# lt_append(MACRO-NAME, STRING, [SEPARATOR]) 4704007ebaSmrg# ------------------------------------------ 4805cf1079Smrg# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. 4904007ebaSmrg# Note that neither SEPARATOR nor STRING are expanded; they are appended 5004007ebaSmrg# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). 5104007ebaSmrg# No SEPARATOR is output if MACRO-NAME was previously undefined (different 5204007ebaSmrg# than defined and empty). 5304007ebaSmrg# 5404007ebaSmrg# This macro is needed until we can rely on Autoconf 2.62, since earlier 5504007ebaSmrg# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. 5604007ebaSmrgm4_define([lt_append], 5704007ebaSmrg[m4_define([$1], 5804007ebaSmrg m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) 5904007ebaSmrg 6004007ebaSmrg 6104007ebaSmrg 6204007ebaSmrg# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) 6304007ebaSmrg# ---------------------------------------------------------- 6404007ebaSmrg# Produce a SEP delimited list of all paired combinations of elements of 6504007ebaSmrg# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list 6604007ebaSmrg# has the form PREFIXmINFIXSUFFIXn. 6704007ebaSmrg# Needed until we can rely on m4_combine added in Autoconf 2.62. 6804007ebaSmrgm4_define([lt_combine], 6904007ebaSmrg[m4_if(m4_eval([$# > 3]), [1], 7004007ebaSmrg [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl 7104007ebaSmrg[[m4_foreach([_Lt_prefix], [$2], 7204007ebaSmrg [m4_foreach([_Lt_suffix], 7304007ebaSmrg ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, 7404007ebaSmrg [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) 7504007ebaSmrg 7604007ebaSmrg 7704007ebaSmrg# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) 7804007ebaSmrg# ----------------------------------------------------------------------- 7904007ebaSmrg# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited 8004007ebaSmrg# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. 8104007ebaSmrgm4_define([lt_if_append_uniq], 8204007ebaSmrg[m4_ifdef([$1], 8304007ebaSmrg [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], 8404007ebaSmrg [lt_append([$1], [$2], [$3])$4], 8504007ebaSmrg [$5])], 8604007ebaSmrg [lt_append([$1], [$2], [$3])$4])]) 8704007ebaSmrg 8804007ebaSmrg 8904007ebaSmrg# lt_dict_add(DICT, KEY, VALUE) 9004007ebaSmrg# ----------------------------- 9104007ebaSmrgm4_define([lt_dict_add], 9204007ebaSmrg[m4_define([$1($2)], [$3])]) 9304007ebaSmrg 9404007ebaSmrg 9504007ebaSmrg# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) 9604007ebaSmrg# -------------------------------------------- 9704007ebaSmrgm4_define([lt_dict_add_subkey], 9804007ebaSmrg[m4_define([$1($2:$3)], [$4])]) 9904007ebaSmrg 10004007ebaSmrg 10104007ebaSmrg# lt_dict_fetch(DICT, KEY, [SUBKEY]) 10204007ebaSmrg# ---------------------------------- 10304007ebaSmrgm4_define([lt_dict_fetch], 10404007ebaSmrg[m4_ifval([$3], 10504007ebaSmrg m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), 10604007ebaSmrg m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) 10704007ebaSmrg 10804007ebaSmrg 10904007ebaSmrg# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) 11004007ebaSmrg# ----------------------------------------------------------------- 11104007ebaSmrgm4_define([lt_if_dict_fetch], 11204007ebaSmrg[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], 11304007ebaSmrg [$5], 11404007ebaSmrg [$6])]) 11504007ebaSmrg 11604007ebaSmrg 11704007ebaSmrg# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) 11804007ebaSmrg# -------------------------------------------------------------- 11904007ebaSmrgm4_define([lt_dict_filter], 12004007ebaSmrg[m4_if([$5], [], [], 12104007ebaSmrg [lt_join(m4_quote(m4_default([$4], [[, ]])), 12204007ebaSmrg lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), 12304007ebaSmrg [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl 12404007ebaSmrg]) 125