Hello!
I have tried to build PowerTOP for ARM with a cross-compiler. But PowerTOP
uses internal csstoh utility that converts powertop.css to powertoh.h
for inclusion in *.cpp source files.
When you use the cross-compiler (without making complicated rules
in the Makefile) this utility will be compiled for ARM platform too.
And you cannot run it on x86 build host.
To solve this issue (and because of simplicity of the utility)
I have rewritten it in a shell script.
--8<--------------------------------------------------------------------------
diff -purN powertop/Android.mk powertop-cross/Android.mk
--- powertop/Android.mk 2012-07-05 11:54:25.052141513 +0400
+++ powertop-cross/Android.mk 2012-07-05 11:57:09.328145984 +0400
@@ -2,12 +2,11 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
-CSSTOH_SOURCE := $(LOCAL_PATH)/csstoh.c
POWERTOP_CSS_SOURCE := $(LOCAL_PATH)/powertop.css
-GEN_CSSTOH := $(LOCAL_PATH)/csstoh
+GEN_CSSTOH := $(LOCAL_PATH)/csstoh.sh
GEN_CSS_H := $(LOCAL_PATH)/css.h
$(GEN_CSS_H):
- $(CC) -o $(GEN_CSSTOH) $(CSSTOH_SOURCE)
+ chmod +x ./$(GEN_CSSTOH)
./$(GEN_CSSTOH) $(POWERTOP_CSS_SOURCE) $@
LOCAL_GENERATED_SOURCES += $(GEN_CSS_H)
diff -purN powertop/.gitignore powertop-cross/.gitignore
--- powertop/.gitignore 2012-07-05 11:54:25.032141514 +0400
+++ powertop-cross/.gitignore 2012-07-05 11:55:49.028143801 +0400
@@ -39,7 +39,6 @@ po/*.gmo
po/stamp-po
src/powertop
src/css.h
-src/csstoh
src/Makefile.in
src/.deps/
src/Makefile
diff -purN powertop/src/csstoh.sh powertop-cross/src/csstoh.sh
--- powertop/src/csstoh.sh 1970-01-01 03:00:00.000000000 +0300
+++ powertop-cross/src/csstoh.sh 2012-07-05 11:50:22.000000000 +0400
@@ -0,0 +1,45 @@
+#!/bin/bash
+#
+# This program file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program in a file named COPYING; if not, write to the
+# Free Software Foundation, Inc,
+# 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301 USA
+# or just google for it.
+#
+# Written by Igor Zhbanov<i.zhbanov(a)samsung.com>
+
+
+if [ $# -lt 2 ]; then
+ echo "Usage: csstoh.sh cssfile header.h"
+ exit 1
+fi
+
+if [ ! -r $1 ]; then
+ echo "Can't find file $1"
+ exit 1
+fi
+
+if ! echo -n>$2; then
+ echo "Can't open file $2 for writing."
+ exit 1
+fi
+
+echo "#ifndef __INCLUDE_GUARD_CCS_H">> $2
+echo "#define __INCLUDE_GUARD_CCS_H">> $2
+echo>> $2
+echo "const char css[] = ">> $2
+
+sed -r 's/^(.*)$/\t\"\1\\n\"/' $1>> $2
+
+echo ";">> $2
+echo "#endif">> $2
diff -purN powertop/src/Makefile.am powertop-cross/src/Makefile.am
--- powertop/src/Makefile.am 2012-07-05 11:54:25.040141514 +0400
+++ powertop-cross/src/Makefile.am 2012-07-05 11:56:42.700145262 +0400
@@ -1,9 +1,6 @@
AUTOMAKE_OPTIONS = subdir-objects
ACLOCAL_AMFLAGS = -I ../m4
-noinst_PROGRAMS = csstoh
-csstoh_SOURCES = csstoh.c
-
sbin_PROGRAMS = powertop
nodist_powertop_SOURCES = css.h
@@ -44,6 +41,7 @@ AM_LDFLAGS = $(LIBS) $(NCURSES_LIBS) $(P
BUILT_SOURCES = css.h
CLEANFILES = css.h
-css.h: csstoh powertop.css
- ./csstoh powertop.css css.h
+css.h: powertop.css
+ chmod +x ./csstoh.sh
+ ./csstoh.sh powertop.css css.h
--8<--------------------------------------------------------------------------
Thank you.
--
Best regards,
Igor Zhbanov,
Expert Software Engineer,
phone: +7 (495) 797 25 00 ext 3806
e-mail: i.zhbanov(a)samsung.com
ASWG, Moscow R&D center, Samsung Electronics
12 Dvintsev street, building 1
127018, Moscow, Russian Federation