automake
[Top][All Lists]
Advanced

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

Re: Problem with Automake, help requested!


From: Ralf Wildenhues
Subject: Re: Problem with Automake, help requested!
Date: Thu, 8 Sep 2005 10:08:51 +0200
User-agent: Mutt/1.4.1i

Hi Stephen,

* Stephen Ellwood wrote on Thu, Sep 08, 2005 at 01:16:15AM CEST:
> 
> Im currently writing a fairly nifty software project that makes use of GNU 
> autotools extensively, although in a very basic way. My aim is to create a 
> package manager in the style of RPM via automake. Im aiming to create both a  
> *distro AND platform independent* package manager for Linux.

I won't comment much on this.  It's a separate topic, and package
dependency issues and theories have been beaten to death in some quite
imflammable discussions.  I just think it's a hard problem and requires
human interaction and work (such as: making a distribution).

I'll leave it at that and just comment on the specific issue you have:

[ `make uninstall' from a `make clean'ed and subsequently moved source
tree ]

> Unfortunately when my script jumps into /usr/share/merlin and does make 
> uninstall it triggers an error. 
> 
> Irritatingly when i perform what is essentally the same procedure by entering 
> commands manually at a terminal things work without problems.

Several comments:

- First, your moving of the source+build tree:
> cp -r ./hello-2.1.1 ~

_must_ preserve time stamps, else you'll have no joy.  For GNU coreutils
cp, you can use `-a', in general `-p', but time stamp preservation
(across system upgrades, for example, or across machines) is a tricky
issue, and can require use of `tar' or more than one method depending on
the system.  Read
  info Automake "Limitations of Usual Tools"
under `cp' and around.

- Then, it's often not possible to move the build tree.  If you move it
back to where it was when you typed `./configure', things should work.
(For example, with packages that use libtool this currently does not
work in many cases, unfortunately.)

- With well-maintained packages closely following GNU standards (haha :),
there should be another possibility to achieve what you want: instead of
saving the build tree, issue
  make install
  make uninstall
  make install

once and record what `make uninstall' does.  In theory, it should even
be possible to omit the first install step.  If the package goes as far
as setting NORMAL_INSTALL/POST_INSTALL/PRE_INSTALL and *_UNINSTALL
correctly, you should be able to divide (un)installation even further by
setting a couple of make variables and observing the runs.  Read up on
all of this in
  info standards "Managing Releases"
but be warned that not even the most GNUish of programs are likely to
obey all of these rules to the last iota.  :)
(Automake-using packages can come pretty close, though)

If you decide to follow one of the latter ideas, and then also decide to
file bugs/patches with all packages that do use autotools but not follow
all rules there, I'll be both delighted and laughing (and wishing you
good luck, of course).  :)

Cheers,
Ralf




reply via email to

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