This is beginning of patch series introducing installation configuration using autoconf (and no other autotools) to git. The idea is to generate config.mak.autogen using ./configure (generated from configure.ac by running autoconf) from config.mak.in, so one can use autoconf as an _alternative_ to ordinary Makefile, and creating one's own config.mak. Local settings in config.mak override generated settings in config.mak.autogen This patch includes minimal configure.ac and config.mak.in, so one can set installation directories using autoconf generated ./configure script e.g. ./configure --prefix=/usr Signed-off-by: Jakub Narebski <jnareb@xxxxxxxxx> --- This patch is to be applied on top of 'next', because to work as intended (especially for --mandir=<path> option to ./configure) it needs Allow INSTALL, bindir, mandir to be set in main Makefile e14421b9aa85f11853a0dacae09498515daab7b8 patch (commit) to be present. For now the following options do actually something: $ ./configure --prefix=<prefix> # [/usr/local] --exec_prefix=<prefix> # [PREFIX] --bindir=<bindir> # [EPREFIX/bin] --datadir=<datadir> # [PREFIX/share] --mandir=<mandir> # [PREFIX/man] $ ./configure --help # hardcoded version 1.4.1 QUESTION: how to make autoconf _generate_ correct version string? Next patch will show how this infrastructure can be used. .gitignore | 6 ++++++ INSTALL | 9 +++++++++ Makefile | 1 + config.mak.in | 18 ++++++++++++++++++ configure.ac | 14 ++++++++++++++ 5 files changed, 48 insertions(+), 0 deletions(-) diff --git a/.gitignore b/.gitignore index 2bcc604..616aa98 100644 --- a/.gitignore +++ b/.gitignore @@ -136,4 +136,10 @@ git-core.spec *.[ao] *.py[co] config.mak +autom4te.cache +config.log +config.status +config.mak.in +config.mak.autogen +configure git-blame diff --git a/INSTALL b/INSTALL index f8337e2..28245b3 100644 --- a/INSTALL +++ b/INSTALL @@ -13,6 +13,15 @@ that uses $prefix, the built results hav which are derived from $prefix, so "make all; make prefix=/usr install" would not work. +Alternatively you can use autoconf generated ./configure script to +set up install paths (via config.mak.autogen), so you can write instead + + $ autoconf ;# as yourself if ./configure doesn't exist yet + $ ./configure --prefix=/usr ;# as yourself + $ make all doc ;# as yourself + # make install install-doc ;# as root + + Issues of note: - git normally installs a helper script wrapper called "git", which diff --git a/Makefile b/Makefile index 7dbb883..3c2c257 100644 --- a/Makefile +++ b/Makefile @@ -333,6 +333,7 @@ ifneq (,$(findstring arm,$(uname_M))) ARM_SHA1 = YesPlease endif +-include config.mak.autogen -include config.mak ifdef WITH_OWN_SUBPROCESS_PY diff --git a/config.mak.in b/config.mak.in new file mode 100644 index 0000000..82c9781 --- /dev/null +++ b/config.mak.in @@ -0,0 +1,18 @@ +# git Makefile configuration, included in main Makefile +# @configure_input@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +#gitexecdir = @libexecdir@/git-core/ +template_dir = @datadir@/git-core/templates/ +GIT_PYTHON_DIR = @datadir@/git-core/python + +mandir=@mandir@ + +srcdir = @srcdir@ +VPATH = @srcdir@ + +export exec_prefix mandir +export srcdir VPATH + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..a54b164 --- /dev/null +++ b/configure.ac @@ -0,0 +1,14 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.59) +AC_INIT([git], [1.4.1], [git@xxxxxxxxxxxxxxx]) + +AC_CONFIG_SRCDIR([git.c]) + +config_file=config.mak.autogen +config_in=config.mak.in + +# Output files +AC_CONFIG_FILES(["${config_file}":"${config_in}"]) +AC_OUTPUT -- 1.4.0 - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html