Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 Mar 2002 16:38:23 +1100
From:      "Tim J. Robbins" <tim@robbins.dropbear.id.au>
To:        cjclark@alum.mit.edu
Cc:        freebsd-standards@FreeBSD.ORG
Subject:   Re: Fw: Re: bin/11114: make(1) does not work as documented with .POSIX: target
Message-ID:  <20020303163823.A26386@descent.robbins.dropbear.id.au>
In-Reply-To: <20020302163037.M66092@blossom.cjclark.org>; from crist.clark@attbi.com on Sat, Mar 02, 2002 at 04:30:37PM -0800
References:  <20020302163037.M66092@blossom.cjclark.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 02, 2002 at 04:30:37PM -0800, Crist J. Clark wrote:

> Could someone here remark on the accuracy of the submitters claim?
> Basically, the submitter believes that if one defines the '.POSIX'
> target in his local makefile, he should get the desired
> behavior. However, FreeBSD is currently set up such that if '.POSIX'
> is the first target in sys.mk, one gets the POSIX behavior.

Yes, the submitter's claim is correct, and the current behaviour of make
is wrong.

I can't think of an elegant way to solve this problem, though. It requires
scanning the makefile given on the command line for the special .POSIX
target before we include sys.mk. Doing this on files you can't seek on is
messy (standard input).

The workaround is to use:
make -f mymakefile %POSIX=1003.2


Tim

 
> ----- Forwarded message from Jens Schweikhardt <schweikh@schweikhardt.net> -----
> 
> Date: Sat, 23 Feb 2002 15:29:56 +0100
> From: Jens Schweikhardt <schweikh@schweikhardt.net>
> To: cjclark@alum.mit.edu
> Cc: bug-followup@freebsd.org
> Subject: Re: bin/11114: make(1) does not work as documented with .POSIX: target
> User-Agent: Mutt/1.2.5i
> In-Reply-To: <20020223000444.C16048@blossom.cjclark.org>; from crist.clark@attbi.com on Sat, Feb 23, 2002 at 12:04:44AM -0800
> 
> On Sat, Feb 23, 2002 at 12:04:44AM -0800, Crist J. Clark wrote:
> # On Fri, Feb 22, 2002 at 08:28:50PM +0100, Jens Schweikhardt wrote:
> # > Crist,
> # > 
> # > On Wed, Feb 20, 2002 at 08:23:16AM -0800, Crist J. Clark wrote:
> # > # The issue here is that the .POSIX target will not have its effect
> # > # until the makefile containing it is read. /usr/share/mk/sys.mk is the
> # > # first file read. make(1) doesn't know about anything that you have set
> # > # in your makefile yet.
> # > # 
> # > # I have no idea if that is a bug or feature. What do the standards say
> # > # (if anything)?
> # > 
> # > The POSIX 2001 Standard defines the behavior of make and mandates that
> # > the macros have the following values, when .POSIX: is specified as the
> # > first noncomment line and without prerequisites and commands:
> # 
> # Right, but what is the exact wording?
> 
> ".POSIX   The application shall ensure that this special target is specified
>           without prerequisites or commands. If it appears as the first
>           non-comment line in the makefile, make shall process the makefile
>           as specified by this section; otherwise, the behavior of make is
>           unspecified."
> 
> Later on it mentions the list of variables and their values.
> 
> # All of this does work when the
> # ".POSIX" target is set in sys.mk. In exactly which makefile is the
> # ".POSIX" target supposed to work?
> 
> The application programmer's. See the example in the PR.
> 
> # If it is in the local one, this is a
> # real problem. Goes against the whole way makefiles are processed.
> 
> I'm not sure what you mean with "local makefile".
> 
> Regards,
> 
> 	Jens
> -- 
> Jens Schweikhardt http://www.schweikhardt.net/
> SIGSIG -- signature too long (core dumped)
> 
> ----- End forwarded message -----
> 
> -- 
> Crist J. Clark                     |     cjclark@alum.mit.edu
>                                    |     cjclark@jhu.edu
> http://people.freebsd.org/~cjc/    |     cjc@freebsd.org
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-standards" in the body of the message

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-standards" in the body of the message




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