
안녕하세요? 천재태지 서주영입니다.
최신 EFL 및 Enlightenment를 빌드/설치하는 방법을 설명드립니다.
일단 빌드/설치에 앞서, 최신 소스코드는 개발 단계에 있기 때문에 불안정할 수 있다는 것을 염두에 두시기 바랍니다.
특히 Enlightenment의 경우는 2012년 12월 21일 E17 정식 버전이 배포되고 2013년 1월 31일에 E17.1 버그 수정 버전이 배포된 이후에 활발하게 개발이 진행되어 엄청나게 많은 코드가 변경되었기 때문에 불안정할 수 있습니다. 현재 개발 버전은 E18입니다.
만약 안정적인 버전을 사용하고 싶으시면 Enlightenment 공식 웹사이트[15]에서 공식 배포 버전을 다운로드 받으시기 바랍니다.
이미 여러 차례 말씀드렸던 것처럼 최근(2013년 2월) EFL 소스코드 저장소가 SVN에서 GIT으로 이전되었습니다.
이에 따라 디렉터리 구조가 변경되었고, 빌드하는 방법도 달라졌습니다.
[EFL] EFL 소스코드 저장소 SVN에서 GIT으로 이전 시작 (efl 디렉터리 작업) [12]
[EFL] EFL 소스코드 저장소 SVN에서 GIT으로 이전 2 (elementary, enlightenment 디렉터리 작업) [13]
[EFL] EFL 최신 소스코드 다운로드 받기 [14]
EFL 및 Enlightenment를 빌드 및 설치하는 방법에 대한 설명은 우분투 12.04 및 우분투 12.10 이상 버전을 기준으로 합니다.
12.04 이전 버전은 이미 공식적인 지원이 끝났기 때문에 저도 설명하지 않겠습니다.
EFL을 새로 설치하기에 앞서 우선 이전에 설치해둔 EFL 라이브러리가 있으면 충돌이 나지 않도록 미리 삭제합니다.
그 후 아래 과정을 순서대로 참고해주세요.
EFL 소스코드 빌드에 앞서 EFL 소스코드를 다운받습니다.
"[EFL] EFL 최신 소스코드 다운로드 받기 [12]" 포스팅을 참고해서 최신 EFL 소스코드를 다운로드 받으세요.
2. 필요한 패키지 설치
빌드 스크립트를 실행하기 전에, 빌드 및 실행에 필요한 패키지들을 설치합니다.
아래 패키지는 EFL을 빌드하거나 실행하는데 필요한 패키지입니다.
저는 하나하나 삽질을 통해서 필요한 패키지를 찾았습니다만 앞으로는 그럴 필요 없이, 아래 패키지를 미리 설치해주세요.
기존에는 선택적으로 설치를 해도 되는 패키지들이 최근 EFL 변경 사항에 따라서 필수적으로 설치해야 되도록 변경되었습니다.
이에 따라 아래 패키지를 꼭 설치해주시기 바랍니다.
단, autogen.sh을 실행할 때 옵션을 주면 일부 패키지는 필요가 없을 수도 있습니다.
예: $ ./autogen.sh --disable-physics 라고 옵션을 주면 libbullet-dev 패키지는 필요가 없습니다.
(우분투 14.04)
~/trunk $ sudo apt-get install build-essential automake libtool ccache zlib1g-dev libfreetype6-dev libdbus-1-dev liblua5.1-0-dev g++ libxext-dev libxrender-dev libpng12-dev libxrandr-dev libfontconfig1-dev libxcb-shape0-dev libfribidi-dev libcurl4-openssl-dev libxcb-keysyms1-dev libjpeg-dev gettext autopoint libgif-dev libtiff5-dev libxp-dev libxtst-dev libgl1-mesa-dev libxinerama-dev libxdamage-dev libxcursor-dev libglib2.0-dev libxcomposite-dev libxss-dev libpulse-dev libsndfile-dev libudev-dev libblkid-dev libmount-dev libgstreamer1.0-dev check libgstreamer-plugins-base1.0-dev libbullet-dev libvlc-dev libluajit-5.1-dev
~/trunk $ sudo apt-get install build-essential automake libtool ccache zlib1g-dev libfreetype6-dev libdbus-1-dev liblua5.1-0-dev g++ libxext-dev libxrender-dev libpng12-dev libxrandr-dev libfontconfig1-dev libxcb-shape0-dev libfribidi-dev libcurl4-openssl-dev libxcb-keysyms1-dev libjpeg-dev gettext autopoint libgif-dev libtiff5-dev libxp-dev libxtst-dev libgl1-mesa-dev libxinerama-dev libxdamage-dev libxcursor-dev libglib2.0-dev libxcomposite-dev libxss-dev libpulse-dev libsndfile-dev libudev-dev libblkid-dev libmount-dev libgstreamer0.10-dev check libgstreamer-plugins-base0.10-dev libbullet-dev libvlc-dev libluajit-5.1-dev
~/trunk $ sudo apt-get install build-essential automake libtool ccache zlib1g-dev libfreetype6-dev libdbus-1-dev liblua5.1-0-dev g++ libxext-dev libxrender-dev libpng12-dev libxrandr-dev libfontconfig1-dev libxcb-shape0-dev libfribidi-dev libcurl4-openssl-dev libxcb-keysyms1-dev libjpeg-dev gettext autopoint libgif-dev libtiff4-dev libxp-dev libxtst-dev libgl1-mesa-dev libxinerama-dev libxdamage-dev libxcursor-dev libglib2.0-dev libxcomposite-dev libxss-dev libpulse-dev libsndfile-dev libudev-dev libblkid-dev libmount-dev libgstreamer0.10-dev check libgstreamer-plugins-base0.10-dev libvlc-dev libluajit-5.1-dev
3. 빌드 스크립트
기본적인 EFL 및 Enlightenment를 설치, 실행하기 위해서는 efl 및 enlightenment 라는 디렉터리만 빌드하면 됩니다.
단, 다양한 이미지, 동영상을 인식하는데 사용되는 evas_generic_loaders, emotion_generic_players 및 위젯 라이브러리인 elementary도 같이 설치하면 좋기 때문에 이 5가지 모두를 빌드/설치하겠습니다.
빌드/설치에 사용되는 스크립트는 "[EFL] EFL 최신 소스코드 다운로드 받기 [12]" 포스팅에서 사용했던 efl_script.sh를 그대로 사용하겠습니다.
만약 이 스크립트를 다운로드 받지 않으신 분은 여기를 마우스 오른쪽 클릭하여 다른 이름으로 저장[16]하여 다운로드해주세요.
스크립트를 다운로드 받으면 아래와 같이 실행 권한을 주세요.
$ chmod +x efl_script.sh
위 스크립트는 앞서 말씀드린 것 처럼 efl, elementary, enlightenment, evas_generic_loaders, emotion_generic_players 라이브러리만 설치하는 스크립트입니다.
이 스크립트에서는 GIT에 있는 다양한 라이브러리/프로그램을 빌드/설치하고 있으며 추후에는 SVN에 있는 코드도 빌드/설치하도록 수정할 예정입니다.
EFL에 아주 관심있으신 분이 아니라면 굳이 제가 사용하는 스크립트를 사용하지 않으셔도 됩니다.
4. EFL 패키지 빌드 및 설치
다음과 같이 efl_script.sh 스크립트를 실행시켜주면 EFL 소스코드 빌드 및 설치가 진행됩니다.
참고로 sudo로 명령어를 실행하지 마시기 바랍니다. 대신 설치 도중에 비밀번호를 묻는 과정이 있습니다.
스크립트를 실행시키시면 아래와 같이 옵션이 나오는데요, 3번 옵션을 선택하고 엔터를 치시면 빌드 옵션이 나옵니다.
$ ./efl_script.sh
== EFL Git Script by SeoZ ==
1. clone
2. pull
3. build
Select options:
여기서 우분투 버전을 선택하시면 빌드가 시작됩니다. 우분투 14.04를 사용하시면 1번을 입력하고 엔터를 쳐주세요.
== Choose Your Ubuntu Distribution ==
1. 14.04
2. 12.10 ~ 13.10
3. 12.04
Select options:
5. EFL 설치 확인
빌드 및 설치 후에 다음과 같이 elementary_test 를 실행시켜서 잘 실행이 되면 빌드 및 설치를 성공한 것입니다..
~/ $ elementary_test

6. 문제 해결
만약 빌드 도중에 에러가 발생하면 아래 포스팅을 참고해주세요.
evas 빌드 도중 harfbuzz 관련 에러 발생 시 대처 방법 [6]
E17 빌드에 libxcb-keysyms1-dev 필요 [7]
efl_script.sh 스크립트를 이용하여 EFL을 설치하시면 /usr/local/에 EFL이 설치가 됩니다.
$ vi efl_script.sh# install efl in /usr/local/efl#export PREFIX="/usr/local/efl" <-- 주석(#) 해제#export PKG_CONFIG_PATH+="/usr/local/efl/lib/pkgconfig" <-- 주석(#) 해제
예) bash 쉘의 경우
$ vi ~/.bashrc
PATH=$PATH:/usr/local/efl/bin
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/efl/lib/pkgconfig
CMAKE_MODULE_PATH=$CMAKE_MODULE_PATH:/usr/local/efl/lib/cmake
감사합니다.
< 이어서 보면 좋은 글>
Enlightenment 윈도우 매니저 (E17) 설치 및 사용하기 [9]
[1] http://seoz.egloos.com/3504246
[2] http://seoz.egloos.com/3879420
[3] http://seoz.egloos.com/3473593
[4] http://seoz.egloos.com/3790900
[6] http://seoz.egloos.com/3836493
[7] http://seoz.egloos.com/3901147
[8] http://seoz.egloos.com/3910594
[9] http://seoz.egloos.com/3895469
[10] http://seoz.egloos.com/3936054
[12] http://seoz.egloos.com/3930821
[13] http://seoz.egloos.com/3933352
[14] http://seoz.egloos.com/3935809
[15] http://www.enlightenment.org/p.php?p=download&l=en
[16] http://git.enlightenment.org/devs/seoz/util.git/plain/efl_script.sh
[17] http://git.enlightenment.org/devs/seoz/util.git/plain/efl.sh
덧글
E17 전문가이신 강도령님도 정보 공유해주시면 감사할것 같은데 ㅎㅎㅎ
조금이나마 진입장벽을 낮추는데 도움이 되면 좋겠는데, 아직 갈길이 머네요~
efl_script.sh 가 ccache를 가정하고 짜여져있네요. 저는 빌드팜을 쓰는 환경이라 조금 고쳐서 쓰고 있습니다. evas까지 빌드 잘되네요
저는 prefix 걸어서 스크립트 사용하고 있습니다.
ccache를 빼고 prefix를 변경해서 설치하도록 해야겠네요.
제가 그냥 /usr/local에 EFL을 설치하다보니 이 스크립트도 그렇게 만들었네요.
다른 분들은 위해 수정해야겠습니다.
동료들한테도 이걸로 빌드하라고 알려졌어요 ㅎㅎ
테스트도 해보고 말씀드리겠습니다~
checking whether the UDEV device backend is enabled... yes
checking for EEZE... no
configure: error: Package requirements (eeze >= 1.7.5 ecore >= 1.7.5 eina >= 1.7.5) were not met:
No package 'eeze' found
No package 'ecore' found
No package 'eina' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables EEZE_CFLAGS
and EEZE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
조언 부탁드립니다.
스크립트를 수정하는 도중에 마무리를 안 지었었네요.
다시 수정했으니 새로 다운로드 받아서 사용하시면 될겁니다 ^^
불편을 드려서 죄송합니다.
efl 빌드 시 다음 단계에서 더 이상 진행이 되지 않고 있습니다.
혹여 관련 사항에 알고 계신다면 알려주시면 감사하겠습니다.
=====================================================
------------------------------------------------------------------------
emotion_generic_players 1.7.99.41
------------------------------------------------------------------------
Configuration Options Summary:
Build Profile..........: dev
Players:
VLC....................: yes
Compilation..............: make (or gmake)
CPPFLAGS...............:
CFLAGS.................: -O2 -march=native -ffast-math -g3 -W -Wall -Wextra -mno-sse4
CXXFLAGS...............:
LDFLAGS................:
Installation.............: make install (as root if needed, with 'su' or 'sudo')
prefix.................: /usr/local/efl
emotion generic players: /usr/local/efl/lib/emotion/generic_players/linux-gnu-i686-1.7.99
make --no-print-directory all-am
CC src/vlc/src_vlc_vlc-emotion_generic_vlc.o
CCLD src/vlc/vlc
make[1]: `install-exec-am'를 위해 할 일이 없습니다
/bin/mkdir -p '/usr/local/efl/lib/emotion/generic_players/linux-gnu-i686-1.7.99'
/usr/bin/install -c src/vlc/vlc '/usr/local/efl/lib/emotion/generic_players/linux-gnu-i686-1.7.99'
~/tizen/src/efl
=====================================================
감사합니다.
정상적으로 EFL을 설치하신 것으로 보입니다 ^^
elementary_test를 실행해서 EFL이 잘 설치되었는지 확인해주세요.
EFL이 잘 설치가 되었으면 elementary_test 애플리케이션이 잘 실행됩니다.
감사합니다.
답변 감사드립니다.
아.. /usr/local/efl/bin 에 실행 파일이 위치해서 그랬던 거군요.
PATH에 추가를 하면 되긴 하겠지만, 번거로운 일일 수 있겠네요.
그냥 편하게 사용하려면 그냥 /usr/local/efl 대신 /usr/local을 사용하는게 낫겠는데,
고민입니다;;;
혹시 "2. 필요한 패키지 설치" 부분에 설명해드린 패키지를 설치하셨나요? 아마 libcurl4-openssl-dev가 설치가 안 되어서 그런것 같습니다.
12.04 에서 빌드를 하고 있는데, gstramer 관련 WARNING 이 발생하는데
혹시 확인해주실 수 있을까요??
[리눅스] 우분투에 gstreamer 최신 버전 (1.x) 설치하기
http://seoz.egloos.com/4002136
2. efl_script.sh를 업데이트했습니다. 이전에 다운로드 받으셨던 분들은 다시 다운로드 받아주시기 바랍니다.
우분투 12.04 LTS에서 ./efl_script.sh -> 3 -> 3을 입력하면
./efl_script.sh: line 106: ./autogen.sh: No such file or directory
라는 말이 나오고 그냥 꺼집니다.
어떻게 해결해야할까요?
이전에 clone해서 깃에서는 성공적으로 받아온 상태이고
git으로 받아온 efl, elementary등의 디렉토리와 efl_script.sh는 같은 디렉토리에 존재합니다.
혹시 pushd 명령어가 없는 환경인가요?
그럼 efl_script.sh를 열어서 pushd라고 되어 있는 부분을 cd로 변경하시고,
popd라고 되어 있는 부분을 cd .. 로 변경해서 해보세요.
감사합니다.
sudo apt-get install dh-autoreconf
링크 : http://askubuntu.com/questions/265471/autoreconf-not-found-error-during-making-qemu-1-4-0
단, 저는 X11 기반에서만 해봤습니다.
혹시 어떤 문제인지 예상이 가시나요? (현재 efl 설치는 error가 없이 끝난 상태입니다.)
make all-recursive
make[1]: Entering directory '/home/illuxic/elementary'
Making all in src
make[2]: Entering directory '/home/illuxic/elementary/src'
Making all in lib
make[3]: Entering directory '/home/illuxic/elementary/src/lib'
EOLIAN elm_access.eo.c
EOLIAN elm_atspi_bridge.eo.c
EOLIAN elm_app_server_view.eo.c
EOLIAN elm_app_client.eo.c
EOLIAN elm_actionslider.eo.c
EOLIAN elm_app_server.eo.c
EOLIAN elm_app_client_view.eo.c
EOLIAN elm_atspi_app_object.eo.c
/bin/bash: line 2: 12600 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_atspi_bridge.eo.c elm_atspi_bridge.eo
Makefile:2700: recipe for target 'elm_atspi_bridge.eo.c' failed
make[3]: *** [elm_atspi_bridge.eo.c] Error 139
make[3]: *** Waiting for unfinished jobs....
/bin/bash: line 2: 12609 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_app_client_view.eo.c elm_app_client_view.eo
Makefile:2700: recipe for target 'elm_app_client_view.eo.c' failed
make[3]: *** [elm_app_client_view.eo.c] Error 139
/bin/bash: line 2: 12601 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_access.eo.c elm_access.eo
Makefile:2700: recipe for target 'elm_access.eo.c' failed
make[3]: *** [elm_access.eo.c] Error 139
/bin/bash: line 2: 12610 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_app_client.eo.c elm_app_client.eo
Makefile:2700: recipe for target 'elm_app_client.eo.c' failed
make[3]: *** [elm_app_client.eo.c] Error 139
/bin/bash: line 2: 12613 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_atspi_app_object.eo.c elm_atspi_app_object.eo
Makefile:2700: recipe for target 'elm_atspi_app_object.eo.c' failed
make[3]: *** [elm_atspi_app_object.eo.c] Error 139
/bin/bash: line 2: 12611 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_actionslider.eo.c elm_actionslider.eo
Makefile:2700: recipe for target 'elm_actionslider.eo.c' failed
/bin/bash: line 2: 12608 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_app_server.eo.c elm_app_server.eo
make[3]: *** [elm_actionslider.eo.c] Error 139
Makefile:2700: recipe for target 'elm_app_server.eo.c' failed
make[3]: *** [elm_app_server.eo.c] Error 139
/bin/bash: line 2: 12612 Segmentation fault (core dumped) /usr/local/bin/eolian_gen --legacy --silent-types -I//usr/local/share/eolian/include/eo-1 -I//usr/local/share/eolian/include/evas-1 -I//usr/local/share/eolian/include/edje-1 -I//usr/local/share/eolian/include/ecore-1 -I//usr/local/share/eolian/include/efl-1 -I../../src/lib --gc -o elm_app_server_view.eo.c elm_app_server_view.eo
Makefile:2700: recipe for target 'elm_app_server_view.eo.c' failed
make[3]: *** [elm_app_server_view.eo.c] Error 139
make[3]: Leaving directory '/home/illuxic/elementary/src/lib'
Makefile:448: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/illuxic/elementary/src'
Makefile:643: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/illuxic/elementary'
Makefile:527: recipe for target 'all' failed
make: *** [all] Error 2