Глянул сабж. Это какая-та дикая жесть. Миллионы make-файлов, которые друг друга инклюдят.
.
Решил побаловаться. Для начала глянул ./imagine/doc/INSTALL
1) Пишут, что нужно в системе прописать путь до папки ./imagine/ в переменную IMAGINE_PATH
export IMAGINE_PATH=$(pwd)
2) Нужно собрать imagine-sdk. Делается через ./imagine/bundle/all/makeAll-linux-x86-static.sh. Предварительно файл нужно сделать выполняемым через
chmod +x makeAll-linux-x86-static.sh
chmod +x runMakefiles.sh
3) Далее запускаем компиляцию нужного варианта. В моем случае это linux x86
make -f linux-x86.mk install V=1 -j4
Вот тут началась дичь. Сборщик внезапно потерял у меня в системе хедеры для glib-2.0 и dbus-1. Пришлось прописать в ./imagine/make/common.mk после кучи ifndef ... endif
CPPFLAGS += -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -lglib-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -ldbus-1
При этом провославно правильный вариант через pkg-config возвращает пустоту, подозреваю в одном из make-файла затираются какие-то важные переменные.
Дальше ругань пошла на тему "Не нашел хедеров для блютуза, не нашел хедеров для libarchive, не нашел хедеров для dbus-glib-1".
После установки нужных пакетов, сборка пошла дальше и БАЦ, вывалилось на ошибках:
In file included from ./include/imagine/data-type/image/LibPNG.hh:24:0,
from ./src/data-type/image/LibPNG.cc:18:
./src/data-type/image/LibPNG.cc: In function ‘void png_err(png_const_structrp)’:
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1939:34: error: redefinition of ‘void png_err(png_const_structrp)’
# define png_chunk_error(s1,s2) png_err(s1)
^
./src/data-type/image/LibPNG.cc:42:19: note: in expansion of macro ‘png_chunk_error’
CLINK void PNGAPI png_chunk_error(png_const_structrp png_ptr, png_const_charp error_message)
^
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1938:28: note: ‘void png_err(png_const_structrp)’ previously defined here
# define png_error(s1,s2) png_err(s1)
^
./src/data-type/image/LibPNG.cc:34:19: note: in expansion of macro ‘png_error’
CLINK void PNGAPI png_error(png_const_structrp png_ptr, png_const_charp error_message)
^
./src/data-type/image/LibPNG.cc: At global scope:
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1951:32: error: expected unqualified-id before ‘void’
# define png_warning(s1,s2) ((void)(s1))
^
./src/data-type/image/LibPNG.cc:51:19: note: in expansion of macro ‘png_warning’
CLINK void PNGAPI png_warning(png_const_structrp png_ptr, png_const_charp warning_message)
^
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1951:32: error: expected ‘)’ before ‘void’
# define png_warning(s1,s2) ((void)(s1))
^
./src/data-type/image/LibPNG.cc:51:19: note: in expansion of macro ‘png_warning’
CLINK void PNGAPI png_warning(png_const_structrp png_ptr, png_const_charp warning_message)
^
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1951:32: error: expected ‘)’ before ‘void’
# define png_warning(s1,s2) ((void)(s1))
^
./src/data-type/image/LibPNG.cc:51:19: note: in expansion of macro ‘png_warning’
CLINK void PNGAPI png_warning(png_const_structrp png_ptr, png_const_charp warning_message)
^
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1952:38: error: expected unqualified-id before ‘void’
# define png_chunk_warning(s1,s2) ((void)(s1))
^
./src/data-type/image/LibPNG.cc:57:19: note: in expansion of macro ‘png_chunk_warning’
CLINK void PNGAPI png_chunk_warning(png_const_structrp png_ptr, png_const_charp warning_message)
^
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1952:38: error: expected ‘)’ before ‘void’
# define png_chunk_warning(s1,s2) ((void)(s1))
^
./src/data-type/image/LibPNG.cc:57:19: note: in expansion of macro ‘png_chunk_warning’
CLINK void PNGAPI png_chunk_warning(png_const_structrp png_ptr, png_const_charp warning_message)
^
/home/sinka/imagine-sdk/linux-x86/lib/pkgconfig/../../include/libpng16/png.h:1952:38: error: expected ‘)’ before ‘void’
# define png_chunk_warning(s1,s2) ((void)(s1))
^
./src/data-type/image/LibPNG.cc:57:19: note: in expansion of macro ‘png_chunk_warning’
CLINK void PNGAPI png_chunk_warning(png_const_structrp png_ptr, png_const_charp warning_message)
^
/media/nfs-mount/media/4tb01/games/emuls/multi/emu-ex-plus-alpha-git/imagine//make/common.mk:32: ошибка выполнения рецепта для цели «build/linux-x86/obj/data-type/image/LibPNG.o»
make: *** [build/linux-x86/obj/data-type/image/LibPNG.o] Ошибка 1
На этом уже лень было гуглить проблему и ковырять сами исходники.
В целом автору бы подружиться с cmake'ом, кучу проблем можно было бы избежать.
з.ы. на гитхабе отметил проект, как будет время - обязательно что-нибудь придумаю для сборки проекта.