make install fails to install man pages

Marcus Watts mdw at
Tue Jan 19 12:57:59 EST 2010

When building kexec-tools 2.0.1, I noticed that "make install"
failed to install any man pages.  Upon looking, I found that
what "make install" had tried to do was:

	for file in build/sbin/kexec .. kexec/kexec.8 kdump/kdump.8; do
	if test `dirname $file` =     "build/sbin" ; then
	if test `dirname $file` =     "build/man/man8" ; then
		mkdir -p     /tmp/kex//usr/share/man/man8/
		/usr/bin/install -c -m 644 $file /tmp/kex//usr/share/man/man8/

Since the man pages don't start with "build/", they don't
match the if clause so aren't installed.

Source in the makefile looks like this:
	if test `$(DIRNAME) $$file` =     "$(MAN8DIR)" ; then \

A test that might better express what you are trying to do:
	if test `basename x/foo.8 .8` = foo
perhaps something like this:
	AC_CHECK_PROG([BASENAME],  basename,  basename,  "no", [$PATH])
	if test "$BASENAME" = "no"; then AC_MSG_ERROR([ basename not found]) fi
	if test `$(BASENAME) $$file .8` =     "$$file" ; then \

				-Marcus Watts

More information about the kexec mailing list