From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Michael J Gruber" <git@drmicha.warpmail.net>,
"Jakub Narebski" <jnareb@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [RFC PATCH] Makefile: point out "make" if "make configure" fails
Date: Mon, 11 Oct 2010 12:37:45 +0000 [thread overview]
Message-ID: <1286800665-7437-1-git-send-email-avarab@gmail.com> (raw)
In-Reply-To: <4CB2FEB8.3050705@drmicha.warpmail.net>
Someone trying to build Git may think the need autoconf when "make
configure && ./configure && make" fails. But actually they can
probably just run "make" directly.
Change the "make configure" output so that when it fails the user is
informed of this:
make configure && ./configure && make
GEN configure
ERROR: We couldn't run autoconf for you. But you're in luck!
ERROR: Git doesn't actually need autoconf to build. Just try
ERROR: running "make" directly at the top-level. The Makefile
ERROR: will guess your configuration based on your OS. If that
ERROR: doesn't work try installing autoconf and running
ERROR: "make configure && ./configure && make" again.
make: *** [configure] Error 1
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
On Mon, Oct 11, 2010 at 12:10, Michael J Gruber <git@drmicha.warpmail.net> wrote:
> Ævar Arnfjörð Bjarmason venit, vidit, dixit 11.10.2010 11:40:
>> On Mon, Oct 11, 2010 at 08:39, Jakub Narebski <jnareb@gmail.com> wrote:
>>
>>> But thanks to having ./configure optional step, we can build git also
>>> on platforms that doesn't have autoconf installed (though the same could
>>> be achieved by bundling ./configure script with release tarballs).
>>
>> It already is built as part of the tarballs, at least for
>> http://kernel.org/pub/software/scm/git/git-1.7.3.1.tar.bz2
>
> Well, the point of my semi-serious RFC is that every so often, we have a
> variation on the following theme on the list:
>
> - "Newbee" uses make configure && ./configure && make and can't build.
> - Helpful "oldbees" respond like "Duh! Use the Makefile".
>
> configure is a second class citizen in git.git (we even explicitly
> .gitignore it - if you allow that lame joke), and given my complete lack
> of auto-conf-foo, I can't change that. But there's no need to make
> someone feel stupid (I'm exaggerating a bit) for trying a standard build
> tool that we do ship.
>
> But, really, the typical responses to build problems with configure
> indicate that most long timers don't use configure either, and probably
> don't feel too comfortable with it. So, I think we should either make
> the status quo clearer (Makefile as primary method) or change the status
> quo. I can only do the former ;)
The main problem with your patch is that existing invocations of "make
configure" have to be altered. I haven't scoured the mailing list for
these newbie reports you mention but aren't they mostly failing
because users don't have autoconf installed, and not because the
configure script itself fails?
If that's case something like this patch would probably be better, and
maybe we also need to change something in the INSTALL file or other
documentation.
Makefile | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/Makefile b/Makefile
index 1f1ce04..6d2928d 100644
--- a/Makefile
+++ b/Makefile
@@ -1747,7 +1747,16 @@ configure: configure.ac
$(QUIET_GEN)$(RM) $@ $<+ && \
sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
$< > $<+ && \
- autoconf -o $@ $<+ && \
+ if ! autoconf -o $@ $<+; \
+ then \
+ echo "ERROR: We couldn't run autoconf for you. But you're in luck!"; \
+ echo "ERROR: Git doesn't actually need autoconf to build. Just try"; \
+ echo "ERROR: running \"make\" directly at the top-level. The Makefile"; \
+ echo "ERROR: will guess your configuration based on your OS. If that"; \
+ echo "ERROR: doesn't work try installing autoconf and running"; \
+ echo "ERROR: \"make configure && ./configure && make\" again."; \
+ false; \
+ fi && \
$(RM) $<+
# These can record GIT_VERSION
--
1.7.3.1.50.g1e633
next prev parent reply other threads:[~2010-10-11 12:38 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-11 7:47 [RFC PATCH] Makefile: Turn off the configure target by default Michael J Gruber
2010-10-11 7:59 ` Ævar Arnfjörð Bjarmason
2010-10-11 8:39 ` Jakub Narebski
2010-10-11 9:40 ` Ævar Arnfjörð Bjarmason
2010-10-11 12:10 ` Michael J Gruber
2010-10-11 12:37 ` Ævar Arnfjörð Bjarmason [this message]
2010-10-11 15:06 ` [RFC PATCH] Makefile: point out "make" if "make configure" fails Jakub Narebski
2010-10-11 20:46 ` Sverre Rabbelier
2010-10-11 15:18 ` [RFC PATCH] Makefile: Turn off the configure target by default Jakub Narebski
2010-10-11 15:28 ` Michael J Gruber
2010-10-11 16:21 ` Ævar Arnfjörð Bjarmason
2010-10-11 16:26 ` Jonathan Nieder
2010-10-12 8:33 ` Michael J Gruber
2010-10-12 9:10 ` Tor Arntsen
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1286800665-7437-1-git-send-email-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jnareb@gmail.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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).