From owner-freebsd-stable@FreeBSD.ORG Tue Apr 4 21:52:35 2006 Return-Path: X-Original-To: freebsd-stable@FreeBSD.org Delivered-To: freebsd-stable@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 62D2516A41F for ; Tue, 4 Apr 2006 21:52:35 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from anuket.mj.niksun.com (gwnew.niksun.com [65.115.46.162]) by mx1.FreeBSD.org (Postfix) with ESMTP id F04E943D49 for ; Tue, 4 Apr 2006 21:52:34 +0000 (GMT) (envelope-from jkim@FreeBSD.org) Received: from niksun.com (anuket [10.70.0.5]) by anuket.mj.niksun.com (8.13.1/8.13.1) with ESMTP id k34LqScl069842; Tue, 4 Apr 2006 17:52:28 -0400 (EDT) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: freebsd-stable@FreeBSD.org Date: Tue, 4 Apr 2006 17:52:14 -0400 User-Agent: KMail/1.6.2 References: <20060404160100.U76190@goodwill.io.com> <200604041726.17120.jkim@FreeBSD.org> <20060404163058.J76542@goodwill.io.com> In-Reply-To: <20060404163058.J76542@goodwill.io.com> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <200604041752.15909.jkim@FreeBSD.org> X-Virus-Scanned: ClamAV 0.88/1375/Tue Apr 4 10:55:06 2006 on anuket.mj.niksun.com X-Virus-Status: Clean Cc: Lars Eighner Subject: Re: Is Makefile.inc1 in 6 wrong? X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 Apr 2006 21:52:35 -0000 On Tuesday 04 April 2006 05:32 pm, Lars Eighner wrote: > On Tue, 4 Apr 2006, Jung-uk Kim wrote: > > On Tuesday 04 April 2006 05:14 pm, Lars Eighner wrote: > >> It appears to me that either I have a wrong version of awk or > >> this Makefile.inc1 is wrong: > >> > >> # > >> # $FreeBSD: src/Makefile.inc1,v 1.499.2.11 2006/04/04 14:24:03 > >> glebius Exp $ # > >> > >> > >> > >> MAKEOBJDIRPREFIX?= /usr/obj > >> .if !defined(OSRELDATE) > >> .if exists(/usr/include/osreldate.h) > >> OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { > >> print $$3 }' \ /usr/include/osreldate.h > >> .else > >> OSRELDATE= 0 > >> > >> > >> In particular with the double dollar sign in the awk statement, > >> I get no return, therefore OSRELDATE gets set to 0. The awk > >> statement also fails from the command line. But if I use only > >> one $, the awk statement succeeds. > >> > >> Is there a reason for the double dollar sign? > > > > Yes. See make(1): > > > > $ A single dollar sign `$', i.e. `$$' expands to a single > > dollar sign. > > Then why does it get the wrong answer? Because you ran it from command line. ;-) You can copy and paste the same lines to *Makefile* like this: ------------ .if !defined(OSRELDATE) .if exists(/usr/include/osreldate.h) OSRELDATE!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \ /usr/include/osreldate.h .else OSRELDATE= 0 .endif .endif all: @echo "reldate = ${OSRELDATE}" ------------ and run make. You will see something like this (depending on your header file): %make reldate = 600034 > Also is there a difference when the accent mark is used in front > instead of a real single quote? Where do you see it? Jung-uk Kim