Pango 1.20 does not compile when passing Cairo or X server packages as backends

Hello. Trying to compile Pango with one or mentioned packages as backend, Cairo or X11 related packages I have been facing a series of error messages that I do not know how to fix.

First with Cairo. I try to compile Pango with

./configure  --prefix=/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0/  PKG_CONFIG_PATH=/media/34GB/Arquivos-de-Programas-Linux/Fontconfig-2.4.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Freetype-2.2.1/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Glib-2.47.4/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Cairo-1.10.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Pixman-0.18.4/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Png-1.0.19/lib/pkgconfig/   CAIRO_CFLAGS=/media/34GB/Arquivos-de-Programas-Linux/Cairo-1.10.0/include/  CAIRO_LIBS=/media/34GB/Arquivos-de-Programas-Linux/Cairo-1.10.0/lib/ 

After it, I issue a

make > gimp.err 2>&1 

. It complained about not finding a bunch of files, like cairo.h and other header files that are on Cairo-1.10.0/include. It should have detected them, since I passed them with CAIRO_CFLAGS. However it did not worked. Fortunately, I was able to surpass these issues creating symbolic links to these header files on /usr/local/include. Executed make again, and this time a very awkward error appeared. This are all the last lines:

gcc -g -O2 -Wall -o .libs/cairosimple cairosimple.o -pthread  /media/34GB/Arquivos-de-Programas-Linux/Cairo-1.10.0/lib/  ../pango/.libs/libpango-1.0.so  -L/media/34GB/Arquivos-de-Programas-Linux/Glib-2.47.4/lib  ../pango/.libs/libpangocairo-1.0.so  /home/leopoldo/Arquivos-de-Programas-Linux/pango-1.20.0/pango/.libs/libpangoft2-1.0.so  -L/media/34GB/Arquivos-de-Programas-Linux/Freetype-2.2.1//lib  -L/media/34GB/Arquivos-de-Programas-Linux/Fontconfig-2.4.0//lib  -L/media/34GB/Arquivos-de-Programas-Linux/Expat-1.95.4//lib  ../pango/.libs/libpangoft2-1.0.so  /home/leopoldo/Arquivos-de-Programas-Linux/pango-1.20.0/pango/.libs/libpango-1.0.so   /media/34GB/Arquivos-de-Programas-Linux/Glib-2.47.4/lib/libgobject-2.0.so  -lffi  /media/34GB/Arquivos-de-Programas-Linux/Glib-2.47.4/lib/libgmodule-2.0.so  -ldl  /media/34GB/Arquivos-de-Programas-Linux/Glib-2.47.4/lib/libglib-2.0.so  -lpthread -lrt  /media/34GB/Arquivos-de-Programas-Linux/Fontconfig-2.4.0//lib/libfontconfig.so   /media/34GB/Arquivos-de-Programas-Linux/Freetype-2.2.1//lib/libfreetype.so  -lz  /media/34GB/Arquivos-de-Programas-Linux/Expat-1.95.4//lib/libexpat.so  -lm -Wl,--rpath  -Wl,/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0//lib  -Wl,--rpath -Wl,/media/34GB/Arquivos-de-Programas-Linux/Glib-2.47.4/lib  -Wl,--rpath  -Wl,/media/34GB/Arquivos-de-Programas-Linux/Fontconfig-2.4.0//lib  -Wl,--rpath  -Wl,/media/34GB/Arquivos-de-Programas-Linux/Freetype-2.2.1//lib  -Wl,--rpath  -Wl,/media/34GB/Arquivos-de-Programas-Linux/Expat-1.95.4//lib
/usr/bin/ld: /media/34GB/Arquivos-de-Programas-Linux/Cairo-1.10.0/lib/: No such file: File format not recognized
collect2: ld returned 1 exit status
make[2]: *** [cairosimple] Error 1
make[2]: Leaving directory `/media/34GB/Arquivos-de-Programas-Linux/pango-1.20.0/examples'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/media/34GB/Arquivos-de-Programas-Linux/pango-1.20.0'
make: *** [all] Error 2 

Now with the X11 packages. My configure was

./configure --prefix=/media/34GB/Arquivos-de-Programas-Linux/Pango-1.20.0/ PKG_CONFIG_PATH=/media/34GB/Arquivos-de-Programas-Linux/Fontconfig-2.4.0/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Freetype-2.2.1/lib/pkgconfig/:/media/34GB/Arquivos-de-Programas-Linux/Glib-2.47.4/lib/pkgconfig/ --x-includes=/media/34GB/Arquivos-de-Programas-Linux/X11-1.6.7/include/:/media/34GB/Arquivos-de-Programas-Linux/Xorgproto-2018.1/include/ --x-libraries=/media/34GB/Arquivos-de-Programas-Linux/X11-1.6.7/lib/ XFT_CFLAGS=/media/34GB/Arquivos-de-Programas-Linux/Xft-2.1.12/include/ XFT_LIBS=/media/34GB/Arquivos-de-Programas-Linux/Xft-2.1.12/lib/

. Then issued a

make > gimp.err 2>&1

The first error line of the gimp.err file shows a

pangox.c:27:22: error: X11/Xlib.h: No such file or directory

. Xlib.h is on X11-1.6.7/include/X11, so I expected --x-includes to be able to see it. However, it did not. Created a sym link to it on /usr/local/include and tried again. It did not work. So now I am lost.

EDITED: The pangox.c line number 27 that generates the problem is a simple

  #include <X11/Xlib.h> 

:
Perhaps I shall try to change it?

You will get some good knowledge and benefit if you learn how to use the -L and -I flags when you use gcc.

https://www.unix.com/man-page/linux/1/x86_64-linux-gnu-gcc/
gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-pedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Umacro] [-foption...] [-mmachine-option...] [-o outfile] [@file] infile...
Linker Options
object-file-name -llibrary -nostartfiles -nodefaultlibs -nostdlib -pie -rdynamic -s -static -static-libgcc -shared -shared-libgcc -symbolic -T script -Wl,option -Xlinker option -u symbol
Directory Options
-Bprefix -Idir -iquotedir -Ldir -specs=file -I- --sysroot=dir

We see this kinds of "I tried to compile and get errors" posts all the time.

The solution is always the same.

For libs, look in your filesystem for the missing files. If they are missing, install them. If they are already installed; include the full path of the directory where the libs are installed using the -L flag.

For header files, look in your filesystem for the missing files. If they are missing, install them. If they are already installed; include the full path of the directory where the header files are installed using the -I flag.

That is all there is to it..... it is not rocket science to read the error messages, look for the missing files, install them when the are missing (if you need them) and to use the appropriate flags to includes those directories and files in your makefile or gcc command like code.