Hi Karl, * Karl Berry wrote on Thu, Feb 18, 2010 at 06:00:08PM CET: > Here is what I've come up with for the install-info example. > Let me know if problems. > > do-install-info: foo.info > $(NORMAL_INSTALL) > # There may be a newer info file in . than in srcdir. > -if test -f foo.info; then d=.; \ > else d=$(srcdir); fi
Missing `; \' at the end so that $$d is still defined in the following $(INSTALL_DATA) line. Why is this command prefixed with a hyphen (causing errors to be ignored)? I prefer `make install' to fail if some files cannot be installed. BTW, recent Automake releases are much more reliable in denoting failure of `make install' than earlier ones; the user can still use -k for ignoring failure. Sorry for overlooking this in my previous message. > $(INSTALL_DATA) $$d/foo.info \ > $(DESTDIR)$(infodir)/foo.info FWIW, I'd quote $(DESTDIR)$(infodir) so that spaces are allowed, here and below, but I'm not sure requiring this makes sense. Packages not intending for w32 are unlikely to care. > # Run install-info only if it exists. > # Use `if' instead of just prepending `-' to the > # line so we notice real errors from install-info. > # Use `$(SHELL) -c' because some shells do not > # fail gracefully when there is an unknown command. > $(POST_INSTALL) > if $(SHELL) -c 'install-info --version' \ > >/dev/null 2>&1; then \ > install-info --dir-file=$(DESTDIR)$(infodir)/dir \ > $(DESTDIR)$(infodir)/foo.info; \ > else true; fi > Cheers, Ralf
