From unknown Fri Jun 20 07:28:16 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#9289 <9289@debbugs.gnu.org> To: bug#9289 <9289@debbugs.gnu.org> Subject: Status: Feature request: Better 'nobase_' support for nonrecursive build system. Reply-To: bug#9289 <9289@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:28:16 +0000 retitle 9289 Feature request: Better 'nobase_' support for nonrecursive bui= ld system. reassign 9289 automake submitter 9289 Krzesimir Nowak severity 9289 wishlist thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 12 11:48:40 2011 Received: (at submit) by debbugs.gnu.org; 12 Aug 2011 15:48:40 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QrtyR-0002PW-3O for submit@debbugs.gnu.org; Fri, 12 Aug 2011 11:48:40 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Qrn9S-000842-Nc for submit@debbugs.gnu.org; Fri, 12 Aug 2011 04:31:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qrn86-0008J2-0q for submit@debbugs.gnu.org; Fri, 12 Aug 2011 04:30:10 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, RDNS_NONE,TO_NO_BRKTS_NORDNS autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:47166) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qrn85-0008Ix-VW for submit@debbugs.gnu.org; Fri, 12 Aug 2011 04:30:09 -0400 Received: from eggs.gnu.org ([140.186.70.92]:37624) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qrn84-0004Lm-Ou for bug-automake@gnu.org; Fri, 12 Aug 2011 04:30:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qrn82-0008Gc-KN for bug-automake@gnu.org; Fri, 12 Aug 2011 04:30:08 -0400 Received: from [85.183.48.167] (port=58958 helo=mail.openismus.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qrn82-0008E8-8l for bug-automake@gnu.org; Fri, 12 Aug 2011 04:30:06 -0400 Received: from [192.168.0.104] (unknown [85.183.48.167]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.openismus.com (Postfix) with ESMTPSA id 9BD6B1018057 for ; Fri, 12 Aug 2011 09:49:48 +0200 (CEST) Subject: Feature request: Better 'nobase_' support for nonrecursive build system. From: Krzesimir Nowak To: bug-automake@gnu.org Date: Fri, 12 Aug 2011 09:51:27 +0200 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.0.2 (3.0.2-3.fc15) Content-Transfer-Encoding: 7bit Message-ID: <1313135487.1756.37.camel@krnowak-computer> Mime-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -6.6 (------) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 12 Aug 2011 11:48:37 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.6 (------) Package: automake Version: 1.11.1 'nobase_' is quite a useful prefix when we want to distribute exact directory structure like it is in our code repository. But its usefullness is quite dimnished in case of nonrecursive build system generated by automake. Lets have a look at the example below: Our directory structure is as follows: / +-foo +-bar | +-baz | | +-1.x | | `-2.x | `-3.x `-4.x I'd like to put every file under `foo' directory without the `foo' directory into, say, $(datadir)/qaz. Effectively, our $(datadir)/qaz structure would look as follows: $(datadir)/qaz +-bar | +-baz | | +-1.x | | `-2.x | `-3.x `-4.x With recursive build system it was really simple - just putting Makefile.am in $(top_srcdir)/foo directory with contents as follows: list_of_files = bar/baz/1.x bar/baz/2.x bar/3.x 4.x qazdir = $(datadir)/qaz nobase_dist_qaz_DATA = $(list_of_files) In nonrecursive build system, where Makefile in only at $(top_srcdir) this is not going to work, because there is no such file like $(top_srcdir)/4.x - it is in foo directory. Also, adding `foo/' prefix to all elements of list_of_files variable won't work in the way we want, because foo directory will be put into $(datadir)/qaz. For now, as a workaround, we have to list all directories and subdirectories explicitly: qazdir = $(datadir)/qaz dist_qaz_DATA = foo/4.x qaz_bardir = $(datadir)/qaz/bar dist_qaz_bar_DATA = foo/bar/3.x qaz_bar_bazdir = $(datadir)/qaz/bar/baz dist_qaz_bar_baz_DATA = foo/bar/baz/1.x foo/bar/baz/2.x This can be bit tedious when directory structure is bit more complex - maybe some kind of script generating a filelist.am with the contents above could be employed, but it would obscure the build system more. Another solution would be just using install-{data,exec}-hook. My proposal would be maybe a special dynamic prefix like `nobasecut', where `' is a number of directories to strip from name (just like -p parameter in `patch' utility works) before installing it in target directory. That way, we could then write in our top-level Makefile.am: list_of_files = foo/bar/baz/1.x foo/bar/baz/2.x foo/bar/3.x foo/4.x qazdir = $(datadir)/qaz nobasecut1_dist_qaz_DATA = $(list_of_files) Question is if this is even possible for Automake to deduce from `nobasecut1' that one level of directories should be stripped and what additional features of make that would need? What do you think?