Build and install from source code

Ivan Dmitrievsky edited this page Mar 16, 2015 · 2 revisions

Requirements

In order to build bomi, you need the following tools:

  • g++ or clang which supports C++14
  • pkg-config
  • python
  • git if you try to build from git repository

You have to prepare the following libraries, too:

  • Qt5 >= 5.2
  • OpenGL >= 2.1 with framebuffer object support
  • FFmpeg (libav is not supported) (*)
    • libavformat >= 55.12.0 (*)
    • libavcodec >= 55.34.1 (*)
    • libavutil >= 52.48.101 (*)
    • libavfilter (*)
    • libpostproc (*)
    • libswresample (*)
    • libswscale (*)
  • chardet (*)
  • libmpg123
  • libass
  • dvdread dvdnav
  • libbluray
  • icu-uc
  • xcb xcb-icccm x11
  • libva libva-glx libva-x11
  • vdpau
  • alsa

Each item corresponds to its package name for pkg-config command except Qt and OpenGL. Some packages marked with (*) can be in-tree-built.

Compilation

In the below description, $ means that you have to input the command in termnal/console where source code exists.

Get source code

At first, prepare the source code.

  • Download the latest source code tarball and unpack
  • Or, clone the git repository if you want

In-tree build packages

FFmpeg and chardet packages cannot be prepared easily for some Linux ditributions. For such case, you can build them with in-tree source.

If you don't need in-tree build of FFmpeg and chardet, skip this section.

  • To build FFmpeg in-tree, run the following:
$ ./download-ffmpeg
$ ./build-ffmpeg
  • To build chardet in-tree, run the following:
$. /download-libchardet
$. /build-libchardet

Build bomi

If you have any problem when building, please check Troubleshooting section. It may be helpful to check what you can configure using the following command:

$ ./configure --help

Test purpose

If you want to try bomi without install, run the following commands in order to build bomi:

$ ./configure
$ make

The executable will be located at ./build/bomi in source code directory.

Install into system

To install bomi, you have to decide the path to install. It can be spcified by --prefix option. By default, --prefix=/usr/local will be applied if you don't specify it which results to locate the executable at /usr/local/bin/bomi and other files (skins, translations, etc.) under /usr/local/share For instance, if you want to install into a directory named bomi in your home directory, run the following:

$ ./configure --prefix=${HOME}/bomi
$ make
$ make install

You will find the executable at bomi/bin/bomi in your home directory.

For package builders

Usually, when build a package, you need to specify the fake root system when run make install. This can be accomplished by giving DEST_DIR option to make install. Here's a snippet from PKGBUILD for Arch Linux as an example:

build() {
  cd "$srcdir/$pkgname-$pkgver"
  ./configure --prefix=/usr --enable-jack --enable-cdda
  make
}

package() {
  cd "$srcdir/$pkgname-$pkgver"
  make DEST_DIR=$pkgdir install
}

where $pkgdir is the fake root system. jack and cdda support is also enabled in this example.

Troubleshooting

Under construction