git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1] autoconf: Use autoconf to write installation directories to config.mak.autogen

From
Jakub Narebski <jnareb@gmail.com>
Date
Jul 2, 2006, 23:56 UTC
Message-ID
<200607030156.50455.jnareb@gmail.com>

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@gmail.com>
---
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@vger.kernel.org])
+
+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
Next: Jakub Narebski
Message 1 of 34 in “autoconf: Use autoconf to write installation directories to config.mak.autogen”
  1. autoconf: Use autoconf to write installation directories to config.mak.autogenJakub Narebski, Jul 2, 2006
  2. autoconf: Use ./configure script in git *.spec fileJakub Narebski, Jul 3, 2006
  3. Junio C HamanoJul 3, 2006
  4. Jakub NarebskiJul 3, 2006
  5. Junio C HamanoJul 3, 2006
  6. contrib/ statusJunio C Hamano, Jul 3, 2006
  7. Eric WongJul 3, 2006
  8. Junio C HamanoJul 3, 2006
  9. Eric WongJul 4, 2006
  10. git-svn: migrate out of contribEric Wong, Jul 6, 2006
  11. Junio C HamanoJul 7, 2006
  12. git-svn: migrate out of contribEric Wong, Jul 7, 2006
  13. Jakub NarebskiJul 4, 2006
  14. Johannes SchindelinJul 4, 2006
  15. Jakub NarebskiJul 3, 2006
  16. Junio C HamanoJul 3, 2006
  17. Jakub NarebskiJul 3, 2006
  18. Junio C HamanoJul 3, 2006
  19. autoconf: Use %configure in git.spec, autoconf dependency only in rpm targetJakub Narebski, Jul 4, 2006
  20. Pavel RoskinJul 6, 2006
  21. Jakub NarebskiJul 7, 2006
  22. Teach make clean about configure and autoconfJakub Narebski, Jul 8, 2006
  23. Copy description of build configuration variables to configure.acJakub Narebski, Jul 8, 2006
  24. autoconf: Preparing the way for autodetectionJakub Narebski, Jul 8, 2006
  25. autoconf: Checks for typedefs, structures, and compiler characteristics.Jakub Narebski, Jul 8, 2006
  26. autoconf: Checks for some library functions.Jakub Narebski, Jul 8, 2006
  27. autoconf: Checks for librariesJakub Narebski, Jul 8, 2006
  28. autoconf: Checks for some programsJakub Narebski, Jul 8, 2006
  29. configure.ac vertical whitespace usage cleanupJakub Narebski, Jul 8, 2006
  30. Comment on this series of patches (PATCH 2-9)Jakub Narebski, Jul 8, 2006
  31. Junio C HamanoJul 8, 2006
  32. Junio C HamanoJul 9, 2006
  33. Jakub NarebskiJul 9, 2006
  34. Junio C HamanoJul 9, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.