Linux -  HOW-TO Compile Kodi from GIT - Script -
Hi there people.

I decided to post here for everyone's benefit, a script to compile Kodi from GIT, I found it in the forums but needed updating (mostly dependencies). I have no experience or desire to support the script.

If you use it and find errors in the script logic, let me know what errors or logic and I will try to update it.


If something goes wrong please provide full config.logs and pastebins of the output of the errors or issues so I can try to help, else I cant help at all.
sudo pastebinit < /home/setup/kodi-git/config.log
  • Loads of updates and new/improved versions now in gist @ github.
  • Updated to V15.x Isengard's depends/removed dead depends

Last Update: Thu Mar 5 23:24:31 GMT 2015

This is released with no warranty of any kind and by using it, you assume responsibility for the benefits and damages to your system.
Most of all, you should backup your system before using it.

To use you should "NOT" login as root (unless you know what your doing) execute script with sudo


These should provide all required dependencies but given nature of master these can change at any time without notice. simply add them to the DEPS line and re-run script with the option you require, script checks for any missing dependencies on DEPS variable it will install any you added there at any stage via the automatic check it does before compiling anything at various stages via CHECK_DEPS() function.

libgnutls-dev Is not a required dependency, as such is not here, but some distros not Ubuntu may require it due to way they package their stuff if you need it install it manually or add it to DEPS line as explained above.

If you dont install libnfs1-dev via ppa run sudo ./ libnfs previous to running sudo ./ compile. Minimum required is 1.3.0 but the script compiles 1.8.0 at time of writing, it performs slightly faster and has many bug fixes.

NVIDIA ONLY - no pulseaudio (if you use desktop you going to need it)

wget -O ~/

INTEL ONLY  - no pulseaudio (if you use desktop you going to need it)

wget -O ~/

chmod 755

sudo ./ compile (for first run)
sudo ./ update (everytime after)

Configure options (list for options you may want to enable or disable on the ./configure line

Default=yes ( meaning that by default this is enabled even if not defined in ./configure)
Default=no ( meaning the opposite of the above )
Default=auto ( meaning if a library is installed and detected it will be enabled otherwise if not detected it is not enabled )
Default is enabled ( meaning the option is enabled Note: usually it is dependent on a library being installed, if it is not, the compile will fail )

Some options dont have either of the yes/no/auto When in doubt look at was being enabled or disabled.
Options that can be enabled can usually also be disabled.


--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]

Options ( A complete list of options are available when running ./configure --help inside the XBMC git directory in this case /home/setup/xbmc )

--enable-shared-lib build libxbmc. helpful for tests (default is no)
--enable-gl enable OpenGL rendering (default is yes)
--enable-vdpau enable VDPAU decoding (default is auto)
--enable-vaapi enable VAAPI decoding (default is auto)
--enable-xrandr enable XRandR support (default is yes)
--enable-goom enable GOOM visualisation (default is no)
--enable-rsxs enable really slick X screensavers (default is yes)
--enable-projectm enable ProjectM visualisation (default is yes)
--enable-ccache enable building with ccache feature (default is auto)
--disable-alsa disable ALSA support (only for linux/freebsd)
--enable-pulse enable PulseAudio support (default is no)
--disable-ssh disable SSH SFTP support (default is enabled)
--enable-rtmp enable RTMP support via librtmp (default is auto)
--disable-samba disable SAMBA support (default is enabled)
--enable-nfs enable NFS support via libnfs (default is auto)
--enable-afpclient enable AFP support via libafpclient (default is auto)
--enable-airplay enable AirPlay support(default is auto)
--enable-airtunes enable AirTunes support(default is auto)
--disable-upnp disable UPnP support (default is enabled)
--enable-ffmpeg-libvorbis enable FFmpeg vorbis encoding (default is no)
--enable-dvdcss enable DVDCSS support (default is yes)
--enable-mid enable MID support (default is no)
--disable-hal disable HAL support (default is enabled if hal and hal-storage is found)
--disable-avahi disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)
--disable-non-free disable componentents with non-compliant licenses
--enable-asap-codec enable ASAP ADPCM support
--disable-mysql disable mysql
--disable-webserver disable webserver
--disable-optical-drive disable optical drive
--enable-libbluray enable libbluray support
--enable-udev enable udev support (default is auto)
--enable-libusb enable libusb support (default is auto)
--enable-libcec enable libcec support (default is auto)
--enable-libcap enable libcap support (default is auto)

Hope these help I have removed some options as to not get people enabling/disabling things that are not clear if their platforms support, if you are not sure consult your platform compile readme.

F.A.Q. (Frequently Asked Questions

Q - The script says it only INTEL compatible what do I do?
A - You downloaded wrong script for your system, SYS_CHECK() prevents you from running wrong script and end up with broken compile.

Q - The script says it only NVIDIA compatible what do I do?
A - See above answer.

Q - Do you have AMD GPU compile scripts or will you make one?
A - Never. No, Don't even bother asking, Smile I refuse. Intel script was already some exception made for friends. In order to be my friend you need to buy me beer and bacon.

Q - I had some error, or script failed what do I do?
A - If something goes wrong please provide full config.logs and pastebins of the output of the errors or issues so I can try to help, else I cant help at all.
sudo pastebinit < /home/setup/kodi-git/config.log
Nice, I might give it a go tonight.
(2012-10-09, 16:13)pumkinut Wrote: Nice, I might give it a go tonight.

Did it blow up your system or what?

Sorry, never got around to trying it out. It's still something I want to do,it's just that other things keep getting in the way. I'll post back when I give it a go.
I've run your script in two Ubuntu 12.04 minimal installations (One on VMware Fusion and one on VMware workstation). From what I can tell it does everything perfectly. Once I get a chance I will be using a spare HDD or FDD to install it on my actual HTPC hardware. After running the update install (after the initial upgrade install) I did notice that it said ~ "failed to start xbmcl" instead of ~"failed to start xbmc". I'm befuddled by the addition of the "L" rather than the fact it didn't start. Once I've installed the startup script from the repo it starts on boot just fine. =)

Also, when downloading the script from pastebin it looks as though it is in DOS format rather than Unix. Just ran dos2unix against it and that fixed the notorious ^M.
First attempt on real hardware. 12.04 Minimal. Installed nvidia driver for my GT430 and xorg. Set script up to run and it seems like it bombs somewhere during the compile. Wiping everything out and attempting a fresh run.
@ namomaitreya

If compile fails, pastebin the terminal output, it could be I missed a dependency, wouldn't surprise me either way. no need to reinstall the system again, but ok.

the script starts and stops xbmc for various previous install methods (if you had ANY) e.g xbmc-live or just xbmc-standalone (your bound to see a error like: start: Unknown job: xbmc-live
which can be safely ignored) , on a fresh install all you need is the xbmc upstart/xinit scripts, you wont even need to preinstall xbmc. (its easier for some ppl to have a working install to begin)

Further cleanups done,

I've tested and am using this instead of installing xbmc from ppa with this minimal Ubuntu install CD (12.04 because I prefer LTS) and used Minimal Ubuntu install and XBMC -Script-

I'm using ION1 system and all tweaks like in my signature for perfection.

Hoping the extra info helps.

Testing/Feedback welcome Smile

OMG so many ppl trying this out I cant keep up with the replies....

Please everyone , not all at once eh!

(2012-11-08, 01:22)uNiversal Wrote: OMG so many ppl trying this out I cant keep up with the replies....

Please everyone , not all at once eh!


Was this sarcasm? There were no posts between your own posts... are you getting PMs?

would this be the method to update nightly builds (minimal Ubuntu)...
Yes sarcasm, definitely maybe Wink

This would be A method not THE method of preference (if you understand the difference), I use this (I have other configure parameters but essentially its this) but I never installed any software from a ppa, in this case xbmc.

In your case, stick with the ppa's, it will be "easier" for you. (though you can learn a lot from compiling it requires willingness to research, commitment and dowork() yourself)

Though if you do want to use this feel free, you are 100% in control of what version of xbmc you have, however with great power comes great responsibility (Peter Parker). So if you assume that responsibility feel free to use it. Wink

Worked like a charm !!!

Many thanks.

Excellent. Big Grin


Does your script can be used to compile Frodo on my Ubuntu 12.10 with XBMC Eden installed with ppa ?

Eden won't be overwritten ?

For first compilation, I have to run script with upgrade parameter so script will install a lot of packages :

aptitude install libvdpau-dev ccache autopoint libltdl-dev git-core build-essential gawk pmount libtool nasm yasm automake cmake gperf zip unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libfribidi-dev liblzo2-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound2-dev python-sqlite libglew-dev libcurl3 libcurl4-gnutls-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbisenc2 libsmbclient-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libenca-dev libxt-dev libxmu-dev libpng-dev libjpeg-dev mesa-utils libcdio-dev libsamplerate-dev libmpeg3-dev libflac-dev libiso9660-dev libass-dev libssl-dev fp-compiler gdc libmpeg2-4-dev libmicrohttpd-dev libmodplug-dev libssh-dev gettext cvs python-dev libyajl-dev libboost-thread-dev libplist-dev libusb-dev libudev-dev libtinyxml-dev libcap-dev curl swig default-jre libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libbluetooth-dev libbluray-dev libbluray1 libcec-dev libcec1 libcrystalhd-dev libcrystalhd3 libcurl4-gnutls-dev libcwiid-dev libcwiid1 libnfs-dev libpostproc-dev libshairport-dev libswscale-dev libva-dev libva-egl1 libva-tpi1 libmp3lame-dev -y -q

Won't break Eden dependencies ?

Sorry for my english, but, you know, I'm French so ...

Main HTPC : Core i3 2120T running OpenELEC with Aeon Nox 5 and my mod
Secondary HTPC : Freebox Mini 4K running Android TV with Aeon Nox 5 and my mod
It will overwrite Eden, unless you define a different install/configure prefix at configure and make install.

So instead of ./configure --prefix=/usr and make install prefix=/usr define your own paths like --prefix=/usr/local

However having two installs on same system means that you need to start the second manually and shutdown the old one you cant have Eden and frodo running at same time and this doesa not autostart the compiled build automatically IF you CHANGE the location of the installation. To autosatrt this after path is changed look at this and adapt it to your needs...

If you want script to compile XBMC you need to install EVERYTHING in here it, It shouldn't affect Eden but if it does its not because of this.

Backup your userdtata just in case.

or better yet, dont use any of this.


Thread Rating:
  • 3 Vote(s) - 5 Average

Logout Mark Read Team Forum Stats Members Help
HOW-TO Compile Kodi from GIT - Script -53