From a6232d8c72285099b5b16cc4559a34d043bc1b60 Mon Sep 17 00:00:00 2001 From: "Jerome Blanchi aka d.j.a.y" Date: Fri, 21 Jun 2019 18:47:48 +0200 Subject: [PATCH] HelpUpdate : Again compile / build / install review ! --- README.md | 6 +- .../veejay-server/doc/HOWTO.compile.md | 142 ++++++++++++++++++ .../veejay-server/doc/HowtoCompile.txt | 117 --------------- .../veejay-server/doc/Installation.md | 14 +- .../veejay-server/doc/veejay-HOWTO.md | 29 ++-- 5 files changed, 176 insertions(+), 132 deletions(-) create mode 100644 veejay-current/veejay-server/doc/HOWTO.compile.md delete mode 100644 veejay-current/veejay-server/doc/HowtoCompile.txt diff --git a/README.md b/README.md index c7a0975b..2d84cc95 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ The video output server (Ffmpeg/libSDL), a 'visual' instrument and realtime vide First, make sure you system is up-to-date, and install the dependencies with: ```bash -sudo apt-get install git autoconf automake libtool m4 gcc libjpeg62-dev \ +sudo apt-get install build-essential 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 ``` @@ -56,7 +56,7 @@ For __each package__, run the triptich commands of the *GNU build system* (for a ```bash ./autogen.sh ./configure - make && sudo make install + make -j$(nproc) && sudo make install ``` __IMPORTANT :__ in some configuration you should have to __manually build__ the __shared libraries cache__ just after the __first veejay-core__ installation (ex `sudo ldconfig` or similar) @@ -65,6 +65,8 @@ If you want help to build for a specific architecture or with or without particu Before running veejay, be sure to add or link some TrueType fonts in `$HOME/.veejay/fonts` +Additional information about building veejay packages can be found in [HOWTO.compile.md](./veejay-current/veejay-server/doc/HOWTO.compile.md) + ## Usage Running veejay is a much too large topic to cover in this readme. Various diff --git a/veejay-current/veejay-server/doc/HOWTO.compile.md b/veejay-current/veejay-server/doc/HOWTO.compile.md new file mode 100644 index 00000000..065f263b --- /dev/null +++ b/veejay-current/veejay-server/doc/HOWTO.compile.md @@ -0,0 +1,142 @@ + +# 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 +``` + +## 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` + +## 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) + diff --git a/veejay-current/veejay-server/doc/HowtoCompile.txt b/veejay-current/veejay-server/doc/HowtoCompile.txt deleted file mode 100644 index cfde2b4c..00000000 --- a/veejay-current/veejay-server/doc/HowtoCompile.txt +++ /dev/null @@ -1,117 +0,0 @@ - -# Compiling Veejay - - -## 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 GTK-2.4 (GTK 2.6 recommended) -* [http://www.gnome.org GdkPixbuf (comes with Gnome) -* Cairo (needed for GVeejay Reloaded) -* GtkCairo (needed for GVeejay Reloaded) -* Libquicktime for Quicktime] -* Video4Linux II -* libpthread -* Glade (needed for GVeejay 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) - -## Generic 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 - -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 all your .pc files (like for example libdv.pc or jack.pc ) - - -### Configure flags - -`--enable-debug` Builds veejay for debugging purposes (disables optimization) see also 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 ? - -## Building - -1. Get the sources from Veejay's repository: -
-  $ git clone git://github.com/c0ntrol/veejay.git veejay
-
-2. Enter the source directory and run autogen.sh -
-  $ cd veejay/veejay-current
-  $ cd veejay-server
-  $ sh autogen.sh
-
-3. Run ./configure -
-  $ ./configure
-
-4. Type 'make' to build veejay -
-  $ make 
-
-5. Installing -
-  $ sudo make install
-
-6. *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
-
-7. *optional* continue with building the plugin-packs -
-  $ 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 - -Test if veejay works: -
-  $ veejay -d -n
-
- -Start another terminal and type: -
- $ reloaded
-
- -Open another terminal (depends on sayVIMS, build in step 6) -
- $ sayVIMS -m "600:;"
-
- -(or press CTRL-C in the terminal running veejay) - diff --git a/veejay-current/veejay-server/doc/Installation.md b/veejay-current/veejay-server/doc/Installation.md index ea92f394..836a6f23 100644 --- a/veejay-current/veejay-server/doc/Installation.md +++ b/veejay-current/veejay-server/doc/Installation.md @@ -1,12 +1,12 @@ -[//]: # ( comment : END installation section duplicated in /README.md) +[//]: # ( comment : BEGIN installation section duplicated in /README.md) [//]: # ( WARNING : some URL/PATH have to be adapted ) ## Get all the dependencies -First, make sure you system is up-to-date, and install the dependencies with: +First, make sure you system is up-to-date, and install (in debian like system) the required dependencies with: ```bash -sudo apt-get install git autoconf automake libtool m4 gcc libjpeg62-dev \ +sudo apt-get install build-essential 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 ``` @@ -26,7 +26,7 @@ For __each package__, run the triptich commands of the *GNU build system* (for a ```bash ./autogen.sh ./configure - make && sudo make install + make -j$(nproc) && sudo make install ``` __IMPORTANT :__ in some configuration you should have to __manually build__ the __shared libraries cache__ just after the __first veejay-core__ installation (ex `sudo ldconfig` or similar) @@ -35,6 +35,8 @@ If you want help to build for a specific architecture or with or without particu Before running veejay, be sure to add or link some TrueType fonts in `$HOME/.veejay/fonts` +Additional information about building and configuring veejay packages can be found in [HOWTO.compile.md](./HOWTO.compile.md) + ## Usage Running veejay is a much too large topic to cover in this readme. Various @@ -100,3 +102,7 @@ If you want to debug veejay-server (or if you want to submit a meaningful backtr ./configure --enable-debug see also : [How to debug](./HowToDebugging.txt) + + +[//]: # ( comment : END installation section duplicated in /README.md) +[//]: # ( WARNING : some URL/PATH have to be adapted ) diff --git a/veejay-current/veejay-server/doc/veejay-HOWTO.md b/veejay-current/veejay-server/doc/veejay-HOWTO.md index 2f6f43c5..29a34622 100644 --- a/veejay-current/veejay-server/doc/veejay-HOWTO.md +++ b/veejay-current/veejay-server/doc/veejay-HOWTO.md @@ -357,24 +357,29 @@ Decompress and untar the file by typing: ``` $ tar -jxvf veejay-1.5.x.tar.bz2 ``` -Change to the directory containing veejay's source's and configure the build: +Veejay is divided in several packages. First you need the core libraries and veejay application. + +Change to the directory containing veejay's core source's and configure the build: ``` -$ cd veejay-1.5.x/veejay-current/veejay-server +$ cd veejay-1.5.x/veejay-current/veejay-core $ ./configure ``` On completion it will summarize the results of the `./configure` script. You can run `./configure --help` to view all configure options and tweak your installation. -Now, you can start building veejay (using all cores) +Now, you can start building the core library (using all cores) ``` $ make -j$(nproc) ``` Followed by ``` -# make install && ldconfig +# sudo make install && sudo ldconfig ``` -For **full installation instruction** please refer to this [documentation](./Installation.md) + +Repeat the same process (appart `ldconfig`) for veejay-server and other needed packages. + +For **full installation instruction** please refer to [Installation.md](./Installation.md) 3.3 Installing from repository ------------------------------------------- @@ -386,9 +391,12 @@ Download the last source code by typing : ``` $ git clone https://github.com/c0ntrol/veejay.git ``` -Enter the directory containing veejay's source's : +Veejay is divided in several packages. First you need the core libraries and veejay application. + +Change to the directory containing veejay's core source's and configure the build: + ``` -$ cd veejay/veejay-current/veejay-server +$ cd veejay/veejay-current/veejay-core ``` You need to prepare and configure the build: ``` @@ -398,7 +406,7 @@ $ ./configure On completion it will summarize the results of the `./configure` script. You can run `./configure --help` to view all configure options and tweak your installation. -Now, you can start building veejay (using all cores) +Now, you can start building the libraries (using all cores) ``` $ make -j$(nproc) ``` @@ -406,7 +414,10 @@ Followed by ``` # make install && ldconfig ``` -For **full installation instruction** please refer to this [documentation](./Installation.md) + +Repeat the same process (appart `ldconfig`) for veejay-server and other needed packages. + +For **full installation instruction** please refer to [Installation.md](./Installation.md) 3.4 Setting up multicast ------------------------