Zirias/xmoji

make install fails with "No rule to make target 'include/poser/core.h', needed by 'posercore_install_headers'."

Closed this issue ยท 3 comments

The make install phase crashes with the following error. This happens in both the git checkout and the 0.5 release tarball.

make[1]: *** No rule to make target 'include/poser/core.h', needed by 'posercore_install_headers'.  Stop.
make: *** [zimk/lib/platform.mk:9: install] Error 2
  • OS: Debian 12
  • All dependencies in the Readme are installed.
  • I am using GNU make and bash
kyle@didacus:~/src/xmoji-0.5$ make DESTDIR=/usr/local/stow/xmoji-0.5 -j12
   [CFG]  [release]
fatal: not a git repository (or any of the parent directories): .git
   [MD]   obj/x86_64-linux-gnu/release/src/bin/xmoji
   [MD]   obj/x86_64-linux-gnu/release/poser/src/lib/core
(Output elided)
   [AR]   lib/x86_64-linux-gnu/release/libposercore.a
   [CCLD] bin/x86_64-linux-gnu/release/xmoji
   [STRP] bin/x86_64-linux-gnu/release/xmoji
kyle@didacus:~/src/xmoji-0.5$ make DESTDIR=/usr/local/stow/xmoji-0.5 install
   [CFG]  [release]
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/certinfo_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/client_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/connection_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/daemon_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/event_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/hashtable_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/list_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/log_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/queue_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/runopts_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/server_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/service_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/stringbuilder_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/threadpool_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/timer_s.o
   [CC]   obj/x86_64-linux-gnu/release/poser/src/lib/core/util_s.o
   [CCLD] lib/x86_64-linux-gnu/release/libposercore.so.1.1.0
   [INST] /usr/local/stow/xmoji-0.5/usr/local/lib/libposercore.so.1.1.0
make[1]: *** No rule to make target 'include/poser/core.h', needed by 'posercore_install_headers'.  Stop.
make: *** [zimk/lib/platform.mk:9: install] Error 2

Removing the DESTDIR variable (which I use for GNU Stow) doesn't seem to help. Even a dry run exposes the same error message.

kyle@didacus:~/src/xmoji-0.5$ make install -n
if [ -t 1 ]; then make --no-print-directory ZIMK__ISTTY=1 install; \
	       else make --no-print-directory ZIMK__ISTTY=0 install; fi
   [CFG]  [release]
echo "   [INST] /usr/local/lib/libposercore.so.1.1.0"
install -d /usr/local/lib ; install -m755 lib/x86_64-linux-gnu/release/libposercore.so.1.1.0 /usr/local/lib
ln -fs libposercore.so.1.1.0 /usr/local/lib/libposercore.so.1
ln -fs libposercore.so.1 /usr/local/lib/libposercore.so
make[1]: *** No rule to make target 'include/poser/core.h', needed by 'posercore_install_headers'.  Stop.
make: *** [zimk/lib/platform.mk:9: install] Error 2

Please let me know if you need any more information. I just recently switched back to a lightweight desktop environment, and I'm looking forward to getting xmoji to run.

Side note: I guess I should be using PREFIX for GNU Stow, not DESTDIR. I always get the two mixed up and figure it out eventually.

Anyway, this missing rule error happens regardless of PREFIX/DESTDIR options.

Same issue, debian 12, gnu bash

   [CFG]  [release]
   [INST] /usr/local/lib/libposercore.so.1.1.0
make[1]: *** No rule to make target 'include/poser/core.h', needed by 'posercore_install_headers'.  Stop.
make: *** [zimk/lib/platform.mk:9: install] Error 2
Zirias commented

Confirmed bug, the issue is trying to install the bundled poser lib (from the git submodule) which it shouldn't do! My fault not testing installation ever since I bundled poser.

Quick fix: So far it's a single binary and nothing else, copy it manually! ๐Ÿ™ˆ๐Ÿ˜‰

I'll look into it soon, probably an easy fix in the makefiles as well. (edit: even easier than I thought ...)