why :: in ports makefile ?

Grzegorz Blach magik at roorback.net
Fri Mar 23 14:33:39 UTC 2012


On 03/23/2012 03:28 PM, Michael Scheidell wrote:
> 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 `man make`

      :     A target is considered out-of-date if its modification time
	   is less than those of any of its sources. Sources for a
            target accumulate over dependency lines when this operator
            is used. The target is removed if make is interrupted.

      ::    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.





More information about the freebsd-ports mailing list