diff options
Diffstat (limited to 'cpp/makefile')
-rw-r--r-- | cpp/makefile | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cpp/makefile b/cpp/makefile index 75ed8424..98982f08 100644 --- a/cpp/makefile +++ b/cpp/makefile @@ -17,9 +17,7 @@ tangle/tangle: termbox/libtermbox.a: cd termbox && make -# auto-generated files; by convention they end in '_list'. .PHONY: autogenerated_lists test valgrind clena -autogenerated_lists: mu.cc function_list test_list test: mu ./mu test @@ -27,11 +25,21 @@ test: mu valgrind: mu valgrind --leak-check=yes ./mu test +# auto-generated files; by convention they end in '_list'. +autogenerated_lists: mu.cc function_list test_list + +# autogenerated list of function declarations, so I can define them in any order function_list: mu.cc - # declarations for lines starting with non-space and ending with ') {', except methods + # functions start out unindented, have all args on the same line, and end in ') {' + # ignore methods @grep -h "^[^[:space:]#].*) {" mu.cc |grep -v ":.*(" |perl -pwe 's/ {.*/;/' > function_list + # occasionally we need to modify a declaration in a later layer without messing with ugly unbalanced brackets + # assume such functions move the '{' to column 0 of the very next line + @grep -v "^#line" mu.cc |grep -B1 "^{" |grep -v "^{" |perl -pwe 's/$$/;/' >> function_list + # test functions @grep -h "^\s*TEST(" mu.cc |perl -pwe 's/^\s*TEST\((.*)\)$$/void test_$$1();/' >> function_list +# autogenerated list of tests to run test_list: mu.cc @grep -h "^\s*void test_" mu.cc |perl -pwe 's/^\s*void (.*)\(\) {.*/$$1,/' > test_list @grep -h "^\s*TEST(" mu.cc |perl -pwe 's/^\s*TEST\((.*)\)$$/test_$$1,/' >> test_list |