[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Mingw-cross-env-list] "Nothing to be done" message when trying to r
From: |
Volker Grabsch |
Subject: |
Re: [Mingw-cross-env-list] "Nothing to be done" message when trying to rebuild |
Date: |
Sun, 19 Jun 2011 11:00:01 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
Nikos Chantziaras schrieb:
> On 06/15/2011 08:37 AM, Ryan Laboucane wrote:
> >On 6/15/2011 2:30 PM, Nikos Chantziaras wrote:
> >>I made an *.mk file for libmodplug (to use it as the MOD backend of
> >>SDL_mixer.) It builds and installs fine the first time. But if I try to
> >>build it again, I get:
> >>
> >>$ make libmodplug
> >>make: Nothing to be done for `libmodplug'
> >>
> >>The only way to get it to build again is to delete
> >>./usr/installed/libmodplug. Why is that?
[...]
> Thanks. It's weird though that I can build some packages again
> without touching their mk files.
This should only be the case if all previous builds failed, or
if you modified patches or tests, or if you modified a dependency
package.
Speaking in Make language: Every package target is an alias for:
./usr/installed/<PACKAGE>
This target depends on the build recipe, the patches and the tests:
./src/<PACKAGE>.mk
./src/<PACKAGE>-*.patch
./src/<PACKAGE>-test*
So it will rebuild if you modify on of those files.
In addition, the target depends on other packages as listed
in the DEPS section of ./src/<PACKAGE>.mk:
$(PKG)_DEPS := <PACKAGE-1> <PACKAGE-2> ...
So it will also rebuild if you modified one of its dependency
packages.
Note that it does _not_ depend on the source tarball:
./pkg/<PACKAGE>-...
because this is impractical (it might have been downloaded only
partially). It is also unnecessary because of the checksum test.
That is, each package recipe ./src/<PACKAGE>.mk contains the
SHA-1 checksum of its source tarball:
$(PKG)_CHECKSUM := abf54...
In other words: If you wanted to use a modified source tarball,
you would have to modify the recipe ./src/<PACKAGE>.mk as well
(to update the checksum), so the dependency on the *.mk file
is sufficient.
Before each build, the checksum is verified. In case of a failure,
it is tried to be downloaded again. This protects mainly against
incomplete downloads from previous attempts, but also allows to
use re-uploaded (and slightly changed) source tarballs without
having to remove the previous download from ./pkg/ by hand. In
the latter case, all you'd have to do is to update the checksum.
If the (re-)download fails, an alternative URL will be checked
when provided ("$(PKG)_URL_2 := ..."). If the checksum is still
not correct, an error is thrown.
I hope this makes more clear how things are meant to work. If you
observe a different behaviour, it is a bug. In that case, please
try to reproduce it, and report it. Thanks!
Greets,
Volker
--
Volker Grabsch
---<<(())>>---