mingw-cross-env-list
[Top][All Lists]
Advanced

[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
---<<(())>>---



reply via email to

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