automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

distcheck and uninstall


From: Robert Collins
Subject: distcheck and uninstall
Date: Sat, 19 Sep 2009 14:16:25 +1000

It would be nice if there was an option to tell automake not to (do
'uninstall' as part of distcheck | require that uninstall leaves no
files behind)

distcheck is very useful, it catches many distribution related bugs like
missing EXTRA_DIST and so on.

However, uninstall as a target is much less valuable - most users use
external packaging systems like rpm/deb. Further to that it can be time
consuming when integrating with non automake build systems such as
MakeMaker (via a Makefile.PL and -local & -hook rules such as those
appended) to get uninstall working at all - when they neither support
uninstall nor trivially expose appropriate hooks to implement it for
them.

As it stands, making distcheck work in cross-language packages where
external build tool integration is required, is a real nuisance because
of the requirement for uninstall to both work & not leave anything
behind.

There are two projects I'm involved in that this is causing some
nuisance; one is squid, where our uninstall target deliberately leaves
behind the users configuration file - uninstall vs purge, in debian
packaging concepts. The second is subunit, where a contributor has
provided some perl bindings and tools, but MakeMaker doesn't generate an
uninstall target - and even if it did files would likely be [correctly]
left behind, because a perl config file is edited as part of install.

[Please don't let the specific examples become a bikeshed :)]

-Rob
===
all-local: perl/Makefile
        $(MAKE) -C perl all

check-local: perl/Makefile
        $(MAKE) -C perl check

clean-local:
        rm -f perl/Makefile

# Remove perl dir for VPATH builds.
distclean-local:
        -rmdir perl > /dev/null
        -rm perl/Makefile.PL > /dev/null

install-exec-local: perl/Makefile
        $(MAKE) -C perl install

mostlyclean-local:
        rm -rf perl/blib
        rm -rf perl/pm_to_blib

uninstall-local:
        -# there is no uninstall target! $(MAKE) -C perl uninstall

perl/Makefile: perl/Makefile.PL
        mkdir -p perl
        cd perl && perl Makefile.PL
        -rm perl/Makefile.old > /dev/null

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]