Re: [Powertop] csstoh shell-script for cross-compiling PowerTOP
Igor Zhbanov <i.zhbanov at samsung.com> Wed, 11 Jul 2012 11:15:58 +0400
| Newsgroups | dev.linux.lists.powertop |
|---|---|
| Message-ID | <[email protected]> |
Here is the new version: --8<--Cut-here---------------------------------------------------------------- diff -purN powertop/Android.mk powertop-csstoh/Android.mk --- powertop/Android.mk 2012-07-11 11:09:18.388958856 +0400 +++ powertop-csstoh/Android.mk 2012-07-11 11:09:56.884957818 +0400 @@ -2,13 +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) - ./$(GEN_CSSTOH) $(POWERTOP_CSS_SOURCE) $@ + $(SHELL) ./$(GEN_CSSTOH) $(POWERTOP_CSS_SOURCE) $@ LOCAL_GENERATED_SOURCES += $(GEN_CSS_H) diff -purN powertop/.gitignore powertop-csstoh/.gitignore --- powertop/.gitignore 2012-07-11 11:09:18.372958855 +0400 +++ powertop-csstoh/.gitignore 2012-07-11 11:09:34.180958433 +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-csstoh/src/csstoh.sh --- powertop/src/csstoh.sh 1970-01-01 03:00:00.000000000 +0300 +++ powertop-csstoh/src/csstoh.sh 2012-07-11 11:10:54.716956259 +0400 @@ -0,0 +1,44 @@ +#!/bin/sh +# +# 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-csstoh/src/Makefile.am --- powertop/src/Makefile.am 2012-07-11 11:09:18.376958857 +0400 +++ powertop-csstoh/src/Makefile.am 2012-07-11 11:10:13.888957361 +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,6 @@ 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 + $(SHELL) ./csstoh.sh powertop.css css.h --8<-------------------------------------------------------------------------- Magnus Fromreide wrote: > On Wed, 2012-07-11 at 10:17 +0400, Igor Zhbanov wrote: >> 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. > Why /bin/bash? > > The script doesn't depend on any bashisms so /bin/sh should be enough, > right? > > Why all the games with chmod? > $(SHELL) csstoh.sh powertop.css css.h > should also run the script correctly, shouldn't it? > > /MF > > -- 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
02-powertop-cross-csstoh.diff
(text/x-diff, 3 KB)
diff -purN powertop/Android.mk powertop-csstoh/Android.mk --- powertop/Android.mk 2012-07-11 11:09:18.388958856 +0400 +++ powertop-csstoh/Android.mk 2012-07-11 11:09:56.884957818 +0400 @@ -2,13 +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) - ./$(GEN_CSSTOH) $(POWERTOP_CSS_SOURCE) $@ + $(SHELL) ./$(GEN_CSSTOH) $(POWERTOP_CSS_SOURCE) $@ LOCAL_GENERATED_SOURCES += $(GEN_CSS_H) diff -purN powertop/.gitignore powertop-csstoh/.gitignore --- powertop/.gitignore 2012-07-11 11:09:18.372958855 +0400 +++ powertop-csstoh/.gitignore 2012-07-11 11:09:34.180958433 +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-csstoh/src/csstoh.sh --- powertop/src/csstoh.sh 1970-01-01 03:00:00.000000000 +0300 +++ powertop-csstoh/src/csstoh.sh 2012-07-11 11:10:54.716956259 +0400 @@ -0,0 +1,44 @@ +#!/bin/sh +# +# 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 <[email protected]> + +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-csstoh/src/Makefile.am --- powertop/src/Makefile.am 2012-07-11 11:09:18.376958857 +0400 +++ powertop-csstoh/src/Makefile.am 2012-07-11 11:10:13.888957361 +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,6 @@ 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 + $(SHELL) ./csstoh.sh powertop.css css.h