http://lethean.pe.kr/2010/02/04/using-ccache-in-ubuntu/
반복적인 build를 더 빠르게하기 위한 방법으로 ccache를 설치해 사용해보자.
2011년 11월 16일 수요일
2011년 10월 23일 일요일
EFL application의 Frames Per Second(FPS)로 성능 측정하기
EFL application은 ecore에서 제공하는 main loop을 기반으로 동작하며, ecore_evas는 evas canvas engine이 하위 window system 또는 frame buffer에 출력하는 기능을 제공한다.
EFL application의 rendering 성능을 측정하기 가장 적합한 위치는 바로 ecore_evas 단이 되며, ecore_evas에서는 자체적으로 다음 환경 변수의 설정에 따라 FPS를 측정해 console에 출력하는 기능을 제공한다.
$ export ECORE_EVAS_FPS_DEBUG=1
위와 같이 환경변수를 설정한 후 EFL application을 실행해 보자
$ elementary_test
다음은 elementary_test의 animation 항목을 선택한 화면이다.
console에서는 다음과 같이 성능을 출력하게 된다.
EFL application의 rendering 성능을 측정하기 가장 적합한 위치는 바로 ecore_evas 단이 되며, ecore_evas에서는 자체적으로 다음 환경 변수의 설정에 따라 FPS를 측정해 console에 출력하는 기능을 제공한다.
$ export ECORE_EVAS_FPS_DEBUG=1
위와 같이 환경변수를 설정한 후 EFL application을 실행해 보자
$ elementary_test
다음은 elementary_test의 animation 항목을 선택한 화면이다.
emotion_test 실행시 gstreamer pipeline 그래프로 보기
Gstreamer가 실행되었을때 사용된 pipeline을 그래프로 보기 위한 방법에 대해 소개한다.
먼저, 다음 패키지를 설치한다.
먼저, 다음 패키지를 설치한다.
- graphviz: dot file을 png또는 svg 형식으로 변경하는데 필요
- inkscape: svg 형식의 파일로 graph를 보는데 필요
- gimp: png등의 이미지 파일을 보는데 필요 (file browser에서 double click으로 gimp없이도 볼 수 있음). 또는 shotwell 프로그램을 사용해도 됨.
- 위 3개 패키지를 다음 명령으로 설치한다.
$ sudo apt-get install graphviz inkscape gimp
- gstreamer의 pipeline을 dot 형식으로 저장하기 위해, 파일들이 저장될 directory를 환경 변수를 이용해 설정한다. 해당 디렉토리는 emotion_test 실행전에 먼저 생성되어 있어야 한다.
$ export GST_DEBUG_DUMP_DOT_DIR=~/tmp/
- emotion_test를 실행해 동영상을 play한다. 이때, emotion 또한 gstreamer의 pipeline을 dot형식으로 저장하기 위해 추가적인 환경변수 설정이 필요하다.
$ export EMOTION_GSTREAMER_DOT=1
$ emotion_test CarsCD1.avi
- dot 형식 파일을 png 또는 svg 형식으로 변환한다.
$ cd ~/tmp
$ dot 0.00.00.155218834-1.dot -Tpng -o pipeline.png
$ dot 0.00.00.155218834-1.dot -Tsvg -o pipeline.svg
- png 형식 또는 svg 형식으로 된 pipeline graph를 열어본다.
$ shotwell pipeline.png
$ inkscape pipeline.svg
- png 파일 결과 예

2011년 10월 21일 금요일
Ubuntu에 EFL 받아 build 및 실행 하기
1. EFL community에서 소스코드 받기전 필요한 packages들을 설치하는 script
$ cat pkgs-req.sh
2. 스크립트를 수행해 위 패키지들을 설치한다.
$./pkgs-req.sh
3. svn.enlightenment.org하에 trunk 디렉토리 이하 코드를 다운로드 받는 스크립트
$ cat get-source-from-svn.sh
#!/bin/sh
svn co http://svn.enlightenment.org/svn/e/trunk
-----------------------------------
방화벽으로 인해 proxy server를 사용하고 있는경우 다음과 같이 작성하고, ~/.subversion/servers 파일을 수정한다.
#!/bin/sh
svn co https://svn.enlightenment.org/svn/e/trunk
$ vi ~/.subversion/servers
:
:
[global]
http-proxy-host = proxy server address
http-proxy-port = proxy port number
:
:
-----------------------------------
4. 스크립트를 수행해 소스 코드를 받는다. (시간이 많이 걸림)
$ ./get-source-from-svn.sh
5. 필요한 패키지들을 build & install 하는 스크립트
$ cat build_e.sh
#!/bin/sh
sudo ls
set -e
PREFIX="/usr/local"
SVN="http://svn.enlightenment.org/svn/e/trunk"
OPT="--prefix=$PREFIX --enable-gl-x11 --enable-ecore-evas-opengl-x11 --enable-opengl-x11"
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
PROJECTS="eina eet evas ecore expedite embryo edje e_dbus efreet eeze ethumb eio emotion elementary excessive espionnage e terminology PROTO/elev8"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export PATH="$PREFIX/bin:$PATH"
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
for PROJ in $PROJECTS; do
cd trunk/$PROJ
make clean distclean || true
./autogen.sh $OPT && make -j12 && sudo make install -j12
cd ../..
sudo ldconfig
done
6. 위 build & install script 를 실행한다. (시간이 많이 걸림)
$ ./build_e.sh
7.전체 코드를 받은 이후 부터는 update build를 한번에 수행하는 스크립트로...
$ cat update-build.sh
$ cat pkgs-req.sh
#!/bin/bash
sudo apt-get -y install subversion autoconf automake autopoint gettext build-essential pkg-config libtool autotools-dev zlib1g-dev libfreetype6-dev libx11-dev libpng12-dev libxext-dev libxrender-dev libxinerama-dev libxcursor-dev libxrandr-dev libxdamage-dev libxcomposite-dev libxss-dev libssl-dev libcurl4-openssl-dev libdbus-1-dev libpam0g-dev libxml2-dev libxslt1-dev libltdl-dev libtag1-dev libtagc0-dev libxine-dev libsqlite3-dev fontconfig libfontconfig1-dev liblua5.1-0-dev libxfixes-dev libxp-dev libxinerama-dev libxkbfile-dev libtiff4-dev librsvg2-dev libgif-dev libxcb-shape0-dev libv8-dev mesa-common-dev libudev-dev libspectre-dev libraw-dev libpoppler-dev libgnutls-dev libasound2-dev libc-ares-dev libdrm-dev vim doxygen libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev gstreamer-tools libgles1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev mesa-utils libgl1-mesa-dev libexif-dev ccache libdbus-glib-1-dev gstreamer0.10-plugins-bad gstreamer0.10-plugins-cutter gstreamer0.10-plugins-ugly gstreamer0.10-plugins-good gstreamer0.10-ffmpeg
sudo apt-get -y install subversion autoconf automake autopoint gettext build-essential pkg-config libtool autotools-dev zlib1g-dev libfreetype6-dev libx11-dev libpng12-dev libxext-dev libxrender-dev libxinerama-dev libxcursor-dev libxrandr-dev libxdamage-dev libxcomposite-dev libxss-dev libssl-dev libcurl4-openssl-dev libdbus-1-dev libpam0g-dev libxml2-dev libxslt1-dev libltdl-dev libtag1-dev libtagc0-dev libxine-dev libsqlite3-dev fontconfig libfontconfig1-dev liblua5.1-0-dev libxfixes-dev libxp-dev libxinerama-dev libxkbfile-dev libtiff4-dev librsvg2-dev libgif-dev libxcb-shape0-dev libv8-dev mesa-common-dev libudev-dev libspectre-dev libraw-dev libpoppler-dev libgnutls-dev libasound2-dev libc-ares-dev libdrm-dev vim doxygen libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev gstreamer-tools libgles1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev mesa-utils libgl1-mesa-dev libexif-dev ccache libdbus-glib-1-dev gstreamer0.10-plugins-bad gstreamer0.10-plugins-cutter gstreamer0.10-plugins-ugly gstreamer0.10-plugins-good gstreamer0.10-ffmpeg
2. 스크립트를 수행해 위 패키지들을 설치한다.
$./pkgs-req.sh
3. svn.enlightenment.org하에 trunk 디렉토리 이하 코드를 다운로드 받는 스크립트
$ cat get-source-from-svn.sh
#!/bin/sh
svn co http://svn.enlightenment.org/svn/e/trunk
-----------------------------------
방화벽으로 인해 proxy server를 사용하고 있는경우 다음과 같이 작성하고, ~/.subversion/servers 파일을 수정한다.
#!/bin/sh
svn co https://svn.enlightenment.org/svn/e/trunk
$ vi ~/.subversion/servers
:
:
[global]
http-proxy-host = proxy server address
http-proxy-port = proxy port number
:
:
-----------------------------------
4. 스크립트를 수행해 소스 코드를 받는다. (시간이 많이 걸림)
$ ./get-source-from-svn.sh
5. 필요한 패키지들을 build & install 하는 스크립트
$ cat build_e.sh
#!/bin/sh
sudo ls
set -e
PREFIX="/usr/local"
SVN="http://svn.enlightenment.org/svn/e/trunk"
OPT="--prefix=$PREFIX --enable-gl-x11 --enable-ecore-evas-opengl-x11 --enable-opengl-x11"
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
PROJECTS="eina eet evas ecore expedite embryo edje e_dbus efreet eeze ethumb eio emotion elementary excessive espionnage e terminology PROTO/elev8"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export PATH="$PREFIX/bin:$PATH"
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
for PROJ in $PROJECTS; do
cd trunk/$PROJ
make clean distclean || true
./autogen.sh $OPT && make -j12 && sudo make install -j12
cd ../..
sudo ldconfig
done
6. 위 build & install script 를 실행한다. (시간이 많이 걸림)
$ ./build_e.sh
7.전체 코드를 받은 이후 부터는 update build를 한번에 수행하는 스크립트로...
$ cat update-build.sh
#!/bin/bash
sudo ls &&
pushd trunk &&
svn up --accept theirs-full &&
popd &&
./build_e.sh
sudo ls &&
pushd trunk &&
svn up --accept theirs-full &&
popd &&
./build_e.sh
8. 설치된 예제 실행해 보기
2011년 10월 4일 화요일
eclipse에서 elementary_test project import하기
선행 작업:
1. Eclipse C/C++용으로 설치.
2. EFL (elementary와 이를 위한 library)이 시스템에 build되어 있어야 함.
수행할 일:
1. eclipse 실행
# ./eclipse &
2. File - Import... 메뉴 선택
3. Import 대화상자에서 C/C++ - [Existing code as Makefile Project] 선택
4. Import Existing Code 대화상자에서
Project Name: elementary_test
Existing Code Location: 소스코드 디렉토리 ./trunk/elementary/src/bin
Toolchain for Indexer Settings: GNU Autotools Toolchain 선택
5. Import 완료
6. 빌드하고 실행.
1. Eclipse C/C++용으로 설치.
2. EFL (elementary와 이를 위한 library)이 시스템에 build되어 있어야 함.
수행할 일:
1. eclipse 실행
# ./eclipse &
2. File - Import... 메뉴 선택
3. Import 대화상자에서 C/C++ - [Existing code as Makefile Project] 선택
4. Import Existing Code 대화상자에서
Project Name: elementary_test
Existing Code Location: 소스코드 디렉토리 ./trunk/elementary/src/bin
Toolchain for Indexer Settings: GNU Autotools Toolchain 선택
5. Import 완료
6. 빌드하고 실행.
피드 구독하기:
덧글 (Atom)



