On compiling OS products with pkg-config
there is some times the problem that some include paths are missing. Why does that happen?
asked: 2012-03-30 by: cgrzemba
Dagobert answers:
The reason is that configure use pkg-config --cflags
to get the include paths from pc file of packages which it depends on.
configure reports if the dependend package is not installed: no problem.
But a problem raise if the pc file contains Requires
and Requires.private
keys like libgnome-2.0.pc
.
Then the first test if libgnome-2.0 package is installed will be true, but the command
pkg-config --cflags libgnome-2.0
will fail if some packages of Requires
are missing. Unfortunatly configure will continue without report a problem and lets the CFLAGS
variable empty!
With the following script it is possible to see if there are such problems possible
for p in `grep PKG_CHECK_MODULES work/build-isa*/*/configure.in | cut -d, -f2 | awk '{ print $1 }' | sed -e 's/\[//' -e 's/)//' | sort | uniq` ; {
pkg-config --cflags $p > /dev/null || echo ">>> problem with package $p";
}