Files
veejay/veejay-current/veejay-server/doc/HOWTO.compile.md
2025-11-02 17:15:25 +01:00

157 lines
4.4 KiB
Markdown

# Compiling Veejay
Veejay is divided into multiple packages. Each must be build separately and in a specific order.
1. [veejay-core](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-core) (__required__)
2. [veejay-server](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-server) (__required__)
3. [veejay_client](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-client) (*optional*)
4. [veejay-utils](https://github.com/c0ntrol/veejay/tree/master/veejay-current/veejay-utils) (*optional*)
5. [plugin-packs](https://github.com/c0ntrol/veejay/tree/master/veejay-current/plugin-packs) (*optional*)
## Prerequisities
Required:
* Build-essential
* FFmpeg (libavcodec, libavformat, libavutil, libswscale) *please use ffmpeg instead of libav*
* libjpeg
* libxml2 for saving project data
* SDL 2 for the video window
* libdv for playback of DV Video
* [http://www.gtk.org] GTK3 (3.22 recommanded)
* [http://www.gnome.org] GdkPixbuf (comes with Gnome)
* Cairo (needed for Reloaded)
* GtkCairo (needed for Reloaded)
* Libquicktime for Quicktime]
* Video4Linux II
* libpthread
* Glade (needed for Reloaded)
Optional:
* liblo
* DirectFB for secundary head (TVOut)
* Jack for audio playback
* G'MIC - GREYC's Magic for Image Computing
* libqrencode (Android VJ remote control)
First, make sure you system is up-to-date, and install (in debian like system) the required dependencies with:
```bash
sudo apt-get install build-essential git autoconf automake libtool m4 gcc libjpeg62-dev \
libswscale-dev libavutil-dev libavcodec-dev libavformat-dev libx11-dev \
gtk-3.0-dev libxml2-dev libsdl2-dev libjack0 libjack-dev jackd1
```
On some systems, the gtk dependency may be called libgtk-3-dev
## Quick and dirty build instructions
Normally, you can just run `./configure`.
If you have cloned the veejay git respository, you will need to run `./autogen.sh` first to produce the configure file.
## Configure options
`PKG_CONFIG_PATH` is a environment variable that specifies additional paths in which `pkg-config` will search for its `.pc` files.
If you need additional paths, before running configure, check if the PKG_CONFIG_PATH variable is setup correctly:
```
$ echo $PKG_CONFIG_PATH
```
If echo is silent, you must set the PKG_CONFIG_PATH to point to the directory containing your additional .pc files (for homebrew library installation)
### Configure flags
`--enable-debug` Builds veejay for debugging purposes (disables optimization). See also `--enable-profiling`
`--with-arch-target=generic` Build veejay for generic x86 cpu-type. If the default is used (auto), the resulting binary may not run on another computer.
`--without-jack` Build veejay without sound suppport. Useful when you just care of visuals ouput. Veejay will have more ressources (cpu/memory) to play your videos.
You can see all the configure flags with `./configure --help`
## Optimization flags
You can set -mcpu and -mtune to compile veejay with optimizations specific to your CPU
For example, on RPI4:
```
export CFLAGS="-mcpu=cortex-a72 -mtune=cortex-a72"
```
## Building
1. Get the last sources from Veejay's repository:
```
$ git clone git://github.com/c0ntrol/veejay.git veejay
```
2. Enter the source directory
```
$ cd veejay/veejay-current
```
3. Move to current software to build and run autogen.sh
```
$ cd veejay-core
$ sh autogen.sh
```
3. Run ./configure
```
$ ./configure
```
4. Type 'make' to build veejay
```
$ make -j$(nproc)
```
5. Installing
```
$ sudo make install && sudo ldconfig
```
6. Repeat from step __3__ to __5__ inside `veejay-server` directory
7. *optional* continue with building `veejay-client` and `veejay-utils`
```
$ cd veejay-client
$ sh autogen.sh
$ ./configure
$ make && sudo make install
$ cd veejay-utils
$ sh autogen.sh
$ ./configure
$ make && sudo make install
```
8. *optional* continue with building the plugin-packs (repeat for all plugins pack you want to install)
```
$ cd plugin-packs/lvdgmic
$ sh autogen.sh
$ ./configure
$ make && sudo make install
$ cd plugin-packs/lvdcrop
$ sh autogen.sh
$ ./configure
$ make && sudo make install
```
## Test your build
You will start veejay, connect the user interface and quit veejay.
Test if veejay works:
```
$ veejay -d -n
```
Start another terminal and type:
```
$ reloaded -a
```
Open another terminal (depends on sayVIMS, build in step 7)
```
$ sayVIMS -m "600:;"
```
(or press CTRL-C in the terminal running veejay)