aboutsummaryrefslogtreecommitdiff
path: root/build/meta/common.m4
diff options
context:
space:
mode:
Diffstat (limited to 'build/meta/common.m4')
-rw-r--r--build/meta/common.m462
1 files changed, 31 insertions, 31 deletions
diff --git a/build/meta/common.m4 b/build/meta/common.m4
index 54be556..bb4fcc4 100644
--- a/build/meta/common.m4
+++ b/build/meta/common.m4
@@ -3,32 +3,25 @@
# copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC
# license : GNU GPL v2; see accompanying LICENSE file
-# Quote character literals.
-#
-m4_changequote([, ])
-m4_define([m4_oquote],`)
-m4_define([m4_cquote],')
-m4_changequote(`, ')
-
# m4_strip(STRING)
# ----------------
# Expands into STRING with tabs and spaces singled out into a single
# space, and removing leading and trailing spaces.
#
-m4_define(`m4_strip',
-`m4_patsubst(m4_patsubst(` $1 ', `[ ]+', ` '), `^ \(.*\) $', ```\1''')')
+m4_define([m4_strip],
+[m4_patsubst(m4_patsubst([ $1 ], [[ ]+], [ ]), [^ \(.*\) $], [[[\1]]])])
# m4_normalize(STRING)
# --------------------
# Apply m4_strip to STRING.
#
-m4_define(`m4_normalize', `m4_strip(`$1')')
+m4_define([m4_normalize], [m4_strip([$1])])
# m4_split(STRING, [REGEXP])
# --------------------------
# Split STRING into an m4 list of quoted elements. The elements are
-# quoted with ' and '. Beginning spaces and end spaces *are kept*.
+# quoted with ] and ]. Beginning spaces and end spaces *are kept*.
# Use m4_strip to remove them.
#
# REGEXP specifies where to split. Default is [\t ]+.
@@ -36,41 +29,48 @@ m4_define(`m4_normalize', `m4_strip(`$1')')
# If STRING is empty, the result is an empty list.
#
-m4_define(`m4_split',
-`m4_ifelse(`$1', `', `',
- `$2', ` ', `m4_ifelse(m4_index(`$1', ` '), `-1', ```$1''',
- `_$0(`$1', `$2', `, ')')',
- `$2', `', `_$0(`$1', `[ ]+', `, ')',
- `_$0(`$1', `$2', `, ')')')
+m4_define([m4_split],
+[m4_ifelse([$1], [], [],
+ [$2], [ ], [m4_ifelse(m4_index([$1], [ ]), [-1], [[[$1]]],
+ [_$0([$1], [$2], [, ])])],
+ [$2], [], [_$0([$1], [[ ]+], [, ])],
+ [_$0([$1], [$2], [, ])])])
-m4_define(`_m4_split', `m4_patsubst(`$1', `$2', `$3')')
+m4_define([_m4_split], [m4_patsubst([$1], [$2], [$3])])
# Simple foreach implementation. The list elements are expected to
# be fully expanded.
#
-m4_define(`m4_foreach', `m4_ifelse(`$2', `', `',
- `m4_pushdef(`$1')_$0(`$1', `$3', `', $2)m4_popdef(`$1')')')
-m4_define(`_m4_foreach', `m4_ifelse(`$#', `3', `',
- `m4_define(`$1', `$4')$2`'$0(`$1', `$2',
- m4_shift(m4_shift(m4_shift($@))))')')
+m4_define([m4_foreach], [m4_ifelse([$2], [], [],
+ [m4_pushdef([$1])_$0([$1], [$3], [], $2)m4_popdef([$1])])])
+m4_define([_m4_foreach], [m4_ifelse([$#], [3], [],
+ [m4_define([$1], [$4])$2[]$0([$1], [$2],
+ m4_shift(m4_shift(m4_shift($@))))])])
# m4_foreach_w(VARIABLE, LIST, EXPRESSION)
# ----------------------------------------
# Like m4_foreach, but the list is whitespace separated.
#
-m4_define(`m4_foreach_w',
-`m4_foreach(`$1', m4_split(m4_normalize(`$2'), ` '), `$3')')
+m4_define([m4_foreach_w],
+[m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])
+
+# m4_strip_nl(STRING)
+# ----------------------------------------
+# Remove newlines
+#
+m4_define([m4_strip_nl], [m4_patsubst([$1], [
+], [])])
# Enable/disable quoting.
#
-m4_define(`m4_equote', `m4_changequote(`,')')
-m4_define(`m4_dquote', `m4_changequote(`')')
+m4_define([m4_equote], [m4_changequote([,])])
+m4_define([m4_dquote], [m4_changequote([])])
#
#
-m4_define(`__env_impl__', `m4_esyscmd(`echo -n $'`$1')')
-m4_define(`__env__', `m4_equote()__env_impl__(`$1')`'m4_dquote()')
+m4_define([__env_impl__], [m4_esyscmd([echo -n $$1])])
+m4_define([__env__], [m4_equote()__env_impl__([$1])[]m4_dquote()])
-m4_define(`__value_impl__', `__env_impl__(`$1')')
-m4_define(`__value__', `m4_equote()__value_impl__(`$1')`'m4_dquote()')
+m4_define([__value_impl__], [__env_impl__([$1])])
+m4_define([__value__], [m4_equote()__value_impl__([$1])[]m4_dquote()])