2014년 3월 24일 월요일

Wayland, EFL, Enlightenment 빌드

Linux 배포판 : Ubuntu 13.10
Kernel : Linux kernel 3.11.3 upstream version
CPU : Intel i5-2520M
GPU : Intel HD Graphics 3000

0. Prerequisites
$ sudo apt-get install
git build-essential automake libtool
(for libwayland)
libffi-dev
libexpat1-dev
(for libdrm)
libpthread-stubs0-dev
libpciaccess-dev
(for mesa)
libxcb-dri2-0-dev
libxcb-xfixes0-dev
bison
flex
x11proto-gl-dev
x11proto-dri2-dev
libudev-dev
libx11-dev
libxext-dev
libxdamage-dev
libxfixes-dev
libx11-xcb-dev
libxcb1-dev
libxcb-glx0-dev
(for libxcb)
xsltproc
python-xcbgen
(for libxkbcommon)
xutils-dev
libxcb-kbd-dev (missing in ubuntu 13.10)
(for weston)
libcairo2-dev
libmtdev-dev
libpam0g-dev
(for efl)
autopoint
check
libssl-dev
libjpeg-dev
libfreetype6-dev
libfontconfig1-dev
libfribidi-dev
libxrender-dev
libgif-dev
libtiff5-dev
libpng12-dev
libglib2.0-dev
libpulse-dev
libsndfile1-dev
libxcursor-dev
libxcomposite-dev
libxss-dev
libxinerama-dev
libxp-dev
libxrandr-dev
libxtst-dev
libmount-dev
libblkid-dev
libdbus-1-dev
libbullet-dev
libluajit-5.1-dev
libgstreamer1.0-dev
libgstreamer-plugins-base1.0-dev
libsystemd-login-dev
(for enlightenment)
libxcb-keysyms1-dev
libpixman-1-dev


1. libwayland
$ git clone git://anongit.freedesktop.org/wayland/wayland
$ cd wayland
$ ./autoget.sh --prefix=$INSTALL --disable-documentation
$ make && make install

2. libdrm
$ git clone git://anongit.freedesktop.org/git/mesa/drm
$ cd drm
$ ./autogen.sh --prefix=$INSTALL
$ make && make install

3. mesa
$ git clone git://anongit.freedesktop.org/mesa/mesa
$ cd mesa
$ ./autogen.sh --prefix=$INSTALL \
--enable-gles2 \
--disable-gallium-egl \
--with-egl-platforms=x11,wayland,drm \
--enable-gbm \
--enable-shared-glapi \
--with-gallium-drivers=swrast \
--disable-dri3 \
--enable-glx-tls
$ make && make install

4. libxkbcommon
Ubuntu 13.10 에 libxcb-xkb-dev debian package 문제 있음.
4-1.  xutil-macros
$ git clone git://git.freedesktop.org/git/xorg/util/macros
$ cd macros
$ ./autogen.sh --prefix=$INSTALL
$ make && make install
4-2. xcb-proto
$ git clone git://anongit.freedesktop.org/xcb/proto
$ git proto
$ ./autogen.sh --prefix=$INSTALL
$ make && make install 
4-3. libxcb
$ git clone git://anongit.freedesktop.org/xcb/libxcb
$ cd libxcb
$ ./autogen.sh --prefix=&INSTALL
$ make && make install
4-4. libxkbcommon
$ git clone git://github.com/xkbcommon/libxkbcommon
$ cd libxkbcommon
$ ./autogen.sh --prefix=$INSTALL --with-xkb-config-root=/usr/share/X11/xkb
$ make && make install

5. weston
$ git clone git://anongit.freedesktop.org/wayland/weston
$ ./autogen.sh --prefix=$INSTALL
$ make && make install (you may need to add sudo)

6. efl
$ git clone git://git.enlightenment.org/core/efl.git
$ cd efl
$ CFLAGS=-I$INSTALL/include \
LDFLAGS=-L$INSTALL/lib \
./autogen.sh --prefix=$INSTALL \
--enable-wayland \
--enable-egl \
--with-opengl=es \
--enable-drm
$ make && make install

7. elementary
$ git clone git://git.enlightenment.org/core/elementary.git
$ cd elementary
$ ./autogen.sh --prefix=$INSTALL
$ make && make install

8. enlightenment
$ git clone git://git.enlightenment.org/core/elementary.git
$ cd elementary
$./autogen.sh --prefix=$INSTALL \
--enable-wayland-only \
--enable-wayland-clients \
--enable-wl-drm \
--disable-shot \
--disable-xkbswitch \
--disable-conf-randr \
--disable-everything \
--disable-wl-x11
$ make && make install

References)
http://wayland.freedesktop.org/building.html
http://git.enlightenment.org/core/enlightenment.git/tree/README.wayland