From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from minnie.tuhs.org (minnie.tuhs.org [50.116.15.146]) by inbox.vuxu.org (Postfix) with ESMTP id 70EE024045 for ; Thu, 20 Jun 2024 00:48:51 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id BC21943B98; Thu, 20 Jun 2024 08:48:47 +1000 (AEST) Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by minnie.tuhs.org (Postfix) with ESMTPS id 3741943B97 for ; Thu, 20 Jun 2024 08:48:41 +1000 (AEST) Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-2c2dee9d9cfso270495a91.3 for ; Wed, 19 Jun 2024 15:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kev009.com; s=google; t=1718837320; x=1719442120; darn=tuhs.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=LtVyaohRH8RPedIrfnlYNuZ5kxAT+sEbbIpb9ytJNjE=; b=BRtTQz2tVaX7SxS1U3PDiEb1UX52eWnPwdftha3TXjKjj/VYXS5G8WTqEUg0aMyaGU fQKabyxnJa8N39gjJoOd5tPNYYk0+k6On4nYlh7PMZR9X1KF/UjuWYyKjtBQDzQu51sp noFAoq+k+t8Y0VYw1XRX7ssI4IA80uxXcVWPQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718837320; x=1719442120; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LtVyaohRH8RPedIrfnlYNuZ5kxAT+sEbbIpb9ytJNjE=; b=Z7e9c+IFOBArL7QkQLmYqRDHlK346KpGtQZx1D+tzky4/+O456FAKfnAdo2rApZNDE IQ0ccfxoGuHKbxxJOjZM2ZHPtCRQ1ssnf2G+tBOXYC4qFTCcNkKpDVKJyVQBET0J3so0 xPZlJKs7eGeU6Fhjy3FIIoiB4nTIFqql4V2rz+uRtOVdPQSceja2VflUD0N6ftW6VOSF SFLA7NnE0vBucT3Ax48SrAWttwEbl9pkKrnPUxU9pKvjpQbpb62aLerzSLVHtV3CpXKg cha7JQb9M4m821i4DlMMNso9LLzNSP6Rc3omHc26xTizB7x4IgMEk8tN21XsXoXtG0W7 3qKg== X-Forwarded-Encrypted: i=1; AJvYcCU7xNRvngZiyqrf9mc5yytkFN2z6QjcCEqlBa94bRxGjtFg1FbCUrDENOLCMG0znDuYscHbKN2MLPrtTgYV X-Gm-Message-State: AOJu0Yym9wdqDYjnoR7kTCfa8ULscyNeJI6f+d4zO5sJMMwGFMsx+6i6 6pOLamvKJMi/aZ4bzluo5BabogFTyJ4yypJ0ZT+VS8Oc38Z3JAHIihK7njwM4h4ZfynHRPfDIHY y5MZlAw3LhCzf7370DplIv7TBE0RNIssnqtJPUJ29bcdyi5RrMw== X-Google-Smtp-Source: AGHT+IFZ863z3Qq/lX0lf2JZtb9yZi2SJQ5NgMldScT2vYefExHHO97m7E/ILvUhNTxkr+RDu5cKx69G8n/ttg6yhKY= X-Received: by 2002:a17:90a:e00e:b0:2c5:3a5:5e5e with SMTP id 98e67ed59e1d1-2c7b5cfeb16mr3610586a91.29.1718837320305; Wed, 19 Jun 2024 15:48:40 -0700 (PDT) MIME-Version: 1.0 References: <20240617012531.GE12821@mcvoy.com> <0e6792ed-65b0-e2e1-8159-6426a7f15a8d@riddermarkfarm.ca> <9f9db0d2-8a6a-26cc-a0ba-b6fc5d6474cb@makerlisp.com> <20240619132846.GR32048@mcvoy.com> <20240619155931.GA1513615@mit.edu> In-Reply-To: <20240619155931.GA1513615@mit.edu> From: Kevin Bowling Date: Wed, 19 Jun 2024 15:48:29 -0700 Message-ID: To: "Theodore Ts'o" Content-Type: multipart/alternative; boundary="000000000000e76478061b45ff6a" Message-ID-Hash: IRLNH3NBQXP6WDATYS55ZD5DL6AWCTLL X-Message-ID-Hash: IRLNH3NBQXP6WDATYS55ZD5DL6AWCTLL X-MailFrom: kevin.bowling@kev009.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: The Eunuchs Hysterical Society X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: Version 256 of systemd boasts '42% less Unix philosophy' The Register List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --000000000000e76478061b45ff6a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Jun 19, 2024 at 11:59=E2=80=AFPM Theodore Ts'o wrot= e: > On Wed, Jun 19, 2024 at 06:28:46AM -0700, Larry McVoy wrote: > > On Tue, Jun 18, 2024 at 07:46:15PM -0500, Nevin Liber wrote: > > > But I'll bite. There was the claim by Larry McVoy that "Writing > Makefiles > > > isn't that hard". > > > > > > Please show these beautiful makefiles for a non-toy non-trivial produ= ct > > > > Works on *BSD, MacOS, Windows, Linux on a bunch of different > architectures, > > Solaris, HPUX, AIX, IRIX, Tru64, etc. > > True, but it uses multiple GNU make features, include file inclusions, > conditionals, pattern substitutions, etc. That probably worked for > Bitkeeper because you controlled the build envirnment for the product, > as you were primarily distributing binaries. > > From portability perspective for e2fsprogs, I wanted to make sure I > could build it using the native build environment (e.g., suncc and > later clang, not just gcc, and the default make distributed by Sun, > AIX, Irix, HPUX, and later NetBSD/FreeBSD). I also wanted to support > shared library support, and I didn't want to deal the horrific > performance attributes of libtool and the inscrutibility of automake. > > Since my primary distribution channel was the source tarball (and > later, a git checkout), and other high priority requirement for me is > that I didn't want to require that people need to download some custom > build infratrture. This rules out cmake, imake, gmake, and blaze > (especially since blaze/bazel requires installing a Java > runtime). > > And since I did want to use various advanced features (optionally, if > they exist on the system) such as Poix Threads (which back then I > couldn't take for granted as existing on all of the OS's that I > supported) and Thread Local Storage, as opposed to just restricting > myself to the BSD v4.4 feature subset, I needed to use autoconf anyway, > and from a runtime perspective, it only requires m4 / awk / sed which > is available everywhere. > > So I did everything using (only) autoconf, including building and > using shared libraries, This is The Way if you really care about portability. Autoconf, once you get your head around what, why, and when it was created, makes for nice Makefiles and projects that are easy to include in the 100 Linux distributions with their own take on packaging the world. > with some optional build features that require > GNU make, but the same makefiles will also work on FreeBSD's pmake. I > do agree with your basic premise, though, which is there's realy no > need to use fancy/complicated build infrastructure such as cmake or > imake. > > - Ted > --000000000000e76478061b45ff6a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Wed, Jun 19, 2024 at 11:59=E2=80=AFPM Theodore Ts'o <tytso@mit.edu> wrote:
On Wed, Jun 19, 2024 at 06:28:46AM -0= 700, Larry McVoy wrote:
> On Tue, Jun 18, 2024 at 07:46:15PM -0500, Nevin Liber wrote:
> > But I'll bite.=C2=A0 There was the claim by Larry McVoy that = "Writing Makefiles
> > isn't that hard".
> >
> > Please show these beautiful makefiles for a non-toy non-trivial p= roduct
>
> Works on *BSD, MacOS, Windows, Linux on a bunch of different architect= ures,
> Solaris, HPUX, AIX, IRIX, Tru64, etc.

True, but it uses multiple GNU make features, include file inclusions,
conditionals, pattern substitutions, etc.=C2=A0 That probably worked for Bitkeeper because you controlled the build envirnment for the product,
as you were primarily distributing binaries.

>From portability perspective for e2fsprogs, I wanted to make sure I
could build it using the native build environment (e.g., suncc and
later clang, not just gcc, and the default make distributed by Sun,
AIX, Irix, HPUX, and later NetBSD/FreeBSD).=C2=A0 I also wanted to support<= br> shared library support, and I didn't want to deal the horrific
performance attributes of libtool and the inscrutibility of automake.

Since my primary distribution channel was the source tarball (and
later, a git checkout), and other high priority requirement for me is
that I didn't want to require that people need to download some custom<= br> build infratrture.=C2=A0 This rules out cmake, imake, gmake, and blaze
(especially since blaze/bazel requires installing a Java <shudder> runtime).

And since I did want to use various advanced features (optionally, if
they exist on the system) such as Poix Threads (which back then I
couldn't take for granted as existing on all of the OS's that I
supported) and Thread Local Storage, as opposed to just restricting
myself to the BSD v4.4 feature subset, I needed to use autoconf anyway,
and from a runtime perspective, it only requires m4 / awk / sed which
is available everywhere.

So I did everything using (only) autoconf, including building and
using shared libraries,

This is The Way if you really care about portability.=C2=A0 Autoc= onf, once you get your head around what, why, and when it was created, make= s for nice Makefiles and projects that are easy to include in the 100 Linux= distributions with their own take on packaging the world.

with some optional build features that require
GNU make, but the same makefiles will also work on FreeBSD's pmake.=C2= =A0 I
do agree with your basic premise, though, which is there's realy no
need to use fancy/complicated build infrastructure such as cmake or
<shudder> imake.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 - Ted
--000000000000e76478061b45ff6a--