Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:105293 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 63904 invoked from network); 16 Apr 2019 18:47:57 -0000 Received: from unknown (HELO mail-lf1-f53.google.com) (209.85.167.53) by pb1.pair.com with SMTP; 16 Apr 2019 18:47:57 -0000 Received: by mail-lf1-f53.google.com with SMTP id j20so3532906lfh.2 for ; Tue, 16 Apr 2019 08:46:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yWbpwp5zjuBXQQ6MJKY0HG2peS8p2Pi5AyP77/4Hs9g=; b=hmu/HRUrdJYcjxmULx3z/aczp9Yx+gK4F2qAQKr0AGB13mglTEUrm2xPq6ZniMKO9v NJJziWOR4NeODG+B6O7lPrnQSybiGG6kB7PvvHv1KOZ59uJnZuQY7YVVlCnHrHLj4m1c 9OB71M0gratpmq3MnoTnhl65VjrWliCvJ2BeRIcjccLOgueOsuYY+wFa2Tbxy2OyHkOS U8hkPUhJof6pV+Txp6mBP/5UdKvK5sI0QFCHkLn0SdLRaeq9xm7LyyBPMK4OYrUpBKrY 2J+S3Sw2Bbi7eWDhAGZahqqUYMXtnDECzr1NVJaYK0hsE5NjuSJFAbimTfwEYn21OZlh T1lg== X-Gm-Message-State: APjAAAWs20ONYFDUt0yBtdKuxn+8xl56Zy6E0vdhlbfwxhTSKOy2CVd4 S+jNDEMpDmsoUbF/IqWUnnV61gYgvUrDRcfpGfY= X-Google-Smtp-Source: APXvYqwoCMfUgzxhKCzt6rMdPK39K5ppx73XPRjmRAsGfDpZOcJdSmOczM2uzLBpHYXza7e38EoM3GCPTrwjM/s84PQ= X-Received: by 2002:a19:4f19:: with SMTP id d25mr2893034lfb.124.1555429596674; Tue, 16 Apr 2019 08:46:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Tue, 16 Apr 2019 09:46:20 -0600 Message-ID: To: Bishop Bettini Cc: Peter Kokot , Internals Content-Type: text/plain; charset="UTF-8" Subject: Re: [PHP-DEV] Required Make version From: levim@php.net (Levi Morrison) If we change anything about our build system, I think it ought to be switching to CMake instead. This supports multiple backends, including generating project files for IDEs, and is designed to be portable, instead of targeting only GNU systems. This means we can use a single build system instead of one for Windows and one for everyone else. At one point, there was a Google Summer of Code project that began this work, but it never got merged and I couldn't find any discussion about why. I'd be happy to work help with the CMake port, as I know it a decent bit, but I don't have enough time to champion the whole thing. On Tue, Apr 16, 2019 at 9:40 AM Bishop Bettini wrote: > > On Sun, Apr 14, 2019 at 12:07 PM Peter Kokot wrote: > > > Hello, > > > > people familiar with the PHP *nix build system today can be probably > > counted on the fingers of two hands, so I'm hoping to get some answer > > also here. > > > > Does anyone maybe still have any insights on which Make version does > > PHP require or silently specify as a minimum? GNU make? POSIX make? > > Maybe some GNU make minimum version? 3.81? etc... > > > > Currently, there are two steps where different make can be used: > > > > 1.) ./buildconf > > (here GNU make is required because of using the conditional macro > > assignment operator ?= in build/build2.mk file) > > > > 2.) make step after ./configure > > (here POSIX make can go through more or less ok). > > > > This is seen, for example, on the Solaris systems where doing this: > > > > ./buildconf > > > > causes: > > > > make: Fatal error in reader: build/build.mk, line 22: Badly formed > > macro assignment > > > > so, this needs to be done: > > > > MAKE=gmake ./buildconf > > > > however, this works then ok: > > > > ./configure > > make > > > > Is this confirmed and ok with everyone that GNU make is the minimum > > required derivative for PHP to be used? Or should software such as PHP > > be an example and use POSIX compatible make? > > > > Reason for asking this: https://github.com/php/php-src/pull/4025 and > > similar improvements... > > > > Relying upon a single build feature set simplifies development, and GNU > make is ubiquitous. I am in favor of standardizing on GNU make. > > The fact that few people know the autotools mechanism we're using, and that > GNU make probably isn't the most performant build system for us [1], > suggests an interesting project: integrating an alternative build systems. > Like X.org attempted [2] with Meson [3]. It might not yield any fruit, but > that'd validate the system we're using. > > bishop > > [1]: http://www.conifersystems.com/whitepapers/gnu-make/ > [2]: > https://www.phoronix.com/scan.php?page=news_item&px=Xorg-Server-Meson-Fitting > [3]: https://mesonbuild.com/