In a Makefileam, I have the following (summary):
pkglibdir = $(cups_conf_serverbin)
cupsexec_filterdir = $(pkglibdir)/filter
if BUILD_CUPS
cupsexec_filter_PROGRAMS = rastertoprinter commandtoepson commandtocanon
endif
Thus, if --with-cups is given to configure, AM_CONDITIONAL is used to
conditionally build some programs
The generated rule for installation in Makefilein is this:
install-cupsexec_filterPROGRAMS: $(cupsexec_filter_PROGRAMS)
$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(cupsexec_filterdir)
list='$(cupsexec_filter_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
echo $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM)
$$p $(DESTDIR)$(cupsexec_filterdir)/$$f; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p
$(DESTDIR)$(cupsexec_filterdir)/$$f; \
else :; fi; \
done
The installation directory $(DESTDIR)$(cupsexec_filterdir) will be
created *whether or not any program is built*! This should be fairly
easy to correct:
$(mkinstalldirs) $(DESTDIR)$(cupsexec_filterdir)
becomes:
if test -n '$(cupsexec_filter_PROGRAMS)'; then \
$(mkinstalldirs) $(DESTDIR)$(cupsexec_filterdir) \
fi
In the gimp-print project, due to the nature of the package, just about
every part can be compiled conditionally, because you generally only
want a driver for one printing system At the moment, every possible
installation directory is created, leaving unused empty directories
after installation
I don't have a patch, but I can make one if you would like--do I just
need to update the am files? Is automake CVS available anonymously?
Regards,
Roger
--
Roger Leigh
** Registration Number: 151826, http://counterliorg **
Need Epson Stylus Utilities? http://gimp-printsourceforgenet/
GPG Public Key: 0x25BFB848 available on public keyservers