All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: Henrik Holst <henrik.holst@outlook.com>,
	"git@vger.kernel.org" <git@vger.kernel.org>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: ./configure fails to link test program due to missing dependencies
Date: Mon, 16 Sep 2024 09:50:49 +0200	[thread overview]
Message-ID: <ZufjWR6AJM-DIWPR@pks.im> (raw)
In-Reply-To: <xmqqldzsrhyp.fsf@gitster.g>

On Sun, Sep 15, 2024 at 09:37:34AM -0700, Junio C Hamano wrote:
> Henrik Holst <henrik.holst@outlook.com> writes:
> 
> > If I set LDFLAGS to whatever pkg-config --libs libcurl says on my system (actually: -lcurl -lssl -lcrypto -lzstd -lbrotlidec -lz) then it compiles just fine. If I add LDFLAGS to the configure environment it will accept that test, and then detect, as expected, the pkg-config settings for libcurl.
> >
> > Should not ./configure FIRST check for a pkg-config environment without assuming that even the most trivial curl programs should compile without any additional dependencies like zstd etc?
> 
> Looking at configure.ac, pkg-config is not used for any package.
> Specifically for curl, it seems that "curl-config --libs" is used.
> 
> Presumably the reason behind the current behaviour is combination of
> (1) ./configure is an after-thought in the build infrastructure for
> this project, (2) pkg-config was not ubiquitous back when autoconf
> support was written for this project, and (3) nobody considered
> "upgrading" our use of "curl-config" and our manual detection of
> dependency detection for other libraries to just use "pkg-config".

I sometimes wonder whether we should move on and discard one of the
three build systems we have: plain GNU Make, autoconf and CMake. And
from these three I'd rather want to throw the autoconf-based thing away:

  - The Makefile is probably what most people use, so throwing it out is
    a no-go right now.

  - CMake is really useful because it has support for IDEs and
    alternatives to GNU Make like Ninja, which builds Git way faster
    than Makefiles. It also has support for out-of-tree builds, which I
    find rather useful.

So is there a path forward to move CMake support out of contrib/, make
it an officially supported way to build Git and then throw away the
autoconf-based infra? I'm not the biggest fan of CMake myself and very
much prefer Meson, but we already have it wired up and thus I'm trying
to be at least a bit pragmatic.

(I'd honestly prefer to end up with a single build system, but also
throwing our Makefiles out would be a step too far at this point in
time.)

Patrick

  parent reply	other threads:[~2024-09-16  7:50 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-14 22:57 ./configure fails to link test program due to missing dependencies Henrik Holst
2024-09-15 16:37 ` Junio C Hamano
2024-09-15 16:47   ` brian m. carlson
2024-09-16  7:50   ` Patrick Steinhardt [this message]
2024-09-18 10:04     ` Phillip Wood
2024-09-18 22:39       ` Junio C Hamano
2024-09-24 12:10         ` Patrick Steinhardt
2024-09-24 13:59           ` Eli Schwartz
2024-09-24 14:25             ` Paul Smith
2024-09-25  4:36             ` Patrick Steinhardt
2024-09-25  6:02               ` Eli Schwartz
2024-09-25  6:04                 ` Patrick Steinhardt
2024-09-26 13:55                   ` Phillip Wood
2024-09-26 14:02                     ` Patrick Steinhardt
2024-09-27 10:10                       ` Phillip Wood
2024-09-26 16:04                     ` Eli Schwartz
2024-09-27 10:00                       ` phillip.wood123
2024-09-26 16:22                     ` Junio C Hamano
2024-09-29 17:56                       ` Johannes Schindelin
2024-09-29 18:10                         ` Eli Schwartz
2024-09-30  8:50                           ` Phillip Wood
2024-09-30 13:57                             ` Eli Schwartz
2024-09-30 16:31                               ` Junio C Hamano
2024-09-30 16:05                             ` Johannes Schindelin
2024-09-25 19:15                 ` Patrick Steinhardt
2024-09-25 19:17                   ` Patrick Steinhardt
2024-09-24 17:39           ` Junio C Hamano
2024-09-25 15:33             ` Paul Smith
2024-09-26  1:35               ` Eli Schwartz
2024-09-26 19:42                 ` Paul Smith
2024-09-24 14:31   ` Eli Schwartz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZufjWR6AJM-DIWPR@pks.im \
    --to=ps@pks.im \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=henrik.holst@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.