From owner-freebsd-arch@FreeBSD.ORG Fri Feb 6 03:30:52 2015 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 04FD6BFF for ; Fri, 6 Feb 2015 03:30:52 +0000 (UTC) Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com [209.85.213.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C0621A3D for ; Fri, 6 Feb 2015 03:30:51 +0000 (UTC) Received: by mail-ig0-f171.google.com with SMTP id h15so4745922igd.4 for ; Thu, 05 Feb 2015 19:30:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=g1NUNFmZHu2qz+JDvn8EdUXE3slDrBH4J25US3QF984=; b=BD+3wtyuMizPd3nfpAxZqu4q2NGQZi5KbjAjKtBhX2t7C3/GCE6sgk1BZEsyVUuNzc x5yz1H4tyyaV1Ad50LHU9o3nMP6ggd5wD5xl07GBp4+hp5/ThzkpT/DXWPrS7ZLvv7Za 5yUbPF1Rb6mf+4P1PoqN+RU+fs94uSByqSXnslOvGiIiUXyMcawsHBpV1y1ULomewDFh ihiR31FW3f0yPMx5nOzdM3lJdADiAqzGlodB2h3NgPk51YC8KgIoTlcrMgT8dNjVhWb7 txy2KBBCO+NuO5bo63Fcmo5Dkb2d5N2riIuejDSI/xp8sGBXrTqm6zQNOBwaELArhNfK 78Ow== X-Gm-Message-State: ALoCoQl5AvK7gLP08TTOYdRv3UvsCV0gzmKc+Xvfsu7Mldwo9x4AUWc5JdO5SFmDtalYJGZYDWA0 X-Received: by 10.42.145.5 with SMTP id d5mr10858727icv.8.1423193445408; Thu, 05 Feb 2015 19:30:45 -0800 (PST) Received: from netflix-mac-wired.bsdimp.com ([50.253.99.174]) by mx.google.com with ESMTPSA id c6sm620195ioe.37.2015.02.05.19.30.44 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 05 Feb 2015 19:30:44 -0800 (PST) Sender: Warner Losh Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\)) Subject: Re: Better way to do conditional inclusion in make From: Warner Losh In-Reply-To: Date: Thu, 5 Feb 2015 20:30:44 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <4B573F3A-B1BA-4D6E-B2DB-5EA56ECF0321@bsdimp.com> References: <39C20BA1-E6B1-4DAE-95BB-8011A0A64D54@bsdimp.com> <54D40DC4.9070907@freebsd.org> <5180.1423185968@chaos> To: NGie Cooper X-Mailer: Apple Mail (2.2070.6) Cc: "freebsd-arch@freebsd.org" , "Simon J. Gerraty" X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Feb 2015 03:30:52 -0000 > On Feb 5, 2015, at 6:39 PM, NGie Cooper wrote: >=20 > On Thu, Feb 5, 2015 at 5:26 PM, Simon J. Gerraty = wrote: >> NGie Cooper wrote: >>>> how does it cope with the case where a single file is dependent on = either of >>>> two options. >>>> (we have this in our tree.. not sure if it occurs in the FreeBSD = tree.) >>>> file could occur in both lists or twice in one list.. >>>=20 >>> This is a good, valid point. I think that Warner's proposal will fix >>> the simple case (using one knob), but not the more complex case. >>=20 >> FILES:=3D ${FILES:O:u} >>=20 >> should cover that case. >=20 > Yes, but not this: >=20 > .if ${MK_BAR} !=3D "no" && ${MK_FOO} !=3D "no" > FILES+=3D a_lot_of_bar_in_my_foo > .endif There=E2=80=99s very few cases of this in the tree, so who cares :) You = just add the old school .if. >>> What concerns me about the short description of the implementation, >>> (and something that I'm going to add to the phabricator review) is >>> that this will: >>>=20 >>> 1. Break using FILESGROUPS >>=20 >> Why? >=20 > The same reason why bsd.progs.mk didn't work with bsd.prog.mk on > FreeBSD out of the box originally -- defaults: bsd.progs.mk is evil and should die :) I tried to leave this line out, = but couldn=E2=80=99t :) > 10 FILESGROUPS?=3D FILES > 11 > 12 .for group in ${FILESGROUPS} > 13 buildfiles: ${${group}} > 14 .endfor > 15 >=20 > Warner's change (based on what I understand, again I haven't looked at > the review yet=E2=80=A6) You should, it would answer why this isn=E2=80=99t an issue. > would require setting FILESGROUPS explicitly. So if > you had a Makefile snippet that defines the non-default FILESGROUPS > already, it will break that usecase. Why? I don=E2=80=99t set why it matters at all. This wouldn=E2=80=99t = affect the FILES variable expansion in line 13 at all. How would it break? >>> 2. Requires creating snippets for dealing with magic in bsd.*.mk (I >>> wouldn't want this magic going into the general purpose snippets >>> because it would probably break backwards compatibility). >>=20 >> Not necessarily eg. if you clean/simplify the list after building it. >=20 > I'll delay my reply on this because my other replies might change my = question. OK. Warner