Unzip and go to the directory:
tar xvf pulseaudio-6.0.tar.xz
cd pulseaudio-6.0
Run bootstrap script:
./bootstrap.sh
I will sum up here all errors I encountered (in case people search them by copy/paste):
./bootstrap.sh: line 46: intltoolize: command not found
configure: error: Unable to find libltdl version 2. Makes sure you have libtool 2.4 or later installed.
configure: error: *** sys/capability.h not found. Use --without-caps to disable capabilities support
No package 'json-c' found
No package 'sndfile' found
So install all above libraries:
sudo apt-get install intltool libtool libcap-dev libjson0-dev libsndfile1-dev
The script should now ends correctly, and in the command line you can see a table of the configuration done, with enabled/disabled parts. On my side: udev, bluez5, ofono, native-headset, alsa, X11, systemd, … were not enabled, so I installed additional libraries:
sudo apt-get install libudev-dev libsbc-dev libbluetooth-dev libx11-xcb-dev libasound2-dev libsystemd-dev libsamplerate0-dev
-> install libltdl-dev
-> ./configure
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
You do not have speex support enabled. It is strongly recommended
that you enable speex support if your platform supports it as it is
the primary method used for audio resampling and is thus a critical
part of PulseAudio on that platform.
===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
->install speex
-> ./configure
ARM Thumb error: r7 cannot be used in asm here
Platform
ARM (Thumb assembly)
What
Depending on the GCC compiler options used, you can receive an error:
error: r7 cannot be used in asm here
Reason
The assembly code in bn_mul.h
is optimized for the ARM platform and uses some registers, including r7
to efficiently do an operation. GCC also uses r7
as the frame pointer under ARM Thumb assembly.
Solution
Add -fomit-frame-pointer
to your GCC compiler options.
If you have already added -O
, -O2
, etc you do not need to add -fomit-frame-pointer
as the optimization options already include it on most systems by default.