acinclude/ltsugar.m4
author Michael Sartain <mikesart@valvesoftware.com>
Thu, 11 Oct 2012 09:41:43 -0700
changeset 6570 45855398762c
parent 6442 2d3caa191dc4
permissions -rw-r--r--
Add GLX_X_VISUAL_TYPE_EXT so created window will use DirectColor if available (instead of TrueColor).
Our new X11 window was being created with the TrueColor attribute, and trying to set the gamma
on that would fail. This change checks for the visual_info extension, and uses that to ask for
DirectColor if available.
slouken@3342
     1
# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
slouken@3342
     2
#
slouken@3342
     3
# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
slouken@3342
     4
# Written by Gary V. Vaughan, 2004
slouken@3342
     5
#
slouken@3342
     6
# This file is free software; the Free Software Foundation gives
slouken@3342
     7
# unlimited permission to copy and/or distribute it, with or without
slouken@3342
     8
# modifications, as long as this notice is preserved.
slouken@3342
     9
slouken@3342
    10
# serial 6 ltsugar.m4
slouken@3342
    11
slouken@3342
    12
# This is to help aclocal find these macros, as it can't see m4_define.
slouken@3342
    13
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
slouken@3342
    14
slouken@3342
    15
slouken@3342
    16
# lt_join(SEP, ARG1, [ARG2...])
slouken@3342
    17
# -----------------------------
slouken@3342
    18
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
slouken@3342
    19
# associated separator.
slouken@3342
    20
# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
slouken@3342
    21
# versions in m4sugar had bugs.
slouken@3342
    22
m4_define([lt_join],
slouken@3342
    23
[m4_if([$#], [1], [],
slouken@3342
    24
       [$#], [2], [[$2]],
slouken@3342
    25
       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
slouken@3342
    26
m4_define([_lt_join],
slouken@3342
    27
[m4_if([$#$2], [2], [],
slouken@3342
    28
       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
slouken@3342
    29
slouken@3342
    30
slouken@3342
    31
# lt_car(LIST)
slouken@3342
    32
# lt_cdr(LIST)
slouken@3342
    33
# ------------
slouken@3342
    34
# Manipulate m4 lists.
slouken@3342
    35
# These macros are necessary as long as will still need to support
slouken@3342
    36
# Autoconf-2.59 which quotes differently.
slouken@3342
    37
m4_define([lt_car], [[$1]])
slouken@3342
    38
m4_define([lt_cdr],
slouken@3342
    39
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
slouken@3342
    40
       [$#], 1, [],
slouken@3342
    41
       [m4_dquote(m4_shift($@))])])
slouken@3342
    42
m4_define([lt_unquote], $1)
slouken@3342
    43
slouken@3342
    44
slouken@3342
    45
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
slouken@3342
    46
# ------------------------------------------
slouken@3342
    47
# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
slouken@3342
    48
# Note that neither SEPARATOR nor STRING are expanded; they are appended
slouken@3342
    49
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
slouken@3342
    50
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
slouken@3342
    51
# than defined and empty).
slouken@3342
    52
#
slouken@3342
    53
# This macro is needed until we can rely on Autoconf 2.62, since earlier
slouken@3342
    54
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
slouken@3342
    55
m4_define([lt_append],
slouken@3342
    56
[m4_define([$1],
slouken@3342
    57
	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
slouken@3342
    58
slouken@3342
    59
slouken@3342
    60
slouken@3342
    61
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
slouken@3342
    62
# ----------------------------------------------------------
slouken@3342
    63
# Produce a SEP delimited list of all paired combinations of elements of
slouken@3342
    64
# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
slouken@3342
    65
# has the form PREFIXmINFIXSUFFIXn.
slouken@3342
    66
# Needed until we can rely on m4_combine added in Autoconf 2.62.
slouken@3342
    67
m4_define([lt_combine],
slouken@3342
    68
[m4_if(m4_eval([$# > 3]), [1],
slouken@3342
    69
       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
slouken@3342
    70
[[m4_foreach([_Lt_prefix], [$2],
slouken@3342
    71
	     [m4_foreach([_Lt_suffix],
slouken@3342
    72
		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
slouken@3342
    73
	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
slouken@3342
    74
slouken@3342
    75
slouken@3342
    76
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
slouken@3342
    77
# -----------------------------------------------------------------------
slouken@3342
    78
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
slouken@3342
    79
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
slouken@3342
    80
m4_define([lt_if_append_uniq],
slouken@3342
    81
[m4_ifdef([$1],
slouken@3342
    82
	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
slouken@3342
    83
		 [lt_append([$1], [$2], [$3])$4],
slouken@3342
    84
		 [$5])],
slouken@3342
    85
	  [lt_append([$1], [$2], [$3])$4])])
slouken@3342
    86
slouken@3342
    87
slouken@3342
    88
# lt_dict_add(DICT, KEY, VALUE)
slouken@3342
    89
# -----------------------------
slouken@3342
    90
m4_define([lt_dict_add],
slouken@3342
    91
[m4_define([$1($2)], [$3])])
slouken@3342
    92
slouken@3342
    93
slouken@3342
    94
# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
slouken@3342
    95
# --------------------------------------------
slouken@3342
    96
m4_define([lt_dict_add_subkey],
slouken@3342
    97
[m4_define([$1($2:$3)], [$4])])
slouken@3342
    98
slouken@3342
    99
slouken@3342
   100
# lt_dict_fetch(DICT, KEY, [SUBKEY])
slouken@3342
   101
# ----------------------------------
slouken@3342
   102
m4_define([lt_dict_fetch],
slouken@3342
   103
[m4_ifval([$3],
slouken@3342
   104
	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
slouken@3342
   105
    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
slouken@3342
   106
slouken@3342
   107
slouken@3342
   108
# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
slouken@3342
   109
# -----------------------------------------------------------------
slouken@3342
   110
m4_define([lt_if_dict_fetch],
slouken@3342
   111
[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
slouken@3342
   112
	[$5],
slouken@3342
   113
    [$6])])
slouken@3342
   114
slouken@3342
   115
slouken@3342
   116
# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
slouken@3342
   117
# --------------------------------------------------------------
slouken@3342
   118
m4_define([lt_dict_filter],
slouken@3342
   119
[m4_if([$5], [], [],
slouken@3342
   120
  [lt_join(m4_quote(m4_default([$4], [[, ]])),
slouken@3342
   121
           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
slouken@3342
   122
		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
slouken@3342
   123
])