Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021 
<== Date ==> <== Thread ==>

Subject: Re: Problem with INSTALL_LOCATION and "make uninstall" in 7.0.1
From: "J. Lewis Muir" <jlmuir@imca-cat.org>
To: Ralph Lange <ralph.lange@gmx.de>
Cc: EPICS Core Talk <core-talk@aps.anl.gov>
Date: Mon, 18 Jun 2018 13:14:01 -0500
On 06/15, Ralph Lange wrote:
> The right thing would be saving the list of all installed files during the
> build and have "make uninstall" remove exactly the files that were
> installed.
> But that is actually what package managers are about, and pretty much
> out-of-scope for the build itself.

The right thing would be to make it only uninstall whatever it
installed, no more and no less.  How that is achieved is up to the
implementation.  If the build system can't correctly perform an
uninstall, then it shouldn't provide that target.  GNU Make considers
uninstall to be a standard target [1], and there's lots of non-GNU-Make
software that provides an uninstall target too, so I don't think
uninstall is out of scope for a build system.

I'm actually not a big fan, though, of an uninstall target for any
software because I think it's not always clear what the behavior should
be.  Strictly, if an install target created a directory and then created
a file in that directory, then the uninstall should remove that file
as well as the directory that got created if the directory is empty.
I'd bet some uninstall targets don't do that.  Also, when it comes
to configuration files, strictly, if the install target installed
a configuration file, then the uninstall should remove it.  That's
potentially undesirable, though, if the configuration file contains
local changes.  I've seen some projects provide an "uninstall-all" or
"uninstallall" target that *does* remove any configuration files that
were installed by the install target, and then they make the uninstall
target *not* remove any configuration files that were installed.  So,
they're trying to provide behavior in the uninstall target that does
not lose local changes, and they're providing an uninstall-all target
that really does uninstall everything that was installed including
configuration files that might contain local changes.

Lewis

[1] https://www.gnu.org/software/make/manual/html_node/Standard-Targets.html

References:
Problem with INSTALL_LOCATION and "make uninstall" in 7.0.1 Mark Rivers
Re: Problem with INSTALL_LOCATION and "make uninstall" in 7.0.1 Andrew Johnson
Re: Problem with INSTALL_LOCATION and "make uninstall" in 7.0.1 Ralph Lange

Navigate by Date:
Prev: Re: Q: Structured argument types for PVA RPC service call Michael Davidsaver
Next: wrapped shared_ptr games Michael Davidsaver
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021 
Navigate by Thread:
Prev: Re: Problem with INSTALL_LOCATION and "make uninstall" in 7.0.1 Ralph Lange
Next: Re: Problem with INSTALL_LOCATION and "make uninstall" in 7.0.1 Dirk Zimoch
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021 
ANJ, 20 Jun 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·