summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rules/CC/auto/RULES794
1 files changed, 360 insertions, 434 deletions
diff --git a/rules/CC/auto/RULES b/rules/CC/auto/RULES
index fd27c396..4f38504a 100644
--- a/rules/CC/auto/RULES
+++ b/rules/CC/auto/RULES
@@ -247,8 +247,7 @@
, "DEFINE=\"/* #undef $DEF */\""
, "echo \"#include \\\"$HDR\\\"\" > test.$LANG"
, "if $CC @$LANG.flags -c test.$LANG -I ./include 2>/dev/null; then DEFINE=\"#define $DEF 1\"; fi"
- , "if [ -f in/${LANG}files.def ]; then cat in/${LANG}files.def > ${LANG}files.def; fi"
- , "echo \"$DEFINE\n\" >> ${LANG}files.def"
+ , "echo \"$DEFINE\n\" > out.def"
]
}
}
@@ -278,8 +277,7 @@
, " break"
, " fi"
, "done"
- , "if [ -f in/${LANG}types.def ]; then cat in/${LANG}types.def > ${LANG}types.def; fi"
- , "echo \"$DEFINE\n\" >> ${LANG}types.def"
+ , "echo \"$DEFINE\n\" > out.def"
]
}
}
@@ -313,8 +311,7 @@
, " break"
, " fi"
, "done"
- , "if [ -f in/${LANG}symbols.def ]; then cat in/${LANG}symbols.def > ${LANG}symbols.def; fi"
- , "echo \"$DEFINE\n\" >> ${LANG}symbols.def"
+ , "echo \"$DEFINE\n\" > out.def"
]
}
}
@@ -346,10 +343,7 @@
, "EOF"
, " if $CC @$LANG.flags -c test.$LANG -I ./include 2>/dev/null; then"
, " DEFINE=\"#define $DEF $SIZE\""
- , " if [ -f in/${LANG}sizes.def ]; then"
- , " cat in/${LANG}sizes.def > ${LANG}sizes.def"
- , " fi"
- , " echo \"$DEFINE\n\" >> ${LANG}sizes.def"
+ , " echo \"$DEFINE\n\" > out.def"
, " exit 0"
, " fi"
, " done"
@@ -360,73 +354,65 @@
}
]
, [ "guard.def"
- , { "type": "singleton_map"
- , "key": "guard.def"
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "join"
- , "separator": "\n"
- , "$1":
- [ { "type": "join"
- , "separator": " "
- , "$1": ["#ifndef", {"type": "var", "name": "guard"}]
- }
- , { "type": "join"
- , "separator": " "
- , "$1": ["#define", {"type": "var", "name": "guard"}]
- }
- , "\n\n"
- ]
- }
+ , { "type": "BLOB"
+ , "data":
+ { "type": "join"
+ , "separator": "\n"
+ , "$1":
+ [ { "type": "join"
+ , "separator": " "
+ , "$1": ["#ifndef", {"type": "var", "name": "guard"}]
+ }
+ , { "type": "join"
+ , "separator": " "
+ , "$1": ["#define", {"type": "var", "name": "guard"}]
+ }
+ , "\n\n"
+ ]
}
}
]
, [ "plain.def"
- , { "type": "singleton_map"
- , "key": "plain.def"
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "join"
- , "$1":
- { "type": "foreach"
- , "range": {"type": "var", "name": "defines", "default": []}
- , "var": "pair"
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["list", {"type": "var", "name": "pair"}]
- , [ "def"
- , { "type": "assert_non_empty"
- , "msg": "Define name in 'defines' may not be empty"
- , "$1": {"type": "CALL_EXPRESSION", "name": "first"}
- }
- ]
- , ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
+ , { "type": "BLOB"
+ , "data":
+ { "type": "join"
+ , "$1":
+ { "type": "foreach"
+ , "range": {"type": "var", "name": "defines", "default": []}
+ , "var": "pair"
+ , "body":
+ { "type": "let*"
+ , "bindings":
+ [ ["list", {"type": "var", "name": "pair"}]
+ , [ "def"
+ , { "type": "assert_non_empty"
+ , "msg": "Define name in 'defines' may not be empty"
+ , "$1": {"type": "CALL_EXPRESSION", "name": "first"}
+ }
]
- , "body":
- { "type": "join"
- , "separator": " "
- , "$1":
- { "type": "case*"
- , "expr": {"type": "var", "name": "val"}
- , "case":
- [ [ null
- , [ "/* #undef"
- , {"type": "var", "name": "def"}
- , "*/\n\n"
- ]
+ , ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
+ ]
+ , "body":
+ { "type": "join"
+ , "separator": " "
+ , "$1":
+ { "type": "case*"
+ , "expr": {"type": "var", "name": "val"}
+ , "case":
+ [ [ null
+ , [ "/* #undef"
+ , {"type": "var", "name": "def"}
+ , "*/\n\n"
]
]
- , "default":
- [ "#define"
- , {"type": "var", "name": "def"}
- , { "type": "join"
- , "$1": [{"type": "var", "name": "val"}, "\n\n"]
- }
- ]
- }
+ ]
+ , "default":
+ [ "#define"
+ , {"type": "var", "name": "def"}
+ , { "type": "join"
+ , "$1": [{"type": "var", "name": "val"}, "\n\n"]
+ }
+ ]
}
}
}
@@ -435,39 +421,35 @@
}
]
, [ "int1.def"
- , { "type": "singleton_map"
- , "key": "int1.def"
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "join"
- , "$1":
- { "type": "foreach"
- , "range": {"type": "var", "name": "defines1", "default": []}
- , "var": "pair"
- , "body":
- { "type": "let*"
- , "bindings":
- [ ["list", {"type": "var", "name": "pair"}]
- , [ "def"
- , { "type": "assert_non_empty"
- , "msg": "Define name in 'defines1' may not be empty"
- , "$1": {"type": "CALL_EXPRESSION", "name": "first"}
- }
- ]
- , ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
- ]
- , "body":
- { "type": "join"
- , "separator": " "
- , "$1":
- { "type": "if"
- , "cond": {"type": "var", "name": "val"}
- , "then":
- ["#define", {"type": "var", "name": "def"}, "1\n\n"]
- , "else":
- ["/* #undef", {"type": "var", "name": "def"}, "*/\n\n"]
+ , { "type": "BLOB"
+ , "data":
+ { "type": "join"
+ , "$1":
+ { "type": "foreach"
+ , "range": {"type": "var", "name": "defines1", "default": []}
+ , "var": "pair"
+ , "body":
+ { "type": "let*"
+ , "bindings":
+ [ ["list", {"type": "var", "name": "pair"}]
+ , [ "def"
+ , { "type": "assert_non_empty"
+ , "msg": "Define name in 'defines1' may not be empty"
+ , "$1": {"type": "CALL_EXPRESSION", "name": "first"}
}
+ ]
+ , ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
+ ]
+ , "body":
+ { "type": "join"
+ , "separator": " "
+ , "$1":
+ { "type": "if"
+ , "cond": {"type": "var", "name": "val"}
+ , "then":
+ ["#define", {"type": "var", "name": "def"}, "1\n\n"]
+ , "else":
+ ["/* #undef", {"type": "var", "name": "def"}, "*/\n\n"]
}
}
}
@@ -476,56 +458,46 @@
}
]
, [ "int01.def"
- , { "type": "singleton_map"
- , "key": "int01.def"
- , "value":
- { "type": "BLOB"
- , "data":
- { "type": "join"
- , "$1":
- { "type": "foreach"
- , "range": {"type": "var", "name": "defines01", "default": []}
- , "var": "pair"
+ , { "type": "BLOB"
+ , "data":
+ { "type": "join"
+ , "$1":
+ { "type": "foreach"
+ , "range": {"type": "var", "name": "defines01", "default": []}
+ , "var": "pair"
+ , "body":
+ { "type": "let*"
+ , "bindings":
+ [ ["list", {"type": "var", "name": "pair"}]
+ , [ "def"
+ , { "type": "assert_non_empty"
+ , "msg": "Define name in 'defines01' may not be empty"
+ , "$1": {"type": "CALL_EXPRESSION", "name": "first"}
+ }
+ ]
+ , ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
+ ]
, "body":
- { "type": "let*"
- , "bindings":
- [ ["list", {"type": "var", "name": "pair"}]
- , [ "def"
- , { "type": "assert_non_empty"
- , "msg": "Define name in 'defines01' may not be empty"
- , "$1": {"type": "CALL_EXPRESSION", "name": "first"}
- }
- ]
- , ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
+ { "type": "join"
+ , "separator": " "
+ , "$1":
+ [ "#define"
+ , {"type": "var", "name": "def"}
+ , { "type": "if"
+ , "cond": {"type": "var", "name": "val"}
+ , "then": "1\n\n"
+ , "else": "0\n\n"
+ }
]
- , "body":
- { "type": "join"
- , "separator": " "
- , "$1":
- [ "#define"
- , {"type": "var", "name": "def"}
- , { "type": "if"
- , "cond": {"type": "var", "name": "val"}
- , "then": "1\n\n"
- , "else": "0\n\n"
- }
- ]
- }
}
}
}
}
}
]
- , [ "cfiles.def"
- , { "type": "foldl"
+ , [ "cfile-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "have_cfile", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "cfiles.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "cfiles.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -540,41 +512,35 @@
, ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "cfiles.def"}
- }
- , {"type": "env", "vars": ["file_check.sh", "c.flags"]}
- , {"type": "var", "name": "includes"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["file_check.sh", "c.flags"]}
+ , {"type": "var", "name": "includes"}
+ ]
+ }
+ , "cmd":
+ [ "sh"
+ , "./file_check.sh"
+ , {"type": "var", "name": "CC"}
+ , "c"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "val"}
]
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "cmd":
- [ "sh"
- , "./file_check.sh"
- , {"type": "var", "name": "CC"}
- , "c"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "val"}
- ]
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["cfiles.def"]
}
}
}
]
- , [ "cxxfiles.def"
- , { "type": "foldl"
+ , [ "cxxfile-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "have_cxxfile", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "cxxfiles.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "cxxfiles.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -589,41 +555,35 @@
, ["val", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "cxxfiles.def"}
- }
- , {"type": "env", "vars": ["file_check.sh", "cxx.flags"]}
- , {"type": "var", "name": "includes"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["file_check.sh", "cxx.flags"]}
+ , {"type": "var", "name": "includes"}
+ ]
+ }
+ , "cmd":
+ [ "sh"
+ , "./file_check.sh"
+ , {"type": "var", "name": "CXX"}
+ , "cxx"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "val"}
]
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "cmd":
- [ "sh"
- , "./file_check.sh"
- , {"type": "var", "name": "CXX"}
- , "cxx"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "val"}
- ]
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["cxxfiles.def"]
}
}
}
]
- , [ "ctypes.def"
- , { "type": "foldl"
+ , [ "ctype-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "have_ctype", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "ctypes.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "ctypes.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -638,41 +598,35 @@
, ["type", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "ctypes.def"}
- }
- , {"type": "env", "vars": ["type_check.sh", "c.flags"]}
- , {"type": "var", "name": "includes"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["type_check.sh", "c.flags"]}
+ , {"type": "var", "name": "includes"}
+ ]
+ }
+ , "cmd":
+ [ "sh"
+ , "./type_check.sh"
+ , {"type": "var", "name": "CC"}
+ , "c"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "type"}
]
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "cmd":
- [ "sh"
- , "./type_check.sh"
- , {"type": "var", "name": "CC"}
- , "c"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "type"}
- ]
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["ctypes.def"]
}
}
}
]
- , [ "cxxtypes.def"
- , { "type": "foldl"
+ , [ "cxxtype-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "have_cxxtype", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "cxxtypes.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "cxxtypes.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -687,41 +641,35 @@
, ["type", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "cxxtypes.def"}
- }
- , {"type": "env", "vars": ["type_check.sh", "cxx.flags"]}
- , {"type": "var", "name": "includes"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["type_check.sh", "cxx.flags"]}
+ , {"type": "var", "name": "includes"}
+ ]
+ }
+ , "cmd":
+ [ "sh"
+ , "./type_check.sh"
+ , {"type": "var", "name": "CXX"}
+ , "cxx"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "type"}
]
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "cmd":
- [ "sh"
- , "./type_check.sh"
- , {"type": "var", "name": "CXX"}
- , "cxx"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "type"}
- ]
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["cxxtypes.def"]
}
}
}
]
- , [ "csymbols.def"
- , { "type": "foldl"
+ , [ "csymbol-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "have_csymbol", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "csymbols.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "csymbols.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -738,46 +686,40 @@
, ["hdrs", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "csymbols.def"}
- }
- , {"type": "env", "vars": ["symbol_check.sh", "c.flags"]}
- , {"type": "var", "name": "includes"}
- ]
- }
- , "cmd":
- { "type": "++"
- , "$1":
- [ [ "sh"
- , "./symbol_check.sh"
- , {"type": "var", "name": "CC"}
- , "c"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "sym"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["symbol_check.sh", "c.flags"]}
+ , {"type": "var", "name": "includes"}
]
- , {"type": "var", "name": "hdrs"}
- ]
+ }
+ , "cmd":
+ { "type": "++"
+ , "$1":
+ [ [ "sh"
+ , "./symbol_check.sh"
+ , {"type": "var", "name": "CC"}
+ , "c"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "sym"}
+ ]
+ , {"type": "var", "name": "hdrs"}
+ ]
+ }
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["csymbols.def"]
}
}
}
]
- , [ "cxxsymbols.def"
- , { "type": "foldl"
+ , [ "cxxsymbol-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "have_cxxsymbol", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "cxxsymbols.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "cxxsymbols.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -794,46 +736,40 @@
, ["hdrs", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "cxxsymbols.def"}
- }
- , {"type": "env", "vars": ["symbol_check.sh", "cxx.flags"]}
- , {"type": "var", "name": "includes"}
- ]
- }
- , "cmd":
- { "type": "++"
- , "$1":
- [ [ "sh"
- , "./symbol_check.sh"
- , {"type": "var", "name": "CXX"}
- , "cxx"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "sym"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["symbol_check.sh", "cxx.flags"]}
+ , {"type": "var", "name": "includes"}
]
- , {"type": "var", "name": "hdrs"}
- ]
+ }
+ , "cmd":
+ { "type": "++"
+ , "$1":
+ [ [ "sh"
+ , "./symbol_check.sh"
+ , {"type": "var", "name": "CXX"}
+ , "cxx"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "sym"}
+ ]
+ , {"type": "var", "name": "hdrs"}
+ ]
+ }
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["cxxsymbols.def"]
}
}
}
]
- , [ "csizes.def"
- , { "type": "foldl"
+ , [ "csize-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "size_ctype", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "csizes.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "csizes.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -850,53 +786,47 @@
, ["sizes", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "csizes.def"}
- }
- , {"type": "env", "vars": ["size_check.sh", "c.flags"]}
- , {"type": "var", "name": "includes"}
- ]
- }
- , "cmd":
- { "type": "++"
- , "$1":
- [ [ "sh"
- , "./size_check.sh"
- , {"type": "var", "name": "CC"}
- , "c"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "type"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["size_check.sh", "c.flags"]}
+ , {"type": "var", "name": "includes"}
]
- , { "type": "foreach"
- , "var": "size"
- , "range": {"type": "var", "name": "sizes"}
- , "body":
- { "type": "json_encode"
- , "$1": {"type": "var", "name": "size"}
+ }
+ , "cmd":
+ { "type": "++"
+ , "$1":
+ [ [ "sh"
+ , "./size_check.sh"
+ , {"type": "var", "name": "CC"}
+ , "c"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "type"}
+ ]
+ , { "type": "foreach"
+ , "var": "size"
+ , "range": {"type": "var", "name": "sizes"}
+ , "body":
+ { "type": "json_encode"
+ , "$1": {"type": "var", "name": "size"}
+ }
}
- }
- ]
+ ]
+ }
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["csizes.def"]
}
}
}
]
- , [ "cxxsizes.def"
- , { "type": "foldl"
+ , [ "cxxsize-defs"
+ , { "type": "foreach"
, "range": {"type": "var", "name": "size_cxxtype", "default": []}
- , "start":
- { "type": "singleton_map"
- , "key": "cxxsizes.def"
- , "value": {"type": "BLOB", "data": ""}
- }
- , "accum_var": "cxxsizes.def"
, "var": "pair"
, "body":
{ "type": "let*"
@@ -913,73 +843,72 @@
, ["sizes", {"type": "CALL_EXPRESSION", "name": "last"}]
]
, "body":
- { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ { "type": "to_subdir"
- , "subdir": "in"
- , "$1": {"type": "var", "name": "cxxsizes.def"}
- }
- , {"type": "env", "vars": ["size_check.sh", "cxx.flags"]}
- , {"type": "var", "name": "includes"}
- ]
- }
- , "cmd":
- { "type": "++"
- , "$1":
- [ [ "sh"
- , "./size_check.sh"
- , {"type": "var", "name": "CXX"}
- , "cxx"
- , {"type": "var", "name": "def"}
- , {"type": "var", "name": "type"}
+ { "type": "lookup"
+ , "key": "out.def"
+ , "map":
+ { "type": "ACTION"
+ , "inputs":
+ { "type": "map_union"
+ , "$1":
+ [ {"type": "env", "vars": ["size_check.sh", "cxx.flags"]}
+ , {"type": "var", "name": "includes"}
]
- , { "type": "foreach"
- , "var": "size"
- , "range": {"type": "var", "name": "sizes"}
- , "body":
- { "type": "json_encode"
- , "$1": {"type": "var", "name": "size"}
+ }
+ , "cmd":
+ { "type": "++"
+ , "$1":
+ [ [ "sh"
+ , "./size_check.sh"
+ , {"type": "var", "name": "CXX"}
+ , "cxx"
+ , {"type": "var", "name": "def"}
+ , {"type": "var", "name": "type"}
+ ]
+ , { "type": "foreach"
+ , "var": "size"
+ , "range": {"type": "var", "name": "sizes"}
+ , "body":
+ { "type": "json_encode"
+ , "$1": {"type": "var", "name": "size"}
+ }
}
- }
- ]
+ ]
+ }
+ , "env": {"type": "var", "name": "ENV"}
+ , "outs": ["out.def"]
}
- , "env": {"type": "var", "name": "ENV"}
- , "outs": ["cxxsizes.def"]
}
}
}
]
- , [ "end.def"
- , { "type": "singleton_map"
- , "key": "end.def"
- , "value": {"type": "BLOB", "data": "\n#endif\n"}
+ , ["end.def", {"type": "BLOB", "data": "\n#endif\n"}]
+ , [ "definitions"
+ , { "type": "enumerate"
+ , "$1":
+ { "type": "++"
+ , "$1":
+ [ [ {"type": "var", "name": "guard.def"}
+ , {"type": "var", "name": "int1.def"}
+ , {"type": "var", "name": "int01.def"}
+ ]
+ , {"type": "var", "name": "cfile-defs"}
+ , {"type": "var", "name": "cxxfile-defs"}
+ , {"type": "var", "name": "ctype-defs"}
+ , {"type": "var", "name": "cxxtype-defs"}
+ , {"type": "var", "name": "csymbol-defs"}
+ , {"type": "var", "name": "cxxsymbol-defs"}
+ , {"type": "var", "name": "csize-defs"}
+ , {"type": "var", "name": "cxxsize-defs"}
+ , [ {"type": "var", "name": "plain.def"}
+ , {"type": "var", "name": "end.def"}
+ ]
+ ]
+ }
}
]
- , [ "outname"
- , {"type": "join", "$1": ["out/", {"type": "var", "name": "name"}]}
- ]
, [ "outfile"
, { "type": "ACTION"
- , "inputs":
- { "type": "map_union"
- , "$1":
- [ {"type": "var", "name": "guard.def"}
- , {"type": "var", "name": "plain.def"}
- , {"type": "var", "name": "int1.def"}
- , {"type": "var", "name": "int01.def"}
- , {"type": "var", "name": "cfiles.def"}
- , {"type": "var", "name": "cxxfiles.def"}
- , {"type": "var", "name": "ctypes.def"}
- , {"type": "var", "name": "cxxtypes.def"}
- , {"type": "var", "name": "csymbols.def"}
- , {"type": "var", "name": "cxxsymbols.def"}
- , {"type": "var", "name": "csizes.def"}
- , {"type": "var", "name": "cxxsizes.def"}
- , {"type": "var", "name": "end.def"}
- ]
- }
+ , "inputs": {"type": "var", "name": "definitions"}
, "cmd":
[ "sh"
, "-c"
@@ -987,35 +916,32 @@
, "separator": " "
, "$1":
[ "cat"
- , "guard.def"
- , "int1.def"
- , "int01.def"
- , "cfiles.def"
- , "cxxfiles.def"
- , "ctypes.def"
- , "cxxtypes.def"
- , "csymbols.def"
- , "cxxsymbols.def"
- , "csizes.def"
- , "cxxsizes.def"
- , "plain.def"
- , "end.def"
- , ">"
, { "type": "join_cmd"
- , "$1": [{"type": "var", "name": "outname"}]
+ , "$1":
+ { "type": "keys"
+ , "$1": {"type": "var", "name": "definitions"}
+ }
}
+ , "> out"
]
}
]
- , "outs": [{"type": "var", "name": "outname"}]
+ , "outs": ["out"]
, "env": {"type": "var", "name": "ENV"}
}
]
, [ "outfile"
, { "type": "to_subdir"
, "subdir": {"type": "var", "name": "stage"}
- , "flat": true
- , "$1": {"type": "var", "name": "outfile"}
+ , "$1":
+ { "type": "singleton_map"
+ , "key": {"type": "var", "name": "name"}
+ , "value":
+ { "type": "lookup"
+ , "key": "out"
+ , "map": {"type": "var", "name": "outfile"}
+ }
+ }
}
]
]