summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2009-06-24 21:46:17 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2009-06-24 21:46:17 +0000
commitaf980d8bcbfa37f3391f068f851f68b390769f71 (patch)
tree73fdbafa91b6c68bdbc7754b1deb9d1265ea570e
parent7a8e1e8fc00b4255c28696962dc240a70bc6e082 (diff)
downloadrockbox-af980d8bcbfa37f3391f068f851f68b390769f71.tar.gz
rockbox-af980d8bcbfa37f3391f068f851f68b390769f71.zip
Lua: expose BUTTON_* defines
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21500 a1c6a512-1295-4272-9138-f99709370657
-rwxr-xr-xapps/plugins/lua/button_helper.pl64
-rw-r--r--apps/plugins/lua/lua.make8
2 files changed, 70 insertions, 2 deletions
diff --git a/apps/plugins/lua/button_helper.pl b/apps/plugins/lua/button_helper.pl
new file mode 100755
index 0000000000..43307a0e52
--- /dev/null
+++ b/apps/plugins/lua/button_helper.pl
@@ -0,0 +1,64 @@
1#!/usr/bin/env perl
2############################################################################
3# __________ __ ___.
4# Open \______ \ ____ ____ | | _\_ |__ _______ ___
5# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
6# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
7# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
8# \/ \/ \/ \/ \/
9# $Id$
10#
11# Copyright (C) 2009 by Maurus Cuelenaere
12#
13# All files in this archive are subject to the GNU General Public License.
14# See the file COPYING in the source tree root for full license agreement.
15#
16# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
17# KIND, either express or implied.
18#
19############################################################################
20
21$svnrev = '$Revision$';
22
23print <<EOF
24#include <stdio.h>
25#include <stdbool.h>
26#include "button-target.h"
27
28struct button
29{
30 char* name;
31 unsigned long value;
32};
33
34static struct button buttons[] = {
35EOF
36;
37
38while(my $line = <STDIN>)
39{
40 chomp($line);
41 if($line =~ /^#define (BUTTON_[^\s]+) (.+)$/)
42 {
43 printf "{\"%s\", %s},\n", $1, $2;
44 }
45}
46
47print <<EOF
48};
49
50int main(void)
51{
52 unsigned int i;
53 printf("-- Don't change this file!\\n");
54 printf("-- It is automatically generated of button-target.h \%s\\n", "$svnrev");
55 printf("rb.buttons = {\\n");
56 for(i=0; i<sizeof(buttons)/sizeof(struct button); i++)
57 printf("\\t\%s = \%ld,\\n", buttons[i].name, buttons[i].value);
58 printf("}\\n");
59
60 return 0;
61}
62
63EOF
64;
diff --git a/apps/plugins/lua/lua.make b/apps/plugins/lua/lua.make
index 596e32045f..1232ddf043 100644
--- a/apps/plugins/lua/lua.make
+++ b/apps/plugins/lua/lua.make
@@ -30,10 +30,14 @@ else
30 ROCKS += $(LUA_BUILDDIR)/lua.rock 30 ROCKS += $(LUA_BUILDDIR)/lua.rock
31endif 31endif
32 32
33$(LUA_BUILDDIR)/lua.rock: $(LUA_OBJ) $(LUA_BUILDDIR)/actions.lua 33$(LUA_BUILDDIR)/lua.rock: $(LUA_OBJ) $(LUA_BUILDDIR)/actions.lua $(LUA_BUILDDIR)/buttons.lua
34 34
35$(LUA_BUILDDIR)/actions.lua: $(LUA_OBJ) 35$(LUA_BUILDDIR)/actions.lua: $(LUA_OBJ)
36 $(call PRINTS,GEN $(@F))$(CC) $(PLUGINFLAGS) -E $(APPSDIR)/action.h | $(LUA_SRCDIR)/action_helper.pl > $(LUA_BUILDDIR)/actions.lua 36 $(call PRINTS,GEN $(@F))$(CC) $(INCLUDES) -E $(APPSDIR)/action.h | $(LUA_SRCDIR)/action_helper.pl > $(LUA_BUILDDIR)/actions.lua
37
38$(LUA_BUILDDIR)/buttons.lua: $(LUA_OBJ)
39 $(SILENT)$(CC) $(INCLUDES) -dM -E -include button-target.h - < /dev/null | $(LUA_SRCDIR)/button_helper.pl | $(HOSTCC) -fno-builtin $(INCLUDES) -x c -o $(LUA_BUILDDIR)/button_helper -
40 $(call PRINTS,GEN $(@F))$(LUA_BUILDDIR)/button_helper > $(LUA_BUILDDIR)/buttons.lua
37 41
38$(LUA_BUILDDIR)/lua.refmap: $(LUA_OBJ) 42$(LUA_BUILDDIR)/lua.refmap: $(LUA_OBJ)
39 43