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,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 CB3632411D for ; Wed, 19 Jun 2024 17:59:53 +0200 (CEST) Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id CBC4D436BC; Thu, 20 Jun 2024 01:59:48 +1000 (AEST) Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by minnie.tuhs.org (Postfix) with ESMTPS id 018D3436BB for ; Thu, 20 Jun 2024 01:59:41 +1000 (AEST) Received: from cwcc.thunk.org (pool-173-48-120-239.bstnma.fios.verizon.net [173.48.120.239]) (authenticated bits=0) (User authenticated as tytso@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 45JFxVBD032740 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 19 Jun 2024 11:59:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=outgoing; t=1718812774; bh=zsCEAH24zy+pLbrRoJMU+oHtswwKKNwku1QaqMXkRvM=; h=Date:From:Subject:Message-ID:MIME-Version:Content-Type; b=bvlyW8ekRWvlcrcRECw2kQ1GEHqlDhz71Yz27uZs2eaIaj8X9XzDgRgIgg+3/mv0B T234xWWZCAhLYcAyZJLSwCizBzCNv6LgDA4kEgV0wFUBDVfZRIgK5o1i0eFl/gAJCq fZAH17y0Zw3xa5L9yWn936Voi0i6gyTf13sds4u+//tNcdj0ROwUHMCP5b1k+V4iz1 DWI2Zd63hnZq7+uwlfBYWXcMGkXci1BD+isopdSn5LCWsoseUEEsxOX67oPttcHNJv nuunkS0L85Ma9Wr5EFVcX6QeKsByRuvM9fyEkH5fqAvDYis1BDPU18iID/lTbh9KcS QPOs83TE3tWWg== Received: by cwcc.thunk.org (Postfix, from userid 15806) id AF74215C0579; Wed, 19 Jun 2024 11:59:31 -0400 (EDT) Date: Wed, 19 Jun 2024 11:59:31 -0400 From: "Theodore Ts'o" To: Larry McVoy Message-ID: <20240619155931.GA1513615@mit.edu> References: <20240617012531.GE12821@mcvoy.com> <0e6792ed-65b0-e2e1-8159-6426a7f15a8d@riddermarkfarm.ca> <9f9db0d2-8a6a-26cc-a0ba-b6fc5d6474cb@makerlisp.com> <20240619132846.GR32048@mcvoy.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240619132846.GR32048@mcvoy.com> Message-ID-Hash: Q37GL5OP4VT5BBXRMOGWFSKJAYYFQPUB X-Message-ID-Hash: Q37GL5OP4VT5BBXRMOGWFSKJAYYFQPUB X-MailFrom: tytso@mit.edu 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: 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 product > > 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, 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