From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Maxime Devos Newsgroups: gmane.lisp.guile.user Subject: Re: Newbie thoughts on Guile Hall + Guix Date: Sun, 06 Feb 2022 17:55:17 +0100 Message-ID: <2a3bc56f383806aa28d969ddc092256a9e922579.camel@telenet.be> References: <87iltt846s.fsf@dustycloud.org> <87k0e8t0kr.fsf@laura> Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-9or1bwuIyIibNod+S9wn" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11808"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.38.3-1 To: Olivier Dion , Christine Lemmer-Webber , guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sun Feb 06 17:56:38 2022 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nGkq6-0002qP-0f for guile-user@m.gmane-mx.org; Sun, 06 Feb 2022 17:56:38 +0100 Original-Received: from localhost ([::1]:46072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nGkq4-00044W-KF for guile-user@m.gmane-mx.org; Sun, 06 Feb 2022 11:56:36 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:58268) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nGkpJ-00043P-Fh for guile-user@gnu.org; Sun, 06 Feb 2022 11:55:51 -0500 Original-Received: from [2a02:1800:110:4::f00:1a] (port=36902 helo=albert.telenet-ops.be) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nGkpC-0000nP-W0 for guile-user@gnu.org; Sun, 06 Feb 2022 11:55:47 -0500 Original-Received: from [172.20.10.5] ([188.188.37.53]) by albert.telenet-ops.be with bizsmtp id rsvN2600g18o4tG06svPn0; Sun, 06 Feb 2022 17:55:24 +0100 In-Reply-To: <87k0e8t0kr.fsf@laura> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1644166524; bh=x2258mIUxt+Pt0BOw3tOYmAcONgYsovryCpYoPygn0Q=; h=Subject:From:To:Date:In-Reply-To:References; b=fARcRnMSZ+fW1RJ/erFjUumkHQS5JTqnqxy1rV7SE5iZzkIP+nzWlxfCkrCaK940q Hd0aBsMzzjT4Tr69cOp7fsHamcoRLE4LW1QrImzocRSbreNw7E1/8FugiPm6NHinbK KMeArrmLrzbIdR20ayu8432afTUqyZPNwIh4btCMMOzV1uGIZJhAAP47b84gQbyuTK diXWonl7GtSCH0bxao+t/j/JpwMu0LrD5D4bHEoDMx6Sll/8m2Qf2msUfiPTWwhY+b wXfBj3ycP9cIy9YrZwLC8Mkg3QKrqZ0tyIGXOdegc8YNPgztoqkD/nWh5oAZinIuAL HzAtVydhQkORQ== X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a02:1800:110:4::f00:1a (failed) Received-SPF: pass client-ip=2a02:1800:110:4::f00:1a; envelope-from=maximedevos@telenet.be; helo=albert.telenet-ops.be X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:18015 Archived-At: --=-9or1bwuIyIibNod+S9wn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Olivier Dion via General Guile related discussions schreef op zo 06-02- 2022 om 11:35 [-0500]: > I personnally end up writting something similar to hall for a project of > mine using Guix records.=C2=A0 From a description like so: > -------------------------------------------------------------------------= ------- > (project > =C2=A0 (name "foo") > =C2=A0 (version "1") > =C2=A0 (configuration-file "config.scm") > =C2=A0 (export-configuration > =C2=A0=C2=A0=C2=A0 '(("include/config.h" . "FOO_CONFIG_H") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ("foo/config.scm"=C2=A0=C2=A0 . "foo confi= g"))) > =C2=A0 (build-directory "./build") > =C2=A0 (cppflags `(-Include ,(pkg-cflags-only-I '(guile-3.0)))) > =C2=A0 (guile-root "foo") > =C2=A0 (guile-tests-root "tests") > =C2=A0 (scripts > =C2=A0=C2=A0=C2=A0 (list > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (script > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (name "foo") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (file "scripts/foo") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (install? #t)) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (script > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (name "debug") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (file "scripts/debug") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (install? #f)))) > =C2=A0 (c-modules > =C2=A0=C2=A0=C2=A0 (list > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (c-module > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (name "foo") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (files '("core/*.c")) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (packages '(guile-3.0))) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (c-module > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (name "bar") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (files '("bar/bar.c")) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (ldflags '(-lsomelib)) > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (packages '(some-other-lib))))= ) > -------------------------------------------------------------------------= ------- > this description end up generating a `guix.scm`, `makefile`, > `pre-install-env`, `foo/config.scm` and `include/config.h`.=C2=A0 Packagi= ng > is just a matter of shipping the `makefile` with the source codes. This seems like a practical build system to me. Is it available online somewhere? I'd like to investigate it a bit for some common problems in ad-hoc Makefiles (in particular w.r.t. cross-compilation, tracking dependency information, choosing installation prefixes...) and determine if I could extend it for my usecases. Is it restricted to Makefiles, or can it also be used without generating Makefiles? If not, things like progress bars should be easy to implement and file names containing spaces or =E2=80=98special character= s=E2=80=99 can be used without any problems. Greetings, Maxime. --=-9or1bwuIyIibNod+S9wn Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYf/9dRccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7rHeAP9M+fS2kMDyT6mw2pwtdTe7foHv UZ2g0VTX5aEzc2rtlQD/f/cCqxyPgleiuO47JcOph8D3X87E5/KPjrpoiPHqtwE= =+0ZY -----END PGP SIGNATURE----- --=-9or1bwuIyIibNod+S9wn--