diff options
Diffstat (limited to 'update_ev_wrap')
-rwxr-xr-x | update_ev_wrap | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/update_ev_wrap b/update_ev_wrap index 6e43069..adb083a 100755 --- a/update_ev_wrap +++ b/update_ev_wrap @@ -1,10 +1,19 @@ #!/bin/sh ( - echo '#define VAR(name,decl) define name ((loop)->name)' + echo '#define VAR(name,decl) name' echo '#define EV_GENWRAP 1' cat ev_vars.h -) | cc -E -o - - | sed -n -e 's/define/#define/p' | ( - echo "/* DO NOT EDIT, automatically generated by update_ev_wrap */" - cat -) > ev_wrap.h +) | cc -E -o - - | perl -ne ' + while (<>) { + push @syms, $1 if /(^\w+)/; + } + print "/* DO NOT EDIT, automatically generated by update_ev_wrap */\n", + "#ifndef EV_WRAP_H\n", + "#define EV_WRAP_H\n", + (map "#define $_ ((loop)->$_)\n", @syms), + "#else\n", + "#undef EV_WRAP_H\n", + (map "#undef $_\n", @syms), + "#endif\n"; +' >ev_wrap.h |