Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Mar 2012 07:37:57 -0700
From:      "Jason Helfman" <jhelfman@e-e.com>
To:        "Michael Scheidell" <scheidell@FreeBSD.org>
Cc:        ports@freebsd.org
Subject:   Re: why :: in ports makefile ?
Message-ID:  <a388d035554cac675d983f40d131a030.squirrel@mail.experts-exchange.com>
In-Reply-To: <4F6C8893.6040005@FreeBSD.org>
References:  <4F6C8893.6040005@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> I have never seen this before, and I wanted to know what it does.
>
> diff -ruN /tmp/p5-Mail-SpamAssassin.org/Makefile
> /tmp/p5-Mail-SpamAssassin/Makefile
> --- /tmp/p5-Mail-SpamAssassin.org/Makefile	2012-02-08 00:17:28.000000000
> +0900
> +++ /tmp/p5-Mail-SpamAssassin/Makefile	2012-03-06 08:55:28.445163638 +0900
> @@ -219,7 +219,7 @@
>   .endif
>   	@${INSTALL_DATA} ${WRKSRC}/spamc/libspamc.h ${PREFIX}/include
>
> -post-install:
> +post-install::
>   .if defined (WITH_SPAMC)
>   	@${STRIP_CMD} ${PREFIX}/bin/spamc
>   .endif
>
> (this patch was sent to me by the maintainer of ja-p5-Mail-SpamAssassin.
> I suggested that he change his port to a slave port so that it would be
> easier to follow, and he has done a good job.
>
> I just wanted to know what the differences are in the port Makefile
> between a ':' and a '::'
>
> Does this have to do with slave port(ish) things? does this force it to
> execute?  what is it?
>
> Pardon my ignorance, I have just never seen this before in any port I have
> maintained, or worked on.
>
> (reference this PR for context)
>
> <http://www.freebsd.org/cgi/query-pr.cgi?pr=165765>;
>
>
>

from make manapage
(http://www.freebsd.org/cgi/man.cgi?query=make&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE&arch=default&format=html):

     ::    If no sources are specified, the target is always re-created.  
Otherwise, a target is considered out-of-date if any of its sources	 
 has been modified more recently than the target.  Sources for a
target do not accumulate over dependency lines when this operator is
used.  The target will not be removed if make is interrupted.

This is typically used in ports for pre-everything target, but have never
seen it on post-install. I don't see why the :: is necessary, either, as
':' should do in this case.

-jgh




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a388d035554cac675d983f40d131a030.squirrel>