Chicken/egg problem building from a 'git clone'
From: Joi Ellis <hidden>
Date: 2016-06-15 22:46:06
I have an elderly laptop. I can build and install git using a tarball. I
original installed git 1.6.0. This evening I noticed 1.6.1 was availble, and I
decided to try building from the git repository using 'git clone' as described
in the git home page. And to jump ahead of myself, I want to point out that
1.6.1 will build from the tarball. However...
The workspace I get using 'git clone' does not provide a configure file. And
because my laptop isn't running a bleeding edge distribution, my build tools
are older than you'd expect, so...
"make all" fails becuase my libaries are old:
LINK git-fast-import
fast-import.o: In function `store_object':
/usr/local/src/git/git/fast-import.c:1086: undefined reference to `deflateBound'
/usr/local/src/git/git/fast-import.c:1109: undefined reference to `deflateBound'
"make configure" fails because my autoconf is too old.
GEN configure
Usage: autoconf [-h] [--help] [-m dir] [--macrodir=dir]
[-l dir] [--localdir=dir] [--version] [template-file]
make: *** [configure] Error 1
This found an issue with the Makefile, because my autoconf is sooo old, it's
puking on the configure target build command, in part:
autoconf -o $@ $<+ && \
because this old autoconf doesn't have a -o parameter. If I change the
Makefile to:
autoconf $<+ >$@ && \
Then the error becomes
GEN configure
FATAL ERROR: Autoconf version 2.59 or higher is required for this script
make: *** [configure] Error 2
which is closer to what you intended. I'm not sure what difference it makes
between specifying -o and simply letting it default.
Anyway, would it break anything to have a 'configure' script provided as part
of the clone pull? It's provided in the tarball, and if I copy the 1.6.1
configure script into my git workspace and run it, it seems to build. I'm just
not sure I trust it to be up-to-date with the configure script you folks can
generate with your modern build tools using 'make configure'.
I realize the configure script is technically a build target but not having it
does cause this chicken-egg issue on older platforms.