*******************************************************************************

Libre Media Server - An Open source Media Server.
(c) Santiago Noreña 2012-2013

*******************************************************************************

Developing and support: libremediaserver@gmail.com

Code: http://code.google.com/p/libremediaserver

*******************************************************************************

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*******************************************************************************

If you have troubles, or you are in another distro, you can try compiling from the source code.

0. Requisites
	tcl tk --> To compile Pure Data, not necesary to execute it without GUI (-gui option in command line)
	alsa-dev
	make
	qt4-qmake	
	configure
	gcc
	g++
	libtiff-dev -> ola2jpg
  libmagick++-dev -> In Debian Wheezy libmagick++5-dev; In Ubuntu Precise libmagick++4-dev  

1. Building pd
	$./autogen.sh
	$./configure
	$make

2. Building ola
	$./configure
	$make

3. Building pd externals

	3.1 ola2pd

# Compile and install flext

svn co https://svn.grrrr.org/ext/trunk/flext flext
cd flext
./build.sh pd gcc
Edit the paths in file ./buildsys/cnfg-lnx-gcc.txt 
./build sh pd gcc
sudo ./build.sh pd gcc install
cd ..

# Add enviroment path variables to .bashrc

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib" >> ~/.bashrc
echo "export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/include" >> ~/.bashrc 
echo "export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/include" >> ~/.bashrc

# Build and install ola2pd 

  cd ola2pd
  /path/to/flext/build.sh pd gcc
 	$ cp fileselector.pd_linux $HOME/pd-externals 

	3.2 Gem + pix2jpg

  $ cd Gem
	$ ./autogen.sh
	$ ./configure --with-pd=/path/to/pd/source --prefix=$HOME/pd-externals 
	comment the line 65 in the Makefile in /plugins/ImageMagick. It fails compiling.
	$ make
	$ make install	
	
	3.3 fileselector
	
	$ cd fileselector
	$ make	
	$ cp fileselector.pd_linux $HOME/pd-externals 

4. LibreMediaserver

	Open the file libremediaserver.pro with QtCreator and compile it.

	or
	
	$ cd src
	$ qmake-qt4 libremediaserver.pro -r -spec linux-g++
	$ make -w

5. Putting all together.

  Make a directory. Copy in it:
    - libremediaserver binary
    - Folder scripts
    - Folder puredata
    - the tcl folder in the pd sources. This is only necessary to show the Pure Data GUI's. You don't need if you don't want the GUI's. Only it's good for debugging purpouses and developing, for normal use you can skip this step.    

  In the folder puredata copy:
    - the pd executable
    - Make a folder named externals and copy all the externals to it. All the externals compiled must be in ~HOME/pd-external. 

  There are externals from third party we do not track the sources files and are a must in order to run libremediaserver. That externals can be retrieved compiled in the libremediaserver release packet in the downloads page ot the web project. All are binaries from the packets of Debian distribution (counter, gate, split, prepend,...) from pd-zexy, pd-cyclone, pd-ogg. I'am actively developing and i am adding the sources of these externals to repository when they are necessary (Gem) or making my own fork to adapt when i need (fileselector, pix2image) or trying using alternatives in PD Vanilla. I want to keep only the minimun necessary in this chapter. Alternativaly i want to make a compilation script that would do the complete compilation process, including these externals, but it's not a prioriy at this moment.

   

	.......... 

