Friday, August 06, 2010

building CinCV from source, Ubuntu 32-bit

Normally, I am a Fedora man, but I was helping a friend install Cinelerra on Ubuntu Lucid 10.04 32-bit. I installed Lucid in a VMware virtual machine on VMware Server. Here are some notes that may be helpful for someone. The instructions assume a base installation. The base installation VM file size is about 2.7GB. With my updates, it becomes 4GB.

echo "1: update manually with synaptic package manager"
I don't know the command line for this, just do via GUI

echo "2: install dependencies for source"
sudo apt-get install g++ git-core libtool automake nasm mplayer xorg-dev ffmpeg libasound2-dev libogg-dev libvorbis-dev libtheora-dev libopenexr-dev libdv4-dev libpng12-dev libjpeg62-dev libx264-dev uuid-dev mjpegtools libmjpegtools-dev libfftw3-dev liba52-0.7.4-dev libmp3lame0 libmp3lame-dev libsndfile1-dev libfaac-dev libfaad-dev libesd0-dev libavc1394-dev libraw1394-dev libiec61883-dev libtiff4-dev libxxf86vm-dev libglu1-mesa-dev libogg-dev libvorbis-dev libopenexr-dev libpng12-dev libjpeg62-dev mjpegtools libmp3lame0 libquicktime-dev libqt4-dev libpostproc-dev libavformat-dev libavutil-dev libmad0-dev libhal-dev libdbus-1-dev libgcrypt11-dev libfribidi-dev

echo "3: touch language files not present"
cd $HOME/my_cinelerra/po;touch

echo "4: chmod on stamp-po for make install"
cd $HOME/my_cinelerra/po;sudo chmod 777 stamp-po

echo "5: run ldconfig to get around libquicktimehv error"
sudo ldconfig

echo "6: add kernel parameter for max shared memory"
sudo su; echo "kernel.shmmax=2147483648" >> /etc/sysctl.conf

Compile from source (executed within source code directory):
1) ./
2) ./configure
4) make
5) make install

Compile with Monty's changes
After verifying a successful CinCV compile, you'd want to load up Monty's changes and then do:
1) ./
2) ./configure
3) make clean
4) make
5) make install

da mule


Koen Wybo said...

Ubuntero's can also use deb's from akirad: (but without Monty's changes) There are also versions for 64-bit.
What brings me to this question: Do you have any succes compiling yuvmotionfps (a very nice program : on an 64-bit processor and ubuntu 10.04?

Cacasodo said...

I'll give this a shot later this weekend.

Cacasodo said...

For the helluva it, I went through the process of installing yuvmotionfps on my 64-bit Ubuntu 10.04 VM. Man! Painful. Here's what I needed to do:
sudo apt-get install g++
sudo apt-get install libmjpeg-dev
sudo apt-get install autoconf
sudo apt-get install libtool
sudo apt-get install libsdl1.2-dev
edit ./ to comment out the following block
#if test x$have_x86cpu = xtrue -o x$have_ppccpu = xtrue; then
# if test x$host_alias != x; then
# dnl This is to allow cross compiling
# AC_MSG_CHECKING(sub-architecture settings)
#if test x$have_x86cpu = xtrue; then
# host_mod_cpu=`echo $host_cpu | tr _ -`
# ARCHFLAGS="-march=$host_mod_cpu -mcpu=$host_mod_cpu"
# else
# if test ! -r $srcdir/; then
# AC_MSG_ERROR([ script not found - do a cvs update])
# fi
# AC_MSG_CHECKING(sub-architecture settings)
# chmod +x $srcdir/
# if test x$have_x86cpu = xtrue; then
# ARCHFLAGS=`$srcdir/ x86`
# elif test x$have_ppccpu = xtrue; then
# ARCHFLAGS=`$srcdir/ ppc`
# fi
# fi

run ./
run ./configure
Create a symbolic link to the latest libmjpegutils:
sudo ln -s /usr/lib64/ /usr/lib64/

It seems to work, as the program gives some output:
sodo@ubuntu:~/Downloads/yuvmotionfps-1.6$ yuvmotionfps
INFO: [yuvmotionfps] -------------------------------------------------
INFO: [yuvmotionfps] Motion-Compensating-Frame-Rate-Converter
INFO: [yuvmotionfps] -------------------------------------------------
**ERROR: [yuvmotionfps] Please specify a frame rate; yuvmotionfps -h for more info

Let me know if you get it working for you,

nick_fankhauser said...

I got it running by commenting out the echo command for the "Your..." message in the file. The message disturbed the expected output (mcpu march) of which becomes part of the gcc options in the compilation process. Without this "Your..." message, mpu and march are set to empty strings, so that gcc uses the native settings.