Stefano Lattarini <stefano.lattarini@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 26 Feb 2011 15:25:39 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 26 10:25:38 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1PtM1a-0006Ks-0B for submit <at> debbugs.gnu.org; Sat, 26 Feb 2011 10:25:38 -0500 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <ludo@HIDDEN>) id 1PtM1X-0006Ke-Cj for 7995 <at> debbugs.gnu.org; Sat, 26 Feb 2011 10:25:36 -0500 X-IronPort-AV: E=Sophos;i="4.62,232,1297033200"; d="scan'208";a="92140285" Received: from reverse-83.fdn.fr (HELO nixey) ([80.67.176.83]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 26 Feb 2011 16:25:28 +0100 From: ludo@HIDDEN (Ludovic =?iso-8859-1?Q?Court=E8s?=) To: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> Subject: Re: [PATCH 1/4] Documentation for Guile support. References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> <20110220073138.GC19081@HIDDEN> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 8 =?iso-8859-1?Q?Vent=F4se?= an 219 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Date: Sat, 26 Feb 2011 16:25:26 +0100 In-Reply-To: <20110220073138.GC19081@HIDDEN> (Ralf Wildenhues's message of "Sun, 20 Feb 2011 08:31:38 +0100") Message-ID: <874o7qu8bd.fsf@HIDDEN> User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -8.7 (--------) X-Debbugs-Envelope-To: 7995 Cc: Andy Wingo <wingo@HIDDEN>, 7995 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -8.9 (--------) Hi Ralf, Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> writes: > +@example > +guile_GUILE =3D compiled-and-installed.scm > +nodist_guile_GUILE =3D not-distributed.scm > +guile_DATA =3D not-compiled.scm > +noinst_GUILE =3D compiled-but-not-installed.scm > +dist_noinst_DATA =3D just-distributed-blob.scm > + > +# object files will be installed in respective subdir of guileexecdir. > +nobase_guile_GUILE =3D installed-in-subdir/foo.scm > + > +pkgguile_GUILE =3D installed-in-package-dir.scm > +@end example Looks good to me. =E2=80=98guile-tools compile=E2=80=99 supports flags, such as warnings. Ho= w would the user specify them? Your other message mentioned GUILEFLAGS, which I thought is meant for this. Is it correct? The name =E2=80=98GUILEFLAGS=E2=80=99 could be misleading since these are f= lags for =E2=80=98guile-tools compile=E2=80=99, not for =E2=80=98guile=E2=80=99. = =E2=80=98GUILECFLAGS=E2=80=99 is already taken, so we need something else, non-ambiguous. =E2=80=98GUILEC_FLAGS=E2=80=99? =E2=80=98GUILE_COMPILE_FLAGS=E2=80=99? =E2=80=98GUILE_COMPILER_FLAGS=E2=80= =99? =E2=80=98GUILEGOFLAGS=E2=80=99? None of them is 100% satisfactory but I don=E2=80=99t have a better idea. Your other message mentioned per-target flags. I think it=E2=80=99d be =E2= =80=9Cnice to have=E2=80=9D so you can do things like: AM_GUILEGOFLAGS =3D -Wunused-toplevel -Wunused-variable guile_GUILE =3D foo.scm bar.scm baz.scm baz_scm_GOFLAGS =3D # turn off warnings for this one > +@example > +guileext_LTLIBRARIES =3D foo.la > +foo_la_SOURCES =3D foo.c > +foo_la_LDFLAGS =3D -module -avoid-version > +foo_la_LIBADD =3D $(GUILELIBS) > +AM_CFLAGS =3D $(GUILECFLAGS) > +AM_CPPFLAGS =3D $(GUILECPPFLAGS) > +@end example OK. In such a case, there would also be one or more companion .scm files, which say =E2=80=9Cdlopen foo.la=E2=80=9D. (Later we can discuss all the tricky things associated with that, such as the fact that foo.la will be installed in a dir that=E2=80=99s not in the loader=E2=80=99s search path, so you can the companion .scm file to read = =E2=80=9Cdlopen @guileextdir@/foo.la=E2=80=9D, which causes problems in the uninstalled tre= e...) > +@defmac AM_PATH_GUILE (@ovar{version}, @ovar{action-if-found}, @ > + @ovar{action-if-not-found}) OK. > +@item guiledir > +The directory name for the installation of user Guile source code. > +By default, that is @samp{$(datarootdir)/guile/site/@var{x.y}} for > +Guile versions @var{x.y} greater than 1.8, and > +@samp{$(datarootdir)/guile/site} for version 1.8. > + > +@item pkgguiledir > +This is the directory under @code{guiledir} that is named after the > +package. That is, it is @samp{$(guiledir)/$(PACKAGE)}. It is provided > +as a convenience. > + > +@item guileexecdir > +This is the directory where compiled Guile source code will be installed. > +The default is @samp{$(libdir)/guile/@var{x.y}/ccache} if a Guile Scheme > +compiler is available, and @samp{$(libdir)} otherwise. > + > +@item guileextdir > +This is the directory where Guile C extensions will be installed. > +The default is @samp{$(libdir)/guile/@var{x.y}/extensions} for versions > +@var{x.y} greater than 1.8, and @samp{$(libdir)} otherwise. OK. Thanks! Ludo=E2=80=99.
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 26 Feb 2011 15:02:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 26 10:02:47 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1PtLfT-0005p1-0p for submit <at> debbugs.gnu.org; Sat, 26 Feb 2011 10:02:47 -0500 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <ludo@HIDDEN>) id 1PtLfQ-0005op-MU for 7995 <at> debbugs.gnu.org; Sat, 26 Feb 2011 10:02:45 -0500 X-IronPort-AV: E=Sophos;i="4.62,232,1297033200"; d="scan'208";a="92139841" Received: from reverse-83.fdn.fr (HELO nixey) ([80.67.176.83]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 26 Feb 2011 16:02:37 +0100 From: ludo@HIDDEN (Ludovic =?iso-8859-1?Q?Court=E8s?=) To: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> Subject: Re: bug#7995: Guile support in Automake References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 8 =?iso-8859-1?Q?Vent=F4se?= an 219 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu Date: Sat, 26 Feb 2011 16:02:37 +0100 In-Reply-To: <20110220073036.GB19081@HIDDEN> (Ralf Wildenhues's message of "Sun, 20 Feb 2011 08:30:36 +0100") Message-ID: <8762s6vnxu.fsf@HIDDEN> User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -8.0 (--------) X-Debbugs-Envelope-To: 7995 Cc: Andy Wingo <wingo@HIDDEN>, 7995 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -8.4 (--------) Hi Ralf, Andy already answered most of your questions, I think. Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> writes: > - The current tests assume _GUILE sources are distributed by default; > OTOH, _LISP are not. Rationale for this semantic difference? In a typical project, 90% of the .scm files are hand-written, and 10% are not (generated by AC_CONFIG_FILES, for instance.) The hand-written source files must of course be distributed. So I think it makes sense to have =E2=80=98dist_=E2=80=99 be the default. Thanks, Ludo=E2=80=99.
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 20 Feb 2011 12:43:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 20 07:43:28 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1Pr8dL-0004GI-UL for submit <at> debbugs.gnu.org; Sun, 20 Feb 2011 07:43:28 -0500 Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62] helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <wingo@HIDDEN>) id 1Pr7lB-0002Ji-7D for 7995 <at> debbugs.gnu.org; Sun, 20 Feb 2011 06:47:30 -0500 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 9C7742CAF; Sun, 20 Feb 2011 06:48:34 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=K0txOfO3RM3WeGD1s89oFLh5emk=; b=u+ualw Pc3rpdvQYIpMzMXq+qk0e/0KVF432+OAuigmWkDROrGZbLRx6o4N3IuuH46Q8S2J 1oEMajwEkrIZT0Ol3bNwbqZJ4NkMnNtOzczow2u0thxtCkuq1R4UFfC5CE9juX3m llccvJgKXijWQgfW6iUL8/ENLbSmQIVKUp/2Q= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=wjRo4zdax0X4HEIJ8keGLxS2Zc4j+TSQ +hG359GZAatiPokKs/wlyOfVW090c/U6VSsqTzWQ3nASvojQgV+b7SNGFlRZ5nlv zKiFDVo7r+VA626PqmjMx29Th6yrwlJdEqWznK0juSkxQyNPuCpZ4rDwFszPeIMy NCZEdf1XjNs= Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 01B4F2CAE; Sun, 20 Feb 2011 06:48:31 -0500 (EST) Received: from unquote.localdomain (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id EDFAE2CAD; Sun, 20 Feb 2011 06:48:28 -0500 (EST) From: Andy Wingo <wingo@HIDDEN> To: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> Subject: Re: bug#7995: Guile support in Automake References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> Date: Sun, 20 Feb 2011 12:52:32 +0100 In-Reply-To: <20110220073036.GB19081@HIDDEN> (Ralf Wildenhues's message of "Sun, 20 Feb 2011 08:30:36 +0100") Message-ID: <m3oc66zzwf.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Pobox-Relay-ID: 573A3B8C-3CE7-11E0-838B-AF401E47CF6F-02397024!a-pb-sasl-sd.pobox.com X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 7995 X-Mailman-Approved-At: Sun, 20 Feb 2011 07:43:26 -0500 Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, 7995 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -2.6 (--) Ralf, you are a hero. On Sun 20 Feb 2011 08:30, Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> writes: > So what I would like to ask from readers at this point is: > please go through the doc changes and let's discuss them first. Will reply to that patch. > Also, it is important to not step on guile/meta/guile.m4 toes (or vice > versa), so some checking for that is prodent. When we know what is > desired, the tests should be amended/fixed to cover that, and then we > can fix the implementation to follow. What would it mean for AM_PATH_GUILE to step on guile.m4's toes? FWIW guile.m4 almost never gets updates, but today was one of those exceptions: http://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=1867d3e0195168a34cf2269c2137ac561d03a252 Basically it's something from Bruno to add GUILE_LIBS as opposed to GUILE_LTLIBS, getting the rpath stuff right. Later you say: > - The Guile manual documents Autoconf macros distributed in > $datarootdir/aclocal/guile.m4. The names in there are a bit > unfortunate in that the macros more or less use the same GUILE_* > namespace that we would like to use for some variables (which means > you cannot easily turn on checking for unexpanded macro names through > something like > m4_pattern_forbid([^GUILE_])dnl > > and there is even overlap in the semantics and shell variable names. > We need to address that; esp. since the macros shipped with Guile have > been out there for long, we cannot just expect them to disappear > instantly. There should be a clear, backward-compatible upgrade path, > and a clear intent on how usage should be in the future, for Guile > users both with and without Automake. Hmmm. So guile.m4 defines the following macros: GUILE_PROGS GUILE_FLAGS GUILE_SITE_DIR GUILE_CHECK GUILE_MODULE_CHECK GUILE_MODULE_AVAILABLE GUILE_MODULE_REQUIRED GUILE_MODULE_EXPORTS GUILE_MODULE_REQUIRED_EXPORT Of these, only the first three do any AC_SUBST operations; so we can safely say the rest don't affect this discussion, no? GUILE_PROGS does this: AC_SUBST(GUILE) AC_SUBST(GUILE_CONFIG) AC_SUBST(GUILE_TOOLS) Here AM_PATH_GUILE also defines GUILE_TOOLS, but it does the same AC_PATH_PROG check for it, so calling both macros should not present a problem. GUILE_SITE_DIR only defines GUILE_SITE, so that doesn't conflict. GUILE_FLAGS is the only one that's tricky. It defines: AC_SUBST([GUILE_CFLAGS]) AC_SUBST([GUILE_LDFLAGS]) AC_SUBST([GUILE_LIBS]) AC_SUBST([GUILE_LTLIBS]) These are all for compiling C code. Ideally one would not even have to check for these if you're not compiling C extensions. Is that possible? In any case these variables' definitions should be exactly the same as those that GUILE_FLAGS defines; though it is tough to ensure that a "guile-config compile" or "pkg-config --cflags guile-2.0" corresponds to the "guile-tools compile" output. Hummm. > If you prefer, I can also put them in a temporary branch (which for the > moment I would expect to be rewound at some point later). Please do, if it's not very much trouble. > - Why guile_GUILE and not guile_LISP? What's the rationale for naming > it differently, and what's the rationale for actually treating it > differently? This question has two parts: LISP is treated by emacs > not guile-tools, and IIUC then the idea was that GUILE is compiled > already at 'make all' time and not just at 'make install' time, right? > Is the latter part just "nice to have" or an important feature? I think that it is useful to compile at "make all" time, yes. You can run programs uninstalled in many cases, with an environment that picks up the compiled ".go" files from the uninstalled tree. Compiling can also show warnings -- of course if it doesn't compile at all, that's useful to know; but furthermore there are the -W warnings. > - The current tests assume _GUILE sources are distributed by default; > OTOH, _LISP are not. Rationale for this semantic difference? It seems more useful. I don't see any particular affinity between Guile and Elisp, by the way; we might as well compare to Python, which does dist by default. > - I renamed guileextensiondir from earlier suggestions to guileextdir, > both for brevity, and to avoid the question of whether there is a > trailing 's' in the name. OK? Sounds good. > - I haven't yet considered the handling of flags to uninstalled module > stuff. This is just TODO. Yeah, indeed. > - My current plan is to either not provide something like > foo_scm_GUILEFLAGS = override for $(AM_GUILEFLAGS) > > or to not let it cause renamed .go files. Do you think users will > need per-target guile-tools compile flags? Because if they do, then > we need to document this stuff, and that it's not in line with how > Automake operates elsewhere, etc. I think we would be fine without per-target compile flags. Regards, Andy -- http://wingolog.org/
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 20 Feb 2011 11:49:38 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 20 06:49:38 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1Pr7nF-0002Mu-Lo for submit <at> debbugs.gnu.org; Sun, 20 Feb 2011 06:49:38 -0500 Received: from mail-ew0-f44.google.com ([209.85.215.44]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <stefano.lattarini@HIDDEN>) id 1Pr7nC-0002Mh-UO for 7995 <at> debbugs.gnu.org; Sun, 20 Feb 2011 06:49:36 -0500 Received: by ewy8 with SMTP id 8so2297068ewy.3 for <7995 <at> debbugs.gnu.org>; Sun, 20 Feb 2011 03:49:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=XfkZlMEH/PVmnOPHYwHBtlBH8qOOn1JutnWCGygUueo=; b=oV5BPxMu2U5x7GcIY0vRBWEPQiXYDWbLqysxTPdJqvA64uy4OEPm53hhS61+DWLygN 3MWhLQOXmYhEezSa9lyhDvEMHx+lcT9W0BndA2A123/VPEfvXDyEzyrlxkJMivIaxLMx 5gCeoEuM1Jy5TPUkGYADxsEb/W5SlCTIUJLLg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; b=xhQto17YYTkw0tRWbcQjRXSQLjKL9upLXHBougepcp/zzf3MopOs8uBycTeyMmnLkx NAGsyhXo49dGQC8aPAnxuusQsO5O1/dFi2BvqCdulFlalesh4JOsjMVpoORu8aoMiH4s Afa7Ojljj1cBWZzK4nAb9OTcLi9e7SYclANS0= Received: by 10.213.9.66 with SMTP id k2mr308145ebk.40.1298202567974; Sun, 20 Feb 2011 03:49:27 -0800 (PST) Received: from bigio.localnet (host158-37-dynamic.116-80-r.retail.telecomitalia.it [80.116.37.158]) by mx.google.com with ESMTPS id t5sm3816021eeh.14.2011.02.20.03.49.25 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 20 Feb 2011 03:49:26 -0800 (PST) From: Stefano Lattarini <stefano.lattarini@HIDDEN> To: 7995 <at> debbugs.gnu.org Subject: Re: bug#7995: [PATCH 2/4] Testsuite coverage for Guile support. Date: Sun, 20 Feb 2011 12:49:13 +0100 User-Agent: KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> <20110220073158.GD19081@HIDDEN> In-Reply-To: <20110220073158.GD19081@HIDDEN> MIME-Version: 1.0 Content-Type: Text/Plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Message-Id: <201102201249.14216.stefano.lattarini@HIDDEN> X-Spam-Score: -3.8 (---) X-Debbugs-Envelope-To: 7995 Cc: Andy Wingo <wingo@HIDDEN>, Ralf Wildenhues <Ralf.Wildenhues@HIDDEN>, =?iso-8859-1?q?Court=E8s?= <ludo@HIDDEN>, Ludovic X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -3.8 (---) Hi Ralf. Knowing almost nothing about guile, I'm not able to help in the discussion of design/implementation, but I'll throw in my two cents w.r.t. the testsuite additions ... On Sunday 20 February 2011, Ralf Wildenhues wrote: > * tests/guile1.test, tests/guile2.test, tests/guile3.test, > tests/guile4.test: New tests. > * tests/Makefile.am (TESTS, XFAIL_TESTS): Update. > --- > ChangeLog | 5 ++ > tests/Makefile.am | 8 +++ > tests/Makefile.in | 7 ++- > tests/guile1.test | 54 ++++++++++++++++++++++ > tests/guile2.test | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > tests/guile3.test | 91 ++++++++++++++++++++++++++++++++++++ > tests/guile4.test | 48 +++++++++++++++++++ > Couldn't we use more expressive/clean names for the tests? Suggestions below. > 7 files changed, 344 insertions(+), 1 deletions(-) > create mode 100755 tests/guile1.test > create mode 100755 tests/guile2.test > create mode 100755 tests/guile3.test > create mode 100755 tests/guile4.test > > diff --git a/ChangeLog b/ChangeLog > index c338e8a..5483ce4 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,5 +1,10 @@ > 2011-02-20 Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> > > + Testsuite coverage for Guile support. > + * tests/guile1.test, tests/guile2.test, tests/guile3.test, > + tests/guile4.test: New tests. > + * tests/Makefile.am (TESTS, XFAIL_TESTS): Update. > + > Documentation for Guile support. > * doc/automake.texi (Guile): New chapter. > (Top, Other GNU Tools): Update menus. > diff --git a/tests/Makefile.am b/tests/Makefile.am > index e3eb9e9..b993678 100644 > --- a/tests/Makefile.am > +++ b/tests/Makefile.am > @@ -24,6 +24,10 @@ all.test \ > auxdir2.test \ > cond17.test \ > gcj6.test \ > +guile1.test \ > +guile2.test \ > +guile3.test \ > +guile4.test \ > override-conditional-2.test \ > txinfo5.test > > @@ -460,6 +464,10 @@ gnuwarn2.test \ > gnits.test \ > gnits2.test \ > gnits3.test \ > +guile1.test \ > +guile2.test \ > +guile3.test \ > +guile4.test \ > header.test \ > help.test \ > help2.test \ > diff --git a/tests/Makefile.in b/tests/Makefile.in > index 1f367cd..e449137 100644 > --- a/tests/Makefile.in > +++ b/tests/Makefile.in > @@ -284,7 +284,8 @@ top_srcdir = @top_srcdir@ > MAINTAINERCLEANFILES = $(parallel_tests) $(instspc_tests) > EXTRA_DIST = ChangeLog-old gen-parallel-tests instspc-tests.sh \ > $(TESTS) > -XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test \ > +XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test guile1.test \ > + guile2.test guile3.test guile4.test \ > override-conditional-2.test txinfo5.test \ > $(instspc_xfail_tests) > parallel_tests = backcompat5-p.test check-exported-srcdir-p.test \ > @@ -722,6 +723,10 @@ gnuwarn2.test \ > gnits.test \ > gnits2.test \ > gnits3.test \ > +guile1.test \ > +guile2.test \ > +guile3.test \ > +guile4.test \ > header.test \ > help.test \ > help2.test \ > diff --git a/tests/guile1.test b/tests/guile1.test > new file mode 100755 > index 0000000..94efa82 > --- /dev/null > +++ b/tests/guile1.test > @@ -0,0 +1,54 @@ > +#! /bin/sh > +# Copyright (C) 2011 Free Software Foundation, Inc. > +# > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 2, or (at your option) > +# any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > + > +# Basic Guile support: guile_GUILE. > + What about calling this test `guile-basic.test'? > +. ./defs || Exit 1 > + > +set -e > + > +cat >>configure.in <<\END > +AM_PATH_GUILE > +AC_OUTPUT > +END > + > +cat > Makefile.am <<\END > +guile_GUILE = foo.scm bar.scm baz.scm > +END > + > +: >foo.scm > +: >bar.scm > +: >baz.scm > + > +$ACLOCAL > +$AUTOCONF > +$AUTOMAKE --add-missing > + > +grep '^GUILECOMPILE' Makefile.in > grep '^GUILECOMPILE *=' ? > +grep '^GUILEFLAGS' Makefile.in > + Similarly. > +inst=`pwd`/inst > +./configure --prefix="$inst" > + > +env GUILE_TOOLS=false $MAKE -e && Exit 1 > +env AM_GUILEFLAGS=--nosuchflag $MAKE -e && Exit 1 > +env GUILEFLAGS=--nosuchflag $MAKE -e && Exit 1 > + What if guile-tools is not installed, and `GUILE_TOOLS' gets defined to `:'? Won't the commands above succed in this case? Also, maybe we could ensure also that really GUILEFLAGS really takes precedence over AM_GUILEFLAGS, and that GUILE_TOOLS can be successfully overridden by a "fake script", similarly to what is done by tests `ylflags.test' and `lflags.test'. That might be done in another test `guile-flags.test' maybe. > +$MAKE > +$MAKE install > +$MAKE distcheck > + > +: > diff --git a/tests/guile2.test b/tests/guile2.test > new file mode 100755 > index 0000000..d355518 > --- /dev/null > +++ b/tests/guile2.test > @@ -0,0 +1,132 @@ > +#! /bin/sh > +# Copyright (C) 2011 Free Software Foundation, Inc. > +# > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 2, or (at your option) > +# any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > + > +# Ensure that we compile and install Guile sources properly. > + What about calling this test `guile-inst-and-dist.test'? > +required='guile-tools' > +. ./defs || Exit 1 > + > +set -e > + > +cat >>configure.in <<\END > +AM_PATH_GUILE([1.8],, > + [AC_MSG_ERROR([Guile installation missing or too old for compilation], > + [77])]) > +AC_OUTPUT > +END > + > +cat > Makefile.am <<\END > +guile_GUILE = compiled-and-installed.scm > +nodist_guile_GUILE = not-distributed.scm > +guile_DATA = not-compiled.scm > +noinst_GUILE = compiled-but-not-installed.scm > +dist_noinst_DATA = just-distributed-blob.scm > +nobase_guile_GUILE = installed-in-subdir/foo.scm > +pkgguile_GUILE = installed-in-package-dir.scm > + > +not-distributed.scm: > + : >$@ > + > +CLEANFILES = not-distributed.scm > + > +check-dist: > + test -f $(distdir)/compiled-and-installed.scm > + test ! -f $(distdir)/not-distributed.scm > + test -f $(distdir)/not-compiled.scm > + test -f $(distdir)/compiled-but-not-installed.scm > + test -f $(distdir)/just-distributed-blob.scm > + test -f $(distdir)/installed-in-subdir/foo.scm > + test -f $(distdir)/installed-in-package-dir.scm > + test -z "`find $(distdir) -name \*.go`" > + I'd suggest to use: find $(distdir) -name \*.go | grep . && exit 1; : here, so that in case of failure we obtain the names/paths of the unexpected *.go files. > +END > + > +mkdir installed-in-subdir > + > +: >compiled-and-installed.scm > +: >not-compiled.scm > +: >compiled-but-not-installed.scm > +: >just-distributed-blob.scm > +: >installed-in-subdir/foo.scm > +: >installed-in-package-dir.scm > + > +$ACLOCAL > +$AUTOCONF > +$AUTOMAKE --add-missing > + > +inst=`pwd`/inst > +./configure --prefix="$inst" > +$MAKE > +test -f compiled-and-installed.go > +test -f not-distributed.go > +test ! -f not-compiled.go > +test -f compiled-but-not-installed.go > +test ! -f just-distributed-blob.go > +test -f installed-in-subdir/foo.go > +test -f installed-in-package-dir.go > + > +guile_version= > +if : new install layout; then > + guiledir=$inst/share/guile/site/$guile_version > + guileexecdir=$inst/lib/guile/$guile_version/ccache > +else > + guiledir=$inst/share/guile/site > + guileexecdir=$inst/lib > +fi > + > +$MAKE install-data > +test -f "$guiledir/compiled-and-installed.scm" > +test -f "$guiledir/not-distributed.scm" > +test ! -f "$guiledir/not-compiled.scm" > +test ! -f "$guiledir/compiled-but-not-installed.scm" > +test ! -f "$guiledir/just-distributed-blob.scm" > +test -f "$guiledir/installed-in-subdir/foo.scm" > +test -f "$guiledir/$me/installed-in-package-dir.scm" > + > +installed_go=`find "$inst" -name \*.go` > +test -z "$installed_go" > Bikeshedding here, but I'd substitue this two lines with: find "$inst" -name \*.go | grep . && Exit 1 > +$MAKE uninstall > + > +$MAKE install-exec > +if : can compile; then > + test -f "$guileexecdir/compiled-and-installed.go" > + test -f "$guileexecdir/not-distributed.go" > + test ! -f "$guileexecdir/not-compiled.go" > + test ! -f "$guileexecdir/compiled-but-not-installed.go" > + test ! -f "$guileexecdir/just-distributed-blob.go" > + test -f "$guileexecdir/installed-in-subdir/foo.go" > + test -f "$guileexecdir/$me/installed-in-package-dir.go" > + installed_scm=`find "$inst" -name \*.scm` > + test -z "$installed_scm" > +else > + installed_go=`find "$inst" -name \*.go` > + test -z "$installed_go" > See above. > +fi > + > +$MAKE clean > + > +test ! -f compiled-and-installed.go > +test ! -f not-distributed.go > +test ! -f not-compiled.go > +test ! -f compiled-but-not-installed.go > +test ! -f just-distributed-blob.go > +test ! -f installed-in-subdir/foo.go > +test ! -f installed-in-package-dir.go > + > +$MAKE check-dist > + > +$MAKE distcheck > + > +: > diff --git a/tests/guile3.test b/tests/guile3.test > new file mode 100755 > index 0000000..4be3c82 > --- /dev/null > +++ b/tests/guile3.test > @@ -0,0 +1,91 @@ > +#! /bin/sh > +# Copyright (C) 2011 Free Software Foundation, Inc. > +# > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 2, or (at your option) > +# any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > + > +# Check for Guile compiled extensions. > + What about calling this test `guile-compiled-ext.test'? > +required='guile-tools libtoolize' > +. ./defs || Exit 1 > + > +set -e > + > +cat >>configure.in <<\END > +AC_PROG_CC > +AC_PROG_LIBTOOL > +AM_PATH_GUILE > +AC_PATH_PROG([GUILE], [guile], [exit 77]) > +: "${GUILECPPFLAGS=`guile-config compile`}" > +: "${GUILECFLAGS=`guile-config compile`}" > +: "${GUILELIBS=`guile-config link`}" > +AC_SUBST([GUILECPPFLAGS]) > +AC_SUBST([GUILECFLAGS]) > +AC_SUBST([GUILELIBS]) > +AC_OUTPUT > +END > + > +cat > Makefile.am <<\END > +guileext_LTLIBRARIES = foo.la > +foo_la_SOURCES = foo.c > +foo_la_LDFLAGS = -module -avoid-version > +foo_la_LIBADD = $(GUILELIBS) > +AM_CFLAGS = $(GUILECFLAGS) > +AM_CPPFLAGS = $(GUILECPPFLAGS) > + > +guile_GUILE = load-foo.scm > + > +# Try out the uninstalled module. > +check-local: > + $(LIBTOOL) --mode=execute -dlopen foo.la $(GUILE) load-foo.scm > +# Try out the installed module. > +installcheck-local: > + $(GUILE) load-foo.scm > +END > + > +cat > load-foo.scm <<\END > +(dynamic-call "init_the_answer" (dynamic-link "foo")) > +(answer) > +END > + > +cat >foo.c <<\END > +#include <libguile.h> > + > +SCM > +the_answer (void) > +{ > + return scm_int2num (42); > +} > + > +void > +init_the_answer (void) > +{ > + scm_c_define_gsubr ("answer", 0, 0, 0, the_answer); > +} > +END > + > +inst=`pwd`/inst > + > +libtoolize --force > +$ACLOCAL > +$AUTOMAKE --add-missing > +$AUTOCONF > +./configure --prefix="$inst" > +$MAKE > +$MAKE check > +$MAKE install > +$MAKE clean > +$MAKE installcheck > +$MAKE distcheck > + > +: > diff --git a/tests/guile4.test b/tests/guile4.test > new file mode 100755 > index 0000000..47a0ad9 > --- /dev/null > +++ b/tests/guile4.test > @@ -0,0 +1,48 @@ > +#! /bin/sh > +# Copyright (C) 2011 Free Software Foundation, Inc. > +# > +# This program is free software; you can redistribute it and/or modify > +# it under the terms of the GNU General Public License as published by > +# the Free Software Foundation; either version 2, or (at your option) > +# any later version. > +# > +# This program is distributed in the hope that it will be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program. If not, see <http://www.gnu.org/licenses/>. > + > +# Per-target flags should not cause compiled Guile sources to be renamed. > + What about calling this test `guile-per-target-flags.test'? Or if that seems too long, `guile-spcflg.test'? > +required=guile-tools > +. ./defs || Exit 1 > + > +set -e > + > +cat >>configure.in <<\END > +AM_PATH_GUILE > +AC_OUTPUT > +END > + > +cat > Makefile.am <<\END > +guile_GUILE = foo.scm > +foo_scm_GUILEFLAGS = ... > +END > + > +: >foo.scm > + > +$ACLOCAL > +$AUTOCONF > +$AUTOMAKE --add-missing > + > +inst=`pwd`/inst > +./configure --prefix="$inst" > +$MAKE > +test -f foo.go > +test ! -f foo_go_foo.go > + IMHO you could err on the side of caution here, and tighten this to: test -f foo.go ls *.go | grep -v '^foo\.go$' | grep . && Exit 1 or even: test -f foo.go find . -name \*.go | grep -v '^\./foo\.go$' | grep . && Exit 1 > +$MAKE distcheck > + > +: > Also, IMHO, some deeper tests about the code in m4/guile.m4 would be required (similarly for what is done for python). Regards, Stefano
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 20 Feb 2011 07:32:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 20 02:32:50 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1Pr3mj-0005DO-GD for submit <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:32:49 -0500 Received: from mailout-de.gmx.net ([213.165.64.23]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3ma-0005D6-M6 for 7995 <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:32:48 -0500 Received: (qmail invoked by alias); 20 Feb 2011 07:32:34 -0000 Received: from xdsl-89-0-72-128.netcologne.de (EHLO localhost.localdomain) [89.0.72.128] by mail.gmx.net (mp037) with SMTP; 20 Feb 2011 08:32:34 +0100 X-Authenticated: #13673931 X-Provags-ID: V01U2FsdGVkX19XWlIrGaZX6hPGSCPaH1yKZ0W36p8IF1uAd526W0 Tq29anMLcQKEiO Received: from ralf by localhost.localdomain with local (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3mT-0005qR-Kg; Sun, 20 Feb 2011 08:32:33 +0100 Date: Sun, 20 Feb 2011 08:32:33 +0100 From: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> To: 7995 <at> debbugs.gnu.org, Ludovic =?iso-8859-1?Q?Court=E8s?= <ludo@HIDDEN>, Andy Wingo <wingo@HIDDEN> Subject: [PATCH 4/4] Implement Guile support. Message-ID: <20110220073233.GF19081@HIDDEN> References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110220073036.GB19081@HIDDEN> Organization: Institute for Numerical Simulation, University of Bonn User-Agent: Mutt/1.5.20 (2010-08-04) X-Y-GMX-Trusted: 0 X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 7995 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -2.8 (--) * automake.in: Register new language 'Guile'. (handle_guile): New function. (generate_makefile): Call it. (am_install_var): Treat 'GUILE' primary like JAVA and PYTHON. * lib/am/guile.am: New file. * lib/am/Makefile.am (dist_am_DATA): Add guile.am. --- ChangeLog | 8 ++++++++ automake.in | 36 ++++++++++++++++++++++++++++++++---- lib/am/Makefile.am | 3 ++- lib/am/Makefile.in | 3 ++- lib/am/guile.am | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 lib/am/guile.am diff --git a/ChangeLog b/ChangeLog index bd27a05..bff6c15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2011-02-20 Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> + Implement Guile support. + * automake.in: Register new language 'Guile'. + (handle_guile): New function. + (generate_makefile): Call it. + (am_install_var): Treat 'GUILE' primary like JAVA and PYTHON. + * lib/am/guile.am: New file. + * lib/am/Makefile.am (dist_am_DATA): Add guile.am. + Guile macro AM_PATH_GUILE. * m4/guile.m4 (AM_PATH_GUILE): New file, new macro. * m4/Makefile.am (dist_m4data_DATA): Add guile.m4. diff --git a/automake.in b/automake.in index ef3b8a6..240dc7f 100644 --- a/automake.in +++ b/automake.in @@ -1041,6 +1041,18 @@ register_language ('name' => 'java', 'pure' => 1, 'extensions' => ['.java', '.class', '.zip', '.jar']); +# Guile. +register_language ('name' => 'guile', + 'Name' => 'Guile', + 'config_vars' => ['GUILE_TOOLS'], + 'flags' => ['GUILEFLAGS'], + 'compile' => '$(GUILE_TOOLS) compile $(AM_GUILEFLAGS) $(GUILEFLAGS)', + 'output_flag' => '-o', + 'ccer' => 'GUILE_TOOLS', + 'compiler' => 'GUILECOMPILE', + 'pure' => 1, + 'extensions' => ['.scm', '.sls', '.sps', '.ss']); + ################################################################ # Error reporting functions. @@ -5122,6 +5134,16 @@ sub handle_python &define_variable ('py_compile', "$am_config_aux_dir/py-compile", INTERNAL); } +# Handle Guile +sub handle_guile +{ + my @guilefiles = &am_install_var ('-defaultdist', 'guile', 'GUILE', + 'noinst'); + return if ! @guilefiles; + + require_variables ($guilefiles[0][0], "Guile sources seen", TRUE, 'GUILE_TOOLS'); +} + # Handle Java. sub handle_java { @@ -7541,9 +7563,11 @@ sub am_install_var # variables, it is an error to actually define the primary. We # allow `JAVA', as it is customarily used to mean the Java # interpreter. This is but one of several Java hacks. Similarly, - # `PYTHON' is customarily used to mean the Python interpreter. + # `PYTHON' is customarily used to mean the Python interpreter, + # and `GUILE' is set by the Autoconf macros from Guile. reject_var $primary, "`$primary' is an anachronism" - unless $primary eq 'JAVA' || $primary eq 'PYTHON'; + unless $primary eq 'JAVA' || $primary eq 'PYTHON' + || $primary eq 'GUILE'; # Get the prefixes which are valid and actually used. @prefix = am_primary_prefixes ($primary, $can_dist, @prefix); @@ -7674,7 +7698,9 @@ sub am_install_var # The JAVA variable is used as the name of the Java interpreter. # The PYTHON variable is used as the name of the Python interpreter. - if (@used && $primary ne 'JAVA' && $primary ne 'PYTHON') + # The GUILE variable is used as the name of the Guile interpreter. + if (@used && $primary ne 'JAVA' && $primary ne 'PYTHON' + && $primary ne 'GUILE') { # Define it. define_pretty_variable ($primary, TRUE, INTERNAL, @used); @@ -7688,7 +7714,8 @@ sub am_install_var # Push here because PRIMARY might be configure time determined. push (@all, '$(' . $primary . ')') - if @used && $primary ne 'JAVA' && $primary ne 'PYTHON'; + if @used && $primary ne 'JAVA' && $primary ne 'PYTHON' + && $primary ne 'GUILE'; # Make the result unique. This lets the user use conditionals in # a natural way, but still lets us program lazily -- we don't have @@ -8260,6 +8287,7 @@ sub generate_makefile ($$) handle_texinfo; handle_emacs_lisp; handle_python; + handle_guile; handle_java; handle_man_pages; handle_data; diff --git a/lib/am/Makefile.am b/lib/am/Makefile.am index a255f70..ad08582 100644 --- a/lib/am/Makefile.am +++ b/lib/am/Makefile.am @@ -3,7 +3,7 @@ ## Makefile for Automake lib/am. # Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2003, 2004, 2008, -# 2009 Free Software Foundation, Inc. +# 2009, 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -34,6 +34,7 @@ depend.am \ depend2.am \ distdir.am \ footer.am \ +guile.am \ header-vars.am \ header.am \ install.am \ diff --git a/lib/am/Makefile.in b/lib/am/Makefile.in index 059ae97..f0cf036 100644 --- a/lib/am/Makefile.in +++ b/lib/am/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # Copyright (C) 1995, 1996, 1997, 1998, 1999, 2001, 2003, 2004, 2008, -# 2009 Free Software Foundation, Inc. +# 2009, 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -204,6 +204,7 @@ depend.am \ depend2.am \ distdir.am \ footer.am \ +guile.am \ header-vars.am \ header.am \ install.am \ diff --git a/lib/am/guile.am b/lib/am/guile.am new file mode 100644 index 0000000..26d92d2 --- /dev/null +++ b/lib/am/guile.am @@ -0,0 +1,35 @@ +## automake - create Makefile.in from Makefile.am +## Copyright (C) 2011 Free Software Foundation, Inc. + +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2, or (at your option) +## any later version. + +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. + +## You should have received a copy of the GNU General Public License +## along with this program. If not, see <http://www.gnu.org/licenses/>. + +if %?INSTALL% +include inst-vars.am +endif %?INSTALL% + + +## Exactly the same as data.am. +include data.am + +## ---------- ## +## Cleaning. ## +## ---------- ## + +## -------------- ## +## Distributing. ## +## -------------- ## + +if %?DIST% +DIST_COMMON += %DISTVAR% +endif %?DIST% -- 1.7.4.1.48.g5673d
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 20 Feb 2011 07:32:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 20 02:32:26 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1Pr3mM-0005Cq-4z for submit <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:32:26 -0500 Received: from mailout-de.gmx.net ([213.165.64.22]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3mK-0005Cf-Tr for 7995 <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:32:25 -0500 Received: (qmail invoked by alias); 20 Feb 2011 07:32:18 -0000 Received: from xdsl-89-0-72-128.netcologne.de (EHLO localhost.localdomain) [89.0.72.128] by mail.gmx.net (mp044) with SMTP; 20 Feb 2011 08:32:18 +0100 X-Authenticated: #13673931 X-Provags-ID: V01U2FsdGVkX197shllydp74lJCWF1szlpPMHNMPDeMuB8gJWXuwK alDkZ2eNBXLXtv Received: from ralf by localhost.localdomain with local (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3mD-0005qL-U5; Sun, 20 Feb 2011 08:32:17 +0100 Date: Sun, 20 Feb 2011 08:32:17 +0100 From: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> To: 7995 <at> debbugs.gnu.org, Ludovic =?iso-8859-1?Q?Court=E8s?= <ludo@HIDDEN>, Andy Wingo <wingo@HIDDEN> Subject: [PATCH 3/4] Guile macro AM_PATH_GUILE. Message-ID: <20110220073217.GE19081@HIDDEN> References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110220073036.GB19081@HIDDEN> Organization: Institute for Numerical Simulation, University of Bonn User-Agent: Mutt/1.5.20 (2010-08-04) X-Y-GMX-Trusted: 0 X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 7995 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -2.8 (--) * m4/guile.m4 (AM_PATH_GUILE): New file, new macro. * m4/Makefile.am (dist_m4data_DATA): Add guile.m4. --- ChangeLog | 4 +++ m4/Makefile.am | 3 +- m4/Makefile.in | 3 +- m4/guile.m4 | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 m4/guile.m4 diff --git a/ChangeLog b/ChangeLog index 5483ce4..bd27a05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2011-02-20 Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> + Guile macro AM_PATH_GUILE. + * m4/guile.m4 (AM_PATH_GUILE): New file, new macro. + * m4/Makefile.am (dist_m4data_DATA): Add guile.m4. + Testsuite coverage for Guile support. * tests/guile1.test, tests/guile2.test, tests/guile3.test, tests/guile4.test: New tests. diff --git a/m4/Makefile.am b/m4/Makefile.am index 0cf074b..fe7a8d6 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -3,7 +3,7 @@ ## Makefile for Automake m4. # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -31,6 +31,7 @@ depend.m4 \ depout.m4 \ dmalloc.m4 \ gcj.m4 \ +guile.m4 \ header.m4 \ init.m4 \ install-sh.m4 \ diff --git a/m4/Makefile.in b/m4/Makefile.in index e508848..49f46a7 100644 --- a/m4/Makefile.in +++ b/m4/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -201,6 +201,7 @@ depend.m4 \ depout.m4 \ dmalloc.m4 \ gcj.m4 \ +guile.m4 \ header.m4 \ init.m4 \ install-sh.m4 \ diff --git a/m4/guile.m4 b/m4/guile.m4 new file mode 100644 index 0000000..d16da79 --- /dev/null +++ b/m4/guile.m4 @@ -0,0 +1,63 @@ +# Guile file handling -*- Autoconf -*- + +# Copyright (C) 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PATH_GUILE([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# -------------------------------------------------------------------------- +# Adds support for distributing Guile source files and compiled sources. +# To install files, copy them to $(guiledir), using the guile_GUILE +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgguiledir), or use the +# pkgguile_GUILE automake variable. +# +# The variables $(guileexecdir) and $(guileextensiondir) are provided as +# locations to install Guile extension modules (shared libraries). +# The XXX macro is required to find the appropriate flags to compile +# extension modules. +# +# If the MINIMUM-VERSION argument is passed, AM_PATH_GUILE will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. +AC_DEFUN([AM_PATH_GUILE], +[AC_PATH_PROG([GUILE_TOOLS], [guile-tools], [:]) +am__guile_apiversion=1.6 +if test "$GUILE_TOOLS" != :; then + GUILE_VERSION=`$GUILE_TOOLS --version | sed '[s/.*\([1-9][0-9.]*\).*/\1/]'` + AS_VERSION_COMPARE([$GUILE_VERSION], [1.8], + [am__guile_apiversion=1.6], + [am__guile_apiversion=1.8], + [am__guile_apiversion=2.0]) +fi +AC_SUBST([GUILE_VERSION]) +case $am__guile_apiversion in #( +1.6) ;; #( +1.8) + guiledir='${datarootdir}'/guile/site/$GUILE_VERSION + guileexecdir='${libdir}'/guile/$GUILE_VERSION/ccache + guileextdir='${libdir}'/guile/$GUILE_VERSION/extensions + ;; #( +*) + guiledir='${datarootdir}'/guile/site/$GUILE_VERSION + guileexecdir='${libdir}' + guileextdir='${libdir}' + ;; +esac +case $am__guile_apiversion in #( +1.6) + m4_default([$3], [AC_MSG_ERROR([no working Guile installation found])]) + ;; #( +*) + $2 + ;; +esac +AC_SUBST([guiledir])dnl +AC_SUBST([pkgguiledir], ['${guiledir}'/$PACKAGE])dnl +AC_SUBST([guileexecdir])dnl +AC_SUBST([guileextdir])dnl +AC_ARG_VAR([GUILEFLAGS], [Flags for compilation of Guile source files])dnl +]) -- 1.7.4.1.48.g5673d
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 20 Feb 2011 07:32:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 20 02:32:09 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1Pr3m4-0005CP-HX for submit <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:32:09 -0500 Received: from mailout-de.gmx.net ([213.165.64.23]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3m1-0005Bs-TL for 7995 <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:32:07 -0500 Received: (qmail invoked by alias); 20 Feb 2011 07:31:59 -0000 Received: from xdsl-89-0-72-128.netcologne.de (EHLO localhost.localdomain) [89.0.72.128] by mail.gmx.net (mp001) with SMTP; 20 Feb 2011 08:31:59 +0100 X-Authenticated: #13673931 X-Provags-ID: V01U2FsdGVkX18mbZFJWtkmWVi4O8hdg/tMYGrFciWTJYvlnUHCjL 0wIWDAGtBKgyYv Received: from ralf by localhost.localdomain with local (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3lv-0005qF-2u; Sun, 20 Feb 2011 08:31:59 +0100 Date: Sun, 20 Feb 2011 08:31:59 +0100 From: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> To: 7995 <at> debbugs.gnu.org, Ludovic =?iso-8859-1?Q?Court=E8s?= <ludo@HIDDEN>, Andy Wingo <wingo@HIDDEN> Subject: [PATCH 2/4] Testsuite coverage for Guile support. Message-ID: <20110220073158.GD19081@HIDDEN> References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110220073036.GB19081@HIDDEN> Organization: Institute for Numerical Simulation, University of Bonn User-Agent: Mutt/1.5.20 (2010-08-04) X-Y-GMX-Trusted: 0 X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 7995 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -2.8 (--) * tests/guile1.test, tests/guile2.test, tests/guile3.test, tests/guile4.test: New tests. * tests/Makefile.am (TESTS, XFAIL_TESTS): Update. --- ChangeLog | 5 ++ tests/Makefile.am | 8 +++ tests/Makefile.in | 7 ++- tests/guile1.test | 54 ++++++++++++++++++++++ tests/guile2.test | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/guile3.test | 91 ++++++++++++++++++++++++++++++++++++ tests/guile4.test | 48 +++++++++++++++++++ 7 files changed, 344 insertions(+), 1 deletions(-) create mode 100755 tests/guile1.test create mode 100755 tests/guile2.test create mode 100755 tests/guile3.test create mode 100755 tests/guile4.test diff --git a/ChangeLog b/ChangeLog index c338e8a..5483ce4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2011-02-20 Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> + Testsuite coverage for Guile support. + * tests/guile1.test, tests/guile2.test, tests/guile3.test, + tests/guile4.test: New tests. + * tests/Makefile.am (TESTS, XFAIL_TESTS): Update. + Documentation for Guile support. * doc/automake.texi (Guile): New chapter. (Top, Other GNU Tools): Update menus. diff --git a/tests/Makefile.am b/tests/Makefile.am index e3eb9e9..b993678 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -24,6 +24,10 @@ all.test \ auxdir2.test \ cond17.test \ gcj6.test \ +guile1.test \ +guile2.test \ +guile3.test \ +guile4.test \ override-conditional-2.test \ txinfo5.test @@ -460,6 +464,10 @@ gnuwarn2.test \ gnits.test \ gnits2.test \ gnits3.test \ +guile1.test \ +guile2.test \ +guile3.test \ +guile4.test \ header.test \ help.test \ help2.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 1f367cd..e449137 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -284,7 +284,8 @@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = $(parallel_tests) $(instspc_tests) EXTRA_DIST = ChangeLog-old gen-parallel-tests instspc-tests.sh \ $(TESTS) -XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test \ +XFAIL_TESTS = all.test auxdir2.test cond17.test gcj6.test guile1.test \ + guile2.test guile3.test guile4.test \ override-conditional-2.test txinfo5.test \ $(instspc_xfail_tests) parallel_tests = backcompat5-p.test check-exported-srcdir-p.test \ @@ -722,6 +723,10 @@ gnuwarn2.test \ gnits.test \ gnits2.test \ gnits3.test \ +guile1.test \ +guile2.test \ +guile3.test \ +guile4.test \ header.test \ help.test \ help2.test \ diff --git a/tests/guile1.test b/tests/guile1.test new file mode 100755 index 0000000..94efa82 --- /dev/null +++ b/tests/guile1.test @@ -0,0 +1,54 @@ +#! /bin/sh +# Copyright (C) 2011 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Basic Guile support: guile_GUILE. + +. ./defs || Exit 1 + +set -e + +cat >>configure.in <<\END +AM_PATH_GUILE +AC_OUTPUT +END + +cat > Makefile.am <<\END +guile_GUILE = foo.scm bar.scm baz.scm +END + +: >foo.scm +: >bar.scm +: >baz.scm + +$ACLOCAL +$AUTOCONF +$AUTOMAKE --add-missing + +grep '^GUILECOMPILE' Makefile.in +grep '^GUILEFLAGS' Makefile.in + +inst=`pwd`/inst +./configure --prefix="$inst" + +env GUILE_TOOLS=false $MAKE -e && Exit 1 +env AM_GUILEFLAGS=--nosuchflag $MAKE -e && Exit 1 +env GUILEFLAGS=--nosuchflag $MAKE -e && Exit 1 + +$MAKE +$MAKE install +$MAKE distcheck + +: diff --git a/tests/guile2.test b/tests/guile2.test new file mode 100755 index 0000000..d355518 --- /dev/null +++ b/tests/guile2.test @@ -0,0 +1,132 @@ +#! /bin/sh +# Copyright (C) 2011 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Ensure that we compile and install Guile sources properly. + +required='guile-tools' +. ./defs || Exit 1 + +set -e + +cat >>configure.in <<\END +AM_PATH_GUILE([1.8],, + [AC_MSG_ERROR([Guile installation missing or too old for compilation], + [77])]) +AC_OUTPUT +END + +cat > Makefile.am <<\END +guile_GUILE = compiled-and-installed.scm +nodist_guile_GUILE = not-distributed.scm +guile_DATA = not-compiled.scm +noinst_GUILE = compiled-but-not-installed.scm +dist_noinst_DATA = just-distributed-blob.scm +nobase_guile_GUILE = installed-in-subdir/foo.scm +pkgguile_GUILE = installed-in-package-dir.scm + +not-distributed.scm: + : >$@ + +CLEANFILES = not-distributed.scm + +check-dist: + test -f $(distdir)/compiled-and-installed.scm + test ! -f $(distdir)/not-distributed.scm + test -f $(distdir)/not-compiled.scm + test -f $(distdir)/compiled-but-not-installed.scm + test -f $(distdir)/just-distributed-blob.scm + test -f $(distdir)/installed-in-subdir/foo.scm + test -f $(distdir)/installed-in-package-dir.scm + test -z "`find $(distdir) -name \*.go`" +END + +mkdir installed-in-subdir + +: >compiled-and-installed.scm +: >not-compiled.scm +: >compiled-but-not-installed.scm +: >just-distributed-blob.scm +: >installed-in-subdir/foo.scm +: >installed-in-package-dir.scm + +$ACLOCAL +$AUTOCONF +$AUTOMAKE --add-missing + +inst=`pwd`/inst +./configure --prefix="$inst" +$MAKE +test -f compiled-and-installed.go +test -f not-distributed.go +test ! -f not-compiled.go +test -f compiled-but-not-installed.go +test ! -f just-distributed-blob.go +test -f installed-in-subdir/foo.go +test -f installed-in-package-dir.go + +guile_version= +if : new install layout; then + guiledir=$inst/share/guile/site/$guile_version + guileexecdir=$inst/lib/guile/$guile_version/ccache +else + guiledir=$inst/share/guile/site + guileexecdir=$inst/lib +fi + +$MAKE install-data +test -f "$guiledir/compiled-and-installed.scm" +test -f "$guiledir/not-distributed.scm" +test ! -f "$guiledir/not-compiled.scm" +test ! -f "$guiledir/compiled-but-not-installed.scm" +test ! -f "$guiledir/just-distributed-blob.scm" +test -f "$guiledir/installed-in-subdir/foo.scm" +test -f "$guiledir/$me/installed-in-package-dir.scm" + +installed_go=`find "$inst" -name \*.go` +test -z "$installed_go" +$MAKE uninstall + +$MAKE install-exec +if : can compile; then + test -f "$guileexecdir/compiled-and-installed.go" + test -f "$guileexecdir/not-distributed.go" + test ! -f "$guileexecdir/not-compiled.go" + test ! -f "$guileexecdir/compiled-but-not-installed.go" + test ! -f "$guileexecdir/just-distributed-blob.go" + test -f "$guileexecdir/installed-in-subdir/foo.go" + test -f "$guileexecdir/$me/installed-in-package-dir.go" + installed_scm=`find "$inst" -name \*.scm` + test -z "$installed_scm" +else + installed_go=`find "$inst" -name \*.go` + test -z "$installed_go" +fi + +$MAKE clean + +test ! -f compiled-and-installed.go +test ! -f not-distributed.go +test ! -f not-compiled.go +test ! -f compiled-but-not-installed.go +test ! -f just-distributed-blob.go +test ! -f installed-in-subdir/foo.go +test ! -f installed-in-package-dir.go + +$MAKE check-dist + +$MAKE distcheck + +: diff --git a/tests/guile3.test b/tests/guile3.test new file mode 100755 index 0000000..4be3c82 --- /dev/null +++ b/tests/guile3.test @@ -0,0 +1,91 @@ +#! /bin/sh +# Copyright (C) 2011 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Check for Guile compiled extensions. + +required='guile-tools libtoolize' +. ./defs || Exit 1 + +set -e + +cat >>configure.in <<\END +AC_PROG_CC +AC_PROG_LIBTOOL +AM_PATH_GUILE +AC_PATH_PROG([GUILE], [guile], [exit 77]) +: "${GUILECPPFLAGS=`guile-config compile`}" +: "${GUILECFLAGS=`guile-config compile`}" +: "${GUILELIBS=`guile-config link`}" +AC_SUBST([GUILECPPFLAGS]) +AC_SUBST([GUILECFLAGS]) +AC_SUBST([GUILELIBS]) +AC_OUTPUT +END + +cat > Makefile.am <<\END +guileext_LTLIBRARIES = foo.la +foo_la_SOURCES = foo.c +foo_la_LDFLAGS = -module -avoid-version +foo_la_LIBADD = $(GUILELIBS) +AM_CFLAGS = $(GUILECFLAGS) +AM_CPPFLAGS = $(GUILECPPFLAGS) + +guile_GUILE = load-foo.scm + +# Try out the uninstalled module. +check-local: + $(LIBTOOL) --mode=execute -dlopen foo.la $(GUILE) load-foo.scm +# Try out the installed module. +installcheck-local: + $(GUILE) load-foo.scm +END + +cat > load-foo.scm <<\END +(dynamic-call "init_the_answer" (dynamic-link "foo")) +(answer) +END + +cat >foo.c <<\END +#include <libguile.h> + +SCM +the_answer (void) +{ + return scm_int2num (42); +} + +void +init_the_answer (void) +{ + scm_c_define_gsubr ("answer", 0, 0, 0, the_answer); +} +END + +inst=`pwd`/inst + +libtoolize --force +$ACLOCAL +$AUTOMAKE --add-missing +$AUTOCONF +./configure --prefix="$inst" +$MAKE +$MAKE check +$MAKE install +$MAKE clean +$MAKE installcheck +$MAKE distcheck + +: diff --git a/tests/guile4.test b/tests/guile4.test new file mode 100755 index 0000000..47a0ad9 --- /dev/null +++ b/tests/guile4.test @@ -0,0 +1,48 @@ +#! /bin/sh +# Copyright (C) 2011 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Per-target flags should not cause compiled Guile sources to be renamed. + +required=guile-tools +. ./defs || Exit 1 + +set -e + +cat >>configure.in <<\END +AM_PATH_GUILE +AC_OUTPUT +END + +cat > Makefile.am <<\END +guile_GUILE = foo.scm +foo_scm_GUILEFLAGS = ... +END + +: >foo.scm + +$ACLOCAL +$AUTOCONF +$AUTOMAKE --add-missing + +inst=`pwd`/inst +./configure --prefix="$inst" +$MAKE +test -f foo.go +test ! -f foo_go_foo.go + +$MAKE distcheck + +: -- 1.7.4.1.48.g5673d
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 20 Feb 2011 07:31:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 20 02:31:48 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1Pr3lk-0005Bb-13 for submit <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:31:48 -0500 Received: from mailout-de.gmx.net ([213.165.64.23]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3lh-0005BP-QR for 7995 <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:31:46 -0500 Received: (qmail invoked by alias); 20 Feb 2011 07:31:39 -0000 Received: from xdsl-89-0-72-128.netcologne.de (EHLO localhost.localdomain) [89.0.72.128] by mail.gmx.net (mp063) with SMTP; 20 Feb 2011 08:31:39 +0100 X-Authenticated: #13673931 X-Provags-ID: V01U2FsdGVkX19Um74RNhtUT5r+vo3FzkNx6pC2TEjNiRFu/bWuP3 UQ2dJ9nIFGnC48 Received: from ralf by localhost.localdomain with local (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3lb-0005q9-0E; Sun, 20 Feb 2011 08:31:39 +0100 Date: Sun, 20 Feb 2011 08:31:38 +0100 From: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> To: 7995 <at> debbugs.gnu.org, Ludovic =?iso-8859-1?Q?Court=E8s?= <ludo@HIDDEN>, Andy Wingo <wingo@HIDDEN> Subject: [PATCH 1/4] Documentation for Guile support. Message-ID: <20110220073138.GC19081@HIDDEN> References: <20110206222257.GF18450@HIDDEN> <20110220073036.GB19081@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110220073036.GB19081@HIDDEN> Organization: Institute for Numerical Simulation, University of Bonn User-Agent: Mutt/1.5.20 (2010-08-04) X-Y-GMX-Trusted: 0 X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 7995 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -2.8 (--) * doc/automake.texi (Guile): New chapter. (Top, Other GNU Tools): Update menus. * NEWS: Update. Initial suggestion and lots of ideas and from Andy Wingo and Ludovic Courtè. --- ChangeLog | 9 +++ NEWS | 5 ++ doc/automake.texi | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 167 insertions(+), 1 deletions(-) diff --git a/ChangeLog b/ChangeLog index 12b8e9f..c338e8a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2011-02-20 Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> + + Documentation for Guile support. + * doc/automake.texi (Guile): New chapter. + (Top, Other GNU Tools): Update menus. + * NEWS: Update. + Initial suggestion and lots of ideas and from Andy Wingo and + Ludovic Courtès. + 2011-02-16 Stefano Lattarini <stefano.lattarini@HIDDEN> Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> diff --git a/NEWS b/NEWS index a5dc93f..401d69b 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,11 @@ New in 1.11a: - New `cscope' target to build a cscope database for the source tree. +* Languages changes: + + - Support for compilation and installation of Guile source code and compiled + Guile source code via the new `GUILE' primary. + * Miscellaneous changes: - The `dist' and `dist-all' targets now can run compressors in parallel. diff --git a/doc/automake.texi b/doc/automake.texi index 474f5a1..078dfbb 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -291,6 +291,7 @@ Top * Libtool:: Libtool * Java:: Java * Python:: Python +* Guile:: Guile Building documentation @@ -2073,7 +2074,7 @@ Uniform objects are not installed either. The current primary names are @samp{PROGRAMS}, @samp{LIBRARIES}, -@samp{LTLIBRARIES}, @samp{LISP}, @samp{PYTHON}, @samp{JAVA}, +@samp{LTLIBRARIES}, @samp{LISP}, @samp{PYTHON}, @samp{GUILE}, @samp{JAVA}, @samp{SCRIPTS}, @samp{DATA}, @samp{HEADERS}, @samp{MANS}, and @samp{TEXINFOS}. @vindex PROGRAMS @@ -2081,6 +2082,7 @@ Uniform @vindex LTLIBRARIES @vindex LISP @vindex PYTHON +@vindex GUILE @vindex JAVA @vindex SCRIPTS @vindex DATA @@ -7446,6 +7448,7 @@ Other GNU Tools * Libtool:: Libtool * Java:: Java * Python:: Python +* Guile:: Guile @end menu @@ -7736,6 +7739,155 @@ Python Install Paths}. +@node Guile +@section Guile + +@cindex @code{_GUILE} primary, defined +@cindex @code{GUILE} primary, defined +@cindex Primary variable, @code{GUILE} +@vindex _GUILE + +Automake provides support for compiled Guile source files with the +@code{GUILE} primary as well as for installation of extensions modules +for Guile in a compiled language such as C. A typical setup is to call +@code{AM_PATH_GUILE} in @file{configure.ac} and use a line like the +following in @file{Makefile.am}: + +@example +guile_GUILE = foo.scm bar.sls baz.sps zork.ss +@end example + +Here's a longer example with different types of file handling: + +@example +guile_GUILE = compiled-and-installed.scm +nodist_guile_GUILE = not-distributed.scm +guile_DATA = not-compiled.scm +noinst_GUILE = compiled-but-not-installed.scm +dist_noinst_DATA = just-distributed-blob.scm + +# object files will be installed in respective subdir of guileexecdir. +nobase_guile_GUILE = installed-in-subdir/foo.scm + +pkgguile_GUILE = installed-in-package-dir.scm +@end example + +Here's an example of a typical extension module written in C: + +@example +guileext_LTLIBRARIES = foo.la +foo_la_SOURCES = foo.c +foo_la_LDFLAGS = -module -avoid-version +foo_la_LIBADD = $(GUILELIBS) +AM_CFLAGS = $(GUILECFLAGS) +AM_CPPFLAGS = $(GUILECPPFLAGS) +@end example + +When @samp{AM_PATH_GUILE} is used, the suffixes @file{.scm}, @file{.sls}, +@file{.sps}, and @file{.ss} are assumed to be Guile sources, and +compiled files will carry the @file{.go} extension. + +Any files listed in a @code{_GUILE} variable will be byte-compiled +with @command{guile-tools compile} if that is available and new enough +to compile Guile sources. + +Automake ships with an Autoconf macro called @code{AM_PATH_GUILE} +that will determine some Guile-related directory variables (see +below). If you have called @code{AM_PATH_GUILE} from +@file{configure.ac}, then you may use the variables +@code{guile_GUILE} or @code{pkgguile_GUILE} to list Guile source +files in your @file{Makefile.am}, depending on where you want your files +installed (see the definitions of @code{guiledir} and +@code{pkgguiledir} below). + +@defmac AM_PATH_GUILE (@ovar{version}, @ovar{action-if-found}, @ + @ovar{action-if-not-found}) + +Search for a Guile compiler @samp{guile-tools compile} on the system. +This macro takes three optional arguments. The first argument, if +present, is the minimum version of Guile required for this package: +@code{AM_PATH_GUILE} will skip any Guile interpreter that is older than +@var{version}. If an interpreter is found and satisfies @var{version}, +then @var{action-if-found} is run. Otherwise, @var{action-if-not-found} +is run. Without a @var{version} argument, a minimum version of 1.8 is +checked against. + +If @var{action-if-not-found} is not specified, as in the following +example, the default is to abort @command{configure}. + +@example +AM_PATH_GUILE([2.0]) +@end example + +@noindent +This is fine when Guile is an absolute requirement for the package. +If Guile >= 2.0 was only @emph{optional} to the package, +@code{AM_PATH_GUILE} could be called as follows. + +@example +AM_PATH_GUILE([2.0],, [:]) +@end example + +@code{AM_PATH_GUILE} creates the following output variables based on +the Guile installation found during configuration. +@end defmac + +@vtable @code +@item GUILE_TOOLS +The name of the @command{guile-tools} executable, or @samp{:} if no +suitable compiler could be found. + +Assuming @var{action-if-not-found} is used (otherwise @file{./configure} +will abort if Guile is absent), the value of @code{GUILE} can be used +to setup a conditional in order to disable the relevant part of a build +as follows. + +@example +AM_PATH_GUILE(,, [:]) +AM_CONDITIONAL([HAVE_GUILE], [test "$GUILE_TOOLS" != :]) +@end example + +@item GUILE_VERSION +The Guile version number, in the form @var{major}.@var{minor} +(e.g., @samp{1.8}). + +@item guiledir +The directory name for the installation of user Guile source code. +By default, that is @samp{$(datarootdir)/guile/site/@var{x.y}} for +Guile versions @var{x.y} greater than 1.8, and +@samp{$(datarootdir)/guile/site} for version 1.8. + +@item pkgguiledir +This is the directory under @code{guiledir} that is named after the +package. That is, it is @samp{$(guiledir)/$(PACKAGE)}. It is provided +as a convenience. + +@item guileexecdir +This is the directory where compiled Guile source code will be installed. +The default is @samp{$(libdir)/guile/@var{x.y}/ccache} if a Guile Scheme +compiler is available, and @samp{$(libdir)} otherwise. + +@item guileextdir +This is the directory where Guile C extensions will be installed. +The default is @samp{$(libdir)/guile/@var{x.y}/extensions} for versions +@var{x.y} greater than 1.8, and @samp{$(libdir)} otherwise. + +@c @example +@c XXX +@c @end example +@end vtable + +All these directory variables have values that start with either +@samp{$@{prefix@}} or @samp{$@{exec_prefix@}} unexpanded. This works +fine in @file{Makefiles}, but it makes these variables hard to use in +@file{configure}. This is mandated by the GNU coding standards, so +that the user can run @samp{make prefix=/foo install}. The Autoconf +manual has a section with more details on this topic +(@pxref{Installation Directory Variables, , Installation Directory +Variables, autoconf, The Autoconf Manual}). See also @ref{Hard-Coded +Install Paths}. + + @node Documentation @chapter Building documentation -- 1.7.4.1.48.g5673d
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at 7995) by debbugs.gnu.org; 20 Feb 2011 07:30:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 20 02:30:47 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1Pr3kk-0005A6-IA for submit <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:30:46 -0500 Received: from mailout-de.gmx.net ([213.165.64.23]) by debbugs.gnu.org with smtp (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3kh-00059t-OP for 7995 <at> debbugs.gnu.org; Sun, 20 Feb 2011 02:30:45 -0500 Received: (qmail invoked by alias); 20 Feb 2011 07:30:37 -0000 Received: from xdsl-89-0-72-128.netcologne.de (EHLO localhost.localdomain) [89.0.72.128] by mail.gmx.net (mp071) with SMTP; 20 Feb 2011 08:30:37 +0100 X-Authenticated: #13673931 X-Provags-ID: V01U2FsdGVkX1/gFEExYGfgMGLb78LRi7iPYIY0lObl/sMnRVgUd4 3CwsYCrupdrq/5 Received: from ralf by localhost.localdomain with local (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1Pr3ka-0005q3-HL; Sun, 20 Feb 2011 08:30:36 +0100 Date: Sun, 20 Feb 2011 08:30:36 +0100 From: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> To: 7995 <at> debbugs.gnu.org, Ludovic =?iso-8859-1?Q?Court=E8s?= <ludo@HIDDEN>, Andy Wingo <wingo@HIDDEN> Subject: Re: bug#7995: Guile support in Automake Message-ID: <20110220073036.GB19081@HIDDEN> References: <20110206222257.GF18450@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110206222257.GF18450@HIDDEN> Organization: Institute for Numerical Simulation, University of Bonn User-Agent: Mutt/1.5.20 (2010-08-04) X-Y-GMX-Trusted: 0 X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 7995 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -2.8 (--) [ http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7995 aka http://thread.gmane.org/gmane.comp.sysutils.automake.bugs/5303 ] * Ralf Wildenhues wrote on Sun, Feb 06, 2011 at 11:22:57PM CET: > Automake should support Guile. > I actually have patches for some tests, documentation and half an > implementation from last year; Here we go. For now I've done little with the patches except rebase and squash the intermediate stages, update copyright years, remove notes from git, and ensure there are no syntax errors. That means however, that nothing really works yet. It's still a total mess. So what I would like to ask from readers at this point is: please go through the doc changes and let's discuss them first. Also, it is important to not step on guile/meta/guile.m4 toes (or vice versa), so some checking for that is prodent. When we know what is desired, the tests should be amended/fixed to cover that, and then we can fix the implementation to follow. If you prefer, I can also put them in a temporary branch (which for the moment I would expect to be rewound at some point later). Here's a preliminary list of issues that I see: - Why guile_GUILE and not guile_LISP? What's the rationale for naming it differently, and what's the rationale for actually treating it differently? This question has two parts: LISP is treated by emacs not guile-tools, and IIUC then the idea was that GUILE is compiled already at 'make all' time and not just at 'make install' time, right? Is the latter part just "nice to have" or an important feature? - The current tests assume _GUILE sources are distributed by default; OTOH, _LISP are not. Rationale for this semantic difference? - Please fix errors you can find in the tests; esp. the extension module in guile3.test doesn't seem to do the right thing yet (with my unfinished implementation). - I renamed guileextensiondir from earlier suggestions to guileextdir, both for brevity, and to avoid the question of whether there is a trailing 's' in the name. OK? - The Guile manual documents Autoconf macros distributed in $datarootdir/aclocal/guile.m4. The names in there are a bit unfortunate in that the macros more or less use the same GUILE_* namespace that we would like to use for some variables (which means you cannot easily turn on checking for unexpanded macro names through something like m4_pattern_forbid([^GUILE_])dnl and there is even overlap in the semantics and shell variable names. We need to address that; esp. since the macros shipped with Guile have been out there for long, we cannot just expect them to disappear instantly. There should be a clear, backward-compatible upgrade path, and a clear intent on how usage should be in the future, for Guile users both with and without Automake. - The handling of compile and link flags is still quite suboptimal. I still need to think about that a bit more. - I haven't yet considered the handling of flags to uninstalled module stuff. This is just TODO. - My current plan is to either not provide something like foo_scm_GUILEFLAGS = override for $(AM_GUILEFLAGS) or to not let it cause renamed .go files. Do you think users will need per-target guile-tools compile flags? Because if they do, then we need to document this stuff, and that it's not in line with how Automake operates elsewhere, etc. - The register_language bits in the last patch are totally unused yet, as the machinery isn't yet able to handle languages that either don't use a linker in the end, or don't rename objects with per-target flags which is probably desirable for Guile (similar to how Python support works). I should apologize for taking totally random and unorganized notes below. They are basically just a jot-down from last year of what Andy and Ludo said. Thanks, Ralf Notes about Guile support: # set from guile-config # or from pkg-config if guile major version known .go: compiled guile files sys-dep not executable byte-code .scm: source guile files (can have other extensions) .sls .sps .ss One problem will be: when we add Go support, .go has conflicting semantics. cat > Makefile.am <<\END guile_GUILE = compiled-and-installed.scm nodist_guile_GUILE = not-distributed.scm guile_DATA = not-compiled.scm noinst_GUILE = compiled-but-not-installed.scm dist_noinst_DATA = just-distributed-blob.scm # object files will be installed in respective subdir of guileexecdir. nobase_guile_GUILE = installed-in-subdir/foo.scm pkgguile_GUILE = installed-in-package-dir.scm END # without guile compiler, just install sources # but also install objects whenever possible GUILE_TOOLS = guile-tools GUILE_TOOLS_COMPILE = $(GUILE_TOOLS) compile GUILE_COMPILE = $(GUILE_TOOLS_COMPILE) $(AM_GUILEFLAGS) $(GUILEFLAGS) $(GUILE_TOOLS_COMPILE) $(AM_GUILEFLAGS) $(GUILEFLAGS) -o $@ $< # no ordering req # no renaming foo_scm_GUILEFLAGS should not cause the output to be renamed. AM_PATH_GUILE([minimum-version], [if-available], [if-not=AC_MSG_ERROR]) # effective version: first numbers on the first line guile-tools --effective-version X.Y or guile-tools --version | sed 's/[1-9][0-9.]' error out if X.Y is < 1.8 # not: guile -c '(begin (display (effective-version)) (newline))' # .go # guile-tools compile load path # -L . -L $(srcdir) or GUILE_LOAD_PATH = a:b:c: GUILE_LOAD_COMPILED_PATH # -L is for source # -M is for output # GUILE_LOAD_PATH is for source only, lower prio than -L # GUILE_LOAD_COMPILED_PATH is for obj only .scm.go: libtool --mode=execute -dlopen foo.la guile bar.scm bar.scm: (dynamic-link "foo") make install guile bar.scm bar.scm loads foo.la bar.scm # 1.6: error # 1.8: # guiledir = $(datarootdir)/guile/site # > 1.8: # guiledir = $(datarootdir)/guile/site/X.Y # possibly version-independent # sources for users # guilepkgdir = $(guiledir)/$(PACKAGE) # # for 1.8: # guileexecdir = $(libdir) # > 1.8: # guileexecdir = $(libdir)/guile/X.Y # version-dependent # # guilesitedir = $(guiledir)/site # # guileextensiondir = $(guileexecdir)/extensions # cat > Makefile.am <<\END guile_GUILE = foo.scm bar.scm baz.scm # The next line looks wrong; should be noinst_GUILE? noinst_guile_GUILE = foo.scm bar.scm baz.scm guile_DATA = not-compiled.scm nobase_guile_GUILE = sub/foo.scm nobase_pkgguile_GUILE = sub/foo.scm # compiled object goes into subdir as well. nodist_guile_GUILE guileextension_LTLIBRARIES = foo.la foo_la_LDFLAGS = -module foo_la_LIBADD = $(GUILELIBS) foo_la_CFLAGS = $(GUILECFLAGS) foo_la_CPPFLAGS = $(GUILECPPFLAGS) AM_CPPFLAGS AM_CFLAGS # AM_LDADD # there should be an AM_LIBADD # or: in configure.ac: CFLAGS="$GUILECFLAGS $CPPFLAGS" LIBS="$GUILELIBS $LIBS"
owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.Received: (at submit) by debbugs.gnu.org; 6 Feb 2011 22:14:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 06 17:14:27 2011 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1PmCsE-0000Sq-UO for submit <at> debbugs.gnu.org; Sun, 06 Feb 2011 17:14:27 -0500 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1PmCsE-0000Sf-1W for submit <at> debbugs.gnu.org; Sun, 06 Feb 2011 17:14:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1PmD0Y-0004yJ-NP for submit <at> debbugs.gnu.org; Sun, 06 Feb 2011 17:23:03 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, T_TO_NO_BRKTS_FREEMAIL autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([199.232.76.165]:38497) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1PmD0Y-0004yD-Km for submit <at> debbugs.gnu.org; Sun, 06 Feb 2011 17:23:02 -0500 Received: from [140.186.70.92] (port=41861 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PmD0X-0008LJ-L3 for bug-automake@HIDDEN; Sun, 06 Feb 2011 17:23:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1PmD0V-0004xD-Fk for bug-automake@HIDDEN; Sun, 06 Feb 2011 17:23:01 -0500 Received: from mailout-de.gmx.net ([213.165.64.23]:39085) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1PmD0V-0004wi-29 for bug-automake@HIDDEN; Sun, 06 Feb 2011 17:22:59 -0500 Received: (qmail invoked by alias); 06 Feb 2011 22:22:57 -0000 Received: from xdsl-78-35-60-126.netcologne.de (EHLO localhost.localdomain) [78.35.60.126] by mail.gmx.net (mp011) with SMTP; 06 Feb 2011 23:22:57 +0100 X-Authenticated: #13673931 X-Provags-ID: V01U2FsdGVkX1+l/cw31PylLacXEO10/p6TzrKaRrki8gqQ1CXChj RToAkz32K2I1ry Received: from ralf by localhost.localdomain with local (Exim 4.69) (envelope-from <Ralf.Wildenhues@HIDDEN>) id 1PmD0T-0004sB-51; Sun, 06 Feb 2011 23:22:57 +0100 Date: Sun, 6 Feb 2011 23:22:57 +0100 From: Ralf Wildenhues <Ralf.Wildenhues@HIDDEN> To: bug-automake@HIDDEN Subject: Guile support in Automake Message-ID: <20110206222257.GF18450@HIDDEN> Mail-Followup-To: bug-automake@HIDDEN, Ludovic =?iso-8859-1?Q?Court=E8s?= <ludo@HIDDEN>, Andy Wingo <wingo@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit Organization: Institute for Numerical Simulation, University of Bonn User-Agent: Mutt/1.5.20 (2010-08-04) X-Y-GMX-Trusted: 0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 213.165.64.23 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 199.232.76.165 X-Spam-Score: -4.8 (----) X-Debbugs-Envelope-To: submit Cc: Andy Wingo <wingo@HIDDEN>, Ludovic =?iso-8859-1?Q?Court=E8s?= <ludo@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/pipermail/debbugs-submit> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Sender: debbugs-submit-bounces <at> debbugs.gnu.org Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org X-Spam-Score: -4.8 (----) Automake should support Guile. (From Ludovic Courtès and Andy Wingo). I actually have patches for some tests, documentation and half an implementation from last year; opening this PR now to track progress and not forget again. Thanks, Ralf
Ralf Wildenhues <Ralf.Wildenhues@HIDDEN>
:bug-automake@HIDDEN
.
Full text available.owner <at> debbugs.gnu.org, bug-automake@HIDDEN
:bug#7995
; Package automake
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.