From owner-freebsd-hackers@FreeBSD.ORG Wed Nov 6 23:30:40 2013 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2D39CCB6; Wed, 6 Nov 2013 23:30:40 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id E406C27C8; Wed, 6 Nov 2013 23:30:38 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id 3AF677300A; Thu, 7 Nov 2013 00:32:29 +0100 (CET) Date: Thu, 7 Nov 2013 00:32:29 +0100 From: Luigi Rizzo To: Brooks Davis Subject: Re: Using bsd.prog.mk in a project with multiple binaries Message-ID: <20131106233229.GA44585@onelab2.iet.unipi.it> References: <20131106164526.GV11443@kiwi.coupleofllamas.com> <20131106222531.GF91063@lor.one-eyed-alien.net> <20131106230636.GG91063@lor.one-eyed-alien.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20131106230636.GG91063@lor.one-eyed-alien.net> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: "freebsd-hackers@freebsd.org" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Nov 2013 23:30:40 -0000 On Wed, Nov 06, 2013 at 05:06:36PM -0600, Brooks Davis wrote: > On Wed, Nov 06, 2013 at 02:33:01PM -0800, Luigi Rizzo wrote: > > On Wed, Nov 6, 2013 at 2:25 PM, Brooks Davis wrote: > > > > > On Wed, Nov 06, 2013 at 08:45:26AM -0800, R. Tyler Croy wrote: > > > > Howdy, I'm trying to find some documentation or examples of using > > > bsd.prog.mk > > > > inside of a project with multiple binaries that need to get created. I'm > > > able > > > ... > > > This seems plusable as a layout. Note that while you need one Makefile > > > per program, you don't necessicairly need to spread the code out if you > > > don't want to. If you'd rather keep the source files in one place you > > > can use .PATH: directives to access them from a central location. > > > > > > > Since I have had a similar problem in the past... > > i am also under the impression that those Makefile must be > > in different directories -- am i wrong ? > > (in this case having all the sources in a single place does > > not help too much; and I'd rather have a single Makefile > > to handle a small set of closely related programs) > > The Makefiles do need to be in different directories since they need to > be called Makefile. I suppose you could hand roll a toplevel Makefile > that called a series of Makefile.prog1, Makefile.prog2, etc files, but > that seems not very useful. right. I was hoping that someday we could have support in bsd.prog.mk to handle multiple program names in ${PROG}, perhaps expanding the dependencies using OBJS.prog1 OBJS.prog2 ... etc .for i in ${PROG} ${i}: ${OBJS}.$i .endfor (i know it is more complex than this, with PROG_FULL and LDADD, LDFLAGS and CFLAGS which may also be per-program) cheers luigi