===== Downloading and compiling yuri v2.8.x ===== ==== Prerequisites ==== === Compiler === Yuri 2.8 should work with any compiler with decent C++11 support. It is known to successfully compile with gcc 4.7 and newer, clang 3.2 and newer. It won't build with MSVC as it's C++11 support is still pretty bad. ^ Tested compilers ^^ ^ Compiler ^ Support ^ | GCC 4.9 (svn) | @lightgreen: YES | | GCC 4.8 | @lightgreen: YES | | GCC 4.7 | @lightgreen: YES | | GCC 4.6 | @pink: NO (Missing support for UDL) | | GCC 4.5 | @pink: NO (Missing support for UDL) | | clang 3.4 (svn) | @lightyellow: from version v2.8.0_alpha-332-g6c16d4c | | clang 3.3 | @lightgreen: YES | | clang 3.2 | @lightgreen: YES | | MSVC 2012 | @pink: NO (Missing large parts of C++11 support) | === libraries === Core of yuri 2.8 and several modules should compile without any external library, but there's lot of modules depending on some external library. * boost 1.49 or newer. If preset, it will be used in core and few modules. (Mostly for filesystem traversal and regexes) * libsdl. Required for module sdl_window. * libav* (ffmpeg suite). Required for rawavfile. * alsa (asound library). Required for midi_device and alsa_output. * jpeg 8 (libjpeg or libjpeg-turbo). Required for jpeg module. * libpng 1.5. Required for png module. * X11 libraries. Required for screen capture. * OpenCV 2.3. Required for opencv module (conversions and facedetection) === (optional) Ultragrid dependencies === For successfull build of ultragrid modules, you may need following packages: speex, libv4l, libsdl Installing in Gentoo: emerge speex libv4l libsdl ==== Download ==== === (optional) Ultragrid Support === cd ${BASE} git clone http://seth.ics.muni.cz/git/ultragrid.git/ -b trunk cd ultragrid wget http://projects.iim.cz/_media/yuri:uv_yuri_2.8.patch -O - | patch -p1 This downloads current sources from ultragrid repository (the development branch) and applies {{:yuri:uv_yuri_2.8.patch|yuri patch}}. ./autogen.sh --disable-libavcodec Calling //autogen.sh// configures ultragrid. You should verify that it succeeded before continuing. The //--disable-libavcodec// disables the libavcodec support in ultragrid, but it will still work as yuri module. And finally, build ultragrid: make If the compilation fails because of undefined unknown symbols like: AV_PIX_FMT_YUV444P, then disable libavcodec support (it probably means that you have unsupported libavcodec version) and try again: ./autogen.sh --disable-libavcodec make There's no need for ultragrid binary in yuri, but the compilation process creates some include files, which are needed for the compilation in yuri. === Download and compile yuri === cd ${BASE} git clone anon@git.iim.cz:yuri-light -b 2.8.x yuri-light-2.8 cd yuri-light-2.8 mkdir build cd build cmake .. -DCMAKE_BUILD_TYPE=Release For ultragrid support, please call: cmake .. -DCMAKE_BUILD_TYPE=Release -DYURI_DISABLE_ULTRAGRID=OFF And you should see line "**Building ULTRAGRID helper library!**" in the output. And simply build the library: make