Skip to contentSkip to conversation

autoconf: Some improvements

PATCH In review Jakub Narebski 2 participants 15 messages Jun 15, 2016 Kbuild

lore
Share & tools
lore
#0 lore raw

cover autoconf: Some improvements

This series of patches, based on next branch
(commit id: 45c5baf2f082dd5f537f043f7637bff87db515e8)
introduces few minor improvements, and one (last) larger, following
"autoconf: Unset NO_STH and NEED_STH when it is detected not needed"

* [PATCH 1/4] autoconf: Add configure target to main Makefile
* [PATCH 2/4] autoconf: Error out on --without-shell and --without-perl
* [PATCH 3/4] autoconf: Improvements in NO_PYTHON/PYTHON_PATH handling
* [PATCH 4/4] autoconf: Move variables which we always set to config.mak.in

Signature · 2 lines
Jakub Narebski
Poland
#1 lore raw

PATCH 1/4 autoconf: Add configure target to main Makefile

While at it fill git version information in configure.ac configure target needs autoconf, of course.

---
This will make testing autoconf improvements easier

 Makefile     |    7 +++++++
 configure.ac |    2 +-
 2 files changed, 8 insertions(+), 1 deletions(-)
Makefile +7 -0
index 8c225e6..321267b 100644
@@ -676,6 +676,13 @@ git-instaweb: git-instaweb.sh gitweb/git
 	chmod +x $@+
 	mv $@+ $@
 
+configure: configure.ac
+	rm -f $@ $<+
+	sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
+	    $< > $<+
+	autoconf -o $@ $<+
+	rm -f $<+
+
 # These can record GIT_VERSION
 git$X git.spec \
 	$(patsubst %.sh,%,$(SCRIPT_SH)) \
configure.ac +1 -1
index 3c56cc5..e2da891 100644
@@ -2,7 +2,7 @@ #                                       
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT([git], [1.4.1], [[email protected]])
+AC_INIT([git], [@@GIT_VERSION@@], [[email protected]])
 
 AC_CONFIG_SRCDIR([git.c])
 
Signature · 1 line
1.4.1.1
#2 lore raw

[PATCH 5/4] autoconf: Mention "make configure" instead of "autoconf" in INSTALL

---
Should be part of [PATCH 1/4] in this series (replied-to patch)

 INSTALL |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
INSTALL +1 -1
index f8dfa19..0d432d7 100644
@@ -16,7 +16,7 @@ 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
+	$ make configure ;# as yourself
 	$ ./configure --prefix=/usr ;# as yourself
 	$ make all doc ;# as yourself
 	# make install install-doc ;# as root
Signature · 1 line
1.4.1.1
#3 lore raw

PATCH 2/4 autoconf: Error out on --without-shell and --without-perl

In reply to Jakub Narebski

Error out on --without-shell/--with-shell=no and --without-perl/--with-perl=no instead of just warning and continuing.

---
It's a matter of taste (and not doing unexpected)

 configure.ac |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
configure.ac +1 -1
index e2da891..c2ddd9b 100644
@@ -37,7 +37,7 @@ # Used by GIT_ARG_SET_PATH(PROGRAM)
 AC_DEFUN([GIT_CONF_APPEND_PATH],
 [PROGRAM=m4_toupper($1); \
 if test "$withval" = "no"; then \
-	AC_MSG_WARN([You cannot use git without $1]); \
+	AC_MSG_ERROR([You cannot use git without $1]); \
 else \
 	if test "$withval" = "yes"; then \
 		AC_MSG_WARN([You should provide path for --with-$1=PATH]); \
Signature · 1 line
1.4.1.1
#4 lore raw

PATCH 3/4 autoconf: Improvements in NO_PYTHON/PYTHON_PATH handling

In reply to Jakub Narebski

Unset NO_PYTHON for --with-python without arguments, and when PYTHON_PATH is set. Do not check for PYTHON_PATH if it is set via --with-python=PYTHON_PATH. Prefer python to python2.4 etc.

---
What might be unexpected is the fact that even for --with-python (but only without setting PYTHON_PATH) autodetection might set NO_PYTHON

 configure.ac |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)
configure.ac +9 -6
index c2ddd9b..c27a994 100644
@@ -105,7 +105,10 @@ AC_ARG_WITH(python,[AS_HELP_STRING([--wi
 AS_HELP_STRING([--no-python], [don't use python scripts])],
  [if test "$withval" = "no"; then \
     NO_PYTHON=YesPlease; \
-  elif test "$withval" != "yes"; then \
+  elif test "$withval" = "yes"; then \
+    NO_PYTHON=; \
+  else \
+    NO_PYTHON=; \
     PYTHON_PATH=$withval; \
   fi; \
  ])
@@ -138,15 +141,15 @@ #
 # Define NO_PYTHON if you want to lose all benefits of the recursive merge.
 # Define PYTHON_PATH to provide path to Python.
 if test -z "$NO_PYTHON"; then
-	AC_PATH_PROGS(PYTHON_PATH, [python2.4 python2.3 python2 python])
+	if test -z "$PYTHON_PATH"; then
+		AC_PATH_PROGS(PYTHON_PATH, [python python2.4 python2.3 python2])
+	fi
 	if test -n "$PYTHON_PATH"; then
 		GIT_CONF_APPEND_LINE([PYTHON_PATH=@PYTHON_PATH@])
-	else
-		GIT_CONF_APPEND_LINE([NO_PYTHON=@NO_PYTHON@])
+		NO_PYTHON=""
 	fi
-else
-	GIT_CONF_APPEND_LINE([NO_PYTHON=@NO_PYTHON@])
 fi
+GIT_CONF_APPEND_LINE([NO_PYTHON=@NO_PYTHON@])
 
 
 ## Checks for libraries.
Signature · 1 line
1.4.1.1
#5 lore raw

PATCH 4/4 autoconf: Move variables which we always set to config.mak.in

In reply to Jakub Narebski

Move detected NO_STH and NEED_STH variables, which we always output, either setting or unsetting (setting to empty string) to config.mak.in and use setting appropriately named variables and doing AC_SUBST instead of adding them via GIT_CONF_APPEND_LINE macro and config.mak.append temporary file.

Variables which might and might not be set are still added via config.mak.append; this include all STH_PATH variables.

---
This makes our configure.ac more typical.

 config.mak.in |   15 +++++++++++
 configure.ac  |   75 +++++++++++++++++++++++++++++++++------------------------
 2 files changed, 59 insertions(+), 31 deletions(-)
config.mak.in +15 -0
index 04f508a..99b13a7 100644
@@ -22,3 +22,18 @@ VPATH = @srcdir@
 export exec_prefix mandir
 export srcdir VPATH
 
+NO_PYTHON=@NO_PYTHON@
+NEEDS_SSL_WITH_CRYPTO=@NEEDS_SSL_WITH_CRYPTO@
+NO_CURL=@NO_CURL@
+NO_EXPAT=@NO_EXPAT@
+NEEDS_LIBICONV=@NEEDS_LIBICONV@
+NEEDS_SOCKET=@NEEDS_SOCKET@
+NO_D_INO_IN_DIRENT=@NO_D_INO_IN_DIRENT@
+NO_D_TYPE_IN_DIRENT=@NO_D_TYPE_IN_DIRENT@
+NO_SOCKADDR_STORAGE=@NO_SOCKADDR_STORAGE@
+NO_IPV6=@NO_IPV6@
+NO_C99_FORMAT=@NO_C99_FORMAT@
+NO_STRCASESTR=@NO_STRCASESTR@
+NO_STRLCPY=@NO_STRLCPY@
+NO_SETENV=@NO_SETENV@
+
configure.ac +44 -31

148 lines not on this page · raw message

Signature · 1 line
1.4.1.1
#6 lore raw

[PATCH 6/4] autoconf: Add forgotten NO_OPENSSL=@NO_OPENSSL@ to config.mak.in

---
Or just correct previous patch, instead.

 config.mak.in |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
config.mak.in +1 -0
index 99b13a7..369e611 100644
@@ -24,6 +24,7 @@ export srcdir VPATH
 
 NO_PYTHON=@NO_PYTHON@
 NEEDS_SSL_WITH_CRYPTO=@NEEDS_SSL_WITH_CRYPTO@
+NO_OPENSSL=@NO_OPENSSL@
 NO_CURL=@NO_CURL@
 NO_EXPAT=@NO_EXPAT@
 NEEDS_LIBICONV=@NEEDS_LIBICONV@
Signature · 1 line
1.4.1.1
#7 lore raw

PATCH 1/1 autoconf: Add support for setting CURLDIR, OPENSSLDIR, EXPATDIR

In reply to Jakub Narebski

Add support for --with-openssl=PATH and --without-openssl, --with-curl=PATH and --without-curl, --with-expat=PATH and --without-expat ./configure options, each setting or unsetting appropriate NO_PACKAGE and if called with argument also PACKAGEDIR (of which only CURLDIR is documented in Makefile)

All above options are supported as override to autodetection; more to come in the same style (override to autodetection), so moved the bulk of comments for site configuration down.

Needs review by someone well versed in autoconf and m4.

---
With this patch current autoconf generated ./configure script can do everything the first abandoned (rewritten) version could... and much, much more.

 configure.ac |  158 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 101 insertions(+), 57 deletions(-)
configure.ac +101 -57
index bc2824b..ae56462 100644
@@ -46,53 +46,29 @@ else \
 	fi; \
 fi; \
 ]) # GIT_CONF_APPEND_PATH
+#
+# GIT_PARSE_WITH(PACKAGE)
+# -----------------------
+# For use in AC_ARG_WITH action-if-found, for packages default ON.
+# * Set NO_PACKAGE=YesPlease for --without-PACKAGE
+# * Set PACKAGEDIR=PATH for --with-PACKAGE=PATH
+# * Unset NO_PACKAGE for --with-PACKAGE without ARG
+AC_DEFUN([GIT_PARSE_WITH],
+[PACKAGE=m4_toupper($1); \
+if test "$withval" = "no"; then \
+	m4_toupper(NO_$1)=YesPlease; \
+elif test "$withval" = "yes"; then \
+	m4_toupper(NO_$1)=; \
+else \
+	m4_toupper(NO_$1)=; \
+	GIT_CONF_APPEND_LINE(${PACKAGE}DIR=$withval); \
+fi \
+])# GIT_PARSE_WITH
 
 
-## Site configuration
+## Site configuration related to programs (before tests)
 ## --with-PACKAGE[=ARG] and --without-PACKAGE
 #
-# Define NO_SVN_TESTS if you want to skip time-consuming SVN interoperability
-# tests.  These tests take up a significant amount of the total test time
-# but are not needed unless you plan to talk to SVN repos.
-#
-# Define MOZILLA_SHA1 environment variable when running make to make use of
-# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
-# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
-# choice) has very fast version optimized for i586.
-#
-# Define PPC_SHA1 environment variable when running make to make use of
-# a bundled SHA1 routine optimized for PowerPC.
-#
-# Define ARM_SHA1 environment variable when running make to make use of
-# a bundled SHA1 routine optimized for ARM.
-#
-# Define NO_OPENSSL environment variable if you do not have OpenSSL.
-# This also implies MOZILLA_SHA1.
-#
-# Define NO_CURL if you do not have curl installed.  git-http-pull and
-# git-http-push are not built, and you cannot use http:// and https://
-# transports.
-#
-# Define CURLDIR=/foo/bar if your curl header and library files are in
-# /foo/bar/include and /foo/bar/lib directories.
-#
-# Define NO_EXPAT if you do not have expat installed.  git-http-push is
-# not built, and you cannot push using http:// and https:// transports.
-#
-# Define NO_FINK if you are building on Darwin/Mac OS X, have Fink
-# installed in /sw, but don't want GIT to link against any libraries
-# installed there.  If defined you may specify your own (or Fink's)
-# include directories and library directories by defining CFLAGS
-# and LDFLAGS appropriately.
-#
-# Define NO_DARWIN_PORTS if you are building on Darwin/Mac OS X,
-# have DarwinPorts installed in /opt/local, but don't want GIT to
-# link against any libraries installed there.  If defined you may
-# specify your own (or DarwinPort's) include directories and
-# library directories by defining CFLAGS and LDFLAGS appropriately.
-#
-# Define NO_MMAP if you want to avoid mmap.
-#
 # Define SHELL_PATH to provide path to shell.
 GIT_ARG_SET_PATH(shell)
 #
@@ -114,20 +90,6 @@ AS_HELP_STRING([--no-python], [don't use
  ])
 AC_SUBST(NO_PYTHON)
 AC_SUBST(PYTHON_PATH)
-#
-## --enable-FEATURE[=ARG] and --disable-FEATURE
-# Define COLLISION_CHECK below if you believe that SHA1's
-# 1461501637330902918203684832716283019655932542976 hashes do not give you
-# sufficient guarantee that no collisions between objects will ever happen.
-#
-# Define USE_NSEC below if you want git to care about sub-second file mtimes
-# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
-# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
-# randomly break unless your underlying filesystem supports those sub-second
-# times (my ext3 doesn't).
-#
-# Define USE_STDEV below if you want git to care about the underlying device
-# change being considered an inode change from the update-cache perspective.
 
 
 ## Checks for programs.
@@ -259,6 +221,7 @@ else
 fi
 AC_SUBST(NO_C99_FORMAT)
 
+
 ## Checks for library functions.
 ## (in default C library and libraries checked by AC_CHECK_LIB)
 AC_MSG_NOTICE([CHECKS for library functions])
@@ -299,6 +262,87 @@ # Define NO_ACCURATE_DIFF if your diff p
 # a missing newline at the end of the file.
 
 
+## Site configuration (override autodetection)
+## --with-PACKAGE[=ARG] and --without-PACKAGE
+AC_MSG_NOTICE([CHECKS for site configuration])
+#
+# Define NO_SVN_TESTS if you want to skip time-consuming SVN interoperability
+# tests.  These tests take up a significant amount of the total test time
+# but are not needed unless you plan to talk to SVN repos.
+#
+# Define MOZILLA_SHA1 environment variable when running make to make use of
+# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
+# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
+# choice) has very fast version optimized for i586.
+#
+# Define PPC_SHA1 environment variable when running make to make use of
+# a bundled SHA1 routine optimized for PowerPC.
+#
+# Define ARM_SHA1 environment variable when running make to make use of
+# a bundled SHA1 routine optimized for ARM.
+#
+# Define NO_OPENSSL environment variable if you do not have OpenSSL.
+# This also implies MOZILLA_SHA1.
+#
+# Define OPENSSLDIR=/foo/bar if your openssl header and library files are in
+# /foo/bar/include and /foo/bar/lib directories.
+AC_ARG_WITH(openssl,
+AS_HELP_STRING([--with-openssl],[use OpenSSL library (default is YES)])
+AS_HELP_STRING([],              [ARG can be prefix for openssl library and headers]),\
+GIT_PARSE_WITH(openssl))
+#
+# Define NO_CURL if you do not have curl installed.  git-http-pull and
+# git-http-push are not built, and you cannot use http:// and https://
+# transports.
+#
+# Define CURLDIR=/foo/bar if your curl header and library files are in
+# /foo/bar/include and /foo/bar/lib directories.
+AC_ARG_WITH(curl,
+AS_HELP_STRING([--with-curl],[support http(s):// transports (default is YES)])
+AS_HELP_STRING([],           [ARG can be also prefix for curl library and headers]),
+GIT_PARSE_WITH(curl))
+#
+# Define NO_EXPAT if you do not have expat installed.  git-http-push is
+# not built, and you cannot push using http:// and https:// transports.
+#
+# Define EXPATDIR=/foo/bar if your expat header and library files are in
+# /foo/bar/include and /foo/bar/lib directories.
+AC_ARG_WITH(expat,
+AS_HELP_STRING([--with-expat],
+[support git-push using http:// and https:// transports via WebDAV (default is YES)])
+AS_HELP_STRING([],            [ARG can be also prefix for expat library and headers]),
+GIT_PARSE_WITH(expat))
+#
+# Define NO_FINK if you are building on Darwin/Mac OS X, have Fink
+# installed in /sw, but don't want GIT to link against any libraries
+# installed there.  If defined you may specify your own (or Fink's)
+# include directories and library directories by defining CFLAGS
+# and LDFLAGS appropriately.
+#
+# Define NO_DARWIN_PORTS if you are building on Darwin/Mac OS X,
+# have DarwinPorts installed in /opt/local, but don't want GIT to
+# link against any libraries installed there.  If defined you may
+# specify your own (or DarwinPort's) include directories and
+# library directories by defining CFLAGS and LDFLAGS appropriately.
+#
+# Define NO_MMAP if you want to avoid mmap.
+
+## --enable-FEATURE[=ARG] and --disable-FEATURE
+#
+# Define COLLISION_CHECK below if you believe that SHA1's
+# 1461501637330902918203684832716283019655932542976 hashes do not give you
+# sufficient guarantee that no collisions between objects will ever happen.
+#
+# Define USE_NSEC below if you want git to care about sub-second file mtimes
+# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
+# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
+# randomly break unless your underlying filesystem supports those sub-second
+# times (my ext3 doesn't).
+#
+# Define USE_STDEV below if you want git to care about the underlying device
+# change being considered an inode change from the update-cache perspective.
+
+
 ## Output files
 AC_CONFIG_FILES(["${config_file}":"${config_in}":"${config_append}"])
 AC_OUTPUT
Signature · 1 line
1.4.1.1
#8 lore raw

Re: [PATCH 7] autoconf: Add support for setting CURLDIR, OPENSSLDIR, EXPATDIR

Quoted 9 lines · Jakub Narebski

Add support for --with-openssl=PATH and --without-openssl, --with-curl=PATH and --without-curl, --with-expat=PATH and --without-expat ./configure options, each setting or unsetting appropriate NO_PACKAGE and if called with argument also PACKAGEDIR (of which only CURLDIR is documented in Makefile)

All above options are supported as override to autodetection; more to come in the same style (override to autodetection), so moved the bulk of comments for site configuration down.

Is this patch dropped?

Signature · 3 lines
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
#9 lore raw

Re: [PATCH 7] autoconf: Add support for setting CURLDIR, OPENSSLDIR, EXPATDIR

Quoted 8 lines · Jakub Narebski
Quoted 6 lines · Jakub Narebski

Add support for --with-openssl=PATH and --without-openssl, --with-curl=PATH and --without-curl, --with-expat=PATH and --without-expat ./configure options, each setting or unsetting appropriate NO_PACKAGE and if called with argument also PACKAGEDIR (of which only CURLDIR is documented in Makefile)

Quoted 5 lines
Quoted 3 lines

All above options are supported as override to autodetection; more to come in the same style (override to autodetection), so moved the bulk of comments for site configuration down.

Is this patch dropped?

I think it should be on "pu" but I might have missed it; it came with a warning not to apply didn't it?

#10 lore raw

Re: [PATCH 7] autoconf: Add support for setting CURLDIR, OPENSSLDIR, EXPATDIR

<opublikowany i wysłany>

Quoted 10 lines · Junio C Hamano
Quoted 8 lines · Jakub Narebski
Quoted 6 lines · Jakub Narebski

Add support for --with-openssl=PATH and --without-openssl, --with-curl=PATH and --without-curl, --with-expat=PATH and --without-expat ./configure options, each setting or unsetting appropriate NO_PACKAGE and if called with argument also PACKAGEDIR (of which only CURLDIR is documented in Makefile)

Quoted 8 lines
Quoted 5 lines
Quoted 3 lines

All above options are supported as override to autodetection; more to come in the same style (override to autodetection), so moved the bulk of comments for site configuration down.

Is this patch dropped?

I think it should be on "pu" but I might have missed it; it came with a warning not to apply didn't it?

Yes, although the warning is more about the _style_ than about what it does. It works as far as I tested, but IMVHO it is a bit of hack.

Signature · 3 lines
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
#11 lore raw

PATCH 1/1 autoconf: It is --without-python, not --no-python

In reply to Jakub Narebski
---
 configure.ac |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
configure.ac +1 -1
index ae56462..e890131 100644
@@ -78,7 +78,7 @@ #
 # Define NO_PYTHON if you want to lose all benefits of the recursive merge.
 # Define PYTHON_PATH to provide path to Python.
 AC_ARG_WITH(python,[AS_HELP_STRING([--with-python=PATH], [provide PATH to python])
-AS_HELP_STRING([--no-python], [don't use python scripts])],
+AS_HELP_STRING([--without-python], [don't use python scripts])],
  [if test "$withval" = "no"; then \
     NO_PYTHON=YesPlease; \
   elif test "$withval" = "yes"; then \
Signature · 1 line
1.4.1.1
#12 lore raw

PATCH 1/1 autoconf: clean temporary file mak.append

In reply to Jakub Narebski

When configure is interrupted in the middle it leaves config.mak.append behind. Add it to .gitignore and make sure $(MAKE) clean removes it.

Also earlier .gitignore listed config.mak.in which is a tracked file. Fix it.

---
* on top of today's 5 series from you.

 .gitignore |    2 +-
 Makefile   |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
.gitignore +1 -1
index fb0fa3f..6e973b3 100644
@@ -140,7 +140,7 @@ config.mak
 autom4te.cache
 config.log
 config.status
-config.mak.in
 config.mak.autogen
+config.mak.append
 configure
 git-blame
Makefile +1 -1
index d8cc835..d4297c2 100644
@@ -793,7 +793,7 @@ clean:
 	rm -f $(ALL_PROGRAMS) $(BUILT_INS) git$X
 	rm -f *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags
 	rm -rf autom4te.cache
-	rm -f config.log config.mak.autogen configure config.status config.cache
+	rm -f configure config.log config.mak.autogen config.mak.append config.status config.cache
 	rm -rf $(GIT_TARNAME) .doc-tmp-dir
 	rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
 	rm -f $(htmldocs).tar.gz $(manpages).tar.gz
Signature · 1 line
1.4.2.rc3.g45c5
#13 lore raw

Re: [PATCH] autoconf: clean temporary file mak.append

Makefile clean: · line 799

Quoted 13 lines · Junio C Hamano
Makefile +1 -1
index d8cc835..d4297c2 100644
@@ -793,7 +793,7 @@ clean:
      rm -f $(ALL_PROGRAMS) $(BUILT_INS) git$X
      rm -f *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags
      rm -rf autom4te.cache
-     rm -f config.log config.mak.autogen configure config.status config.cache
+     rm -f configure config.log config.mak.autogen config.mak.append config.status config.cache
      rm -rf $(GIT_TARNAME) .doc-tmp-dir
      rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
      rm -f $(htmldocs).tar.gz $(manpages).tar.gz

I didn't add configure to make clean, because there was hand-crafted configure script in git.git.

Signature · 3 lines
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
#14 lore raw

Re: [PATCH] autoconf: clean temporary file mak.append

Quoted 18 lines · Jakub Narebski

Makefile clean: · line 799

Quoted 13 lines · Junio C Hamano
Makefile +1 -1
index d8cc835..d4297c2 100644
@@ -793,7 +793,7 @@ clean:
      rm -f $(ALL_PROGRAMS) $(BUILT_INS) git$X
      rm -f *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags
      rm -rf autom4te.cache
-     rm -f config.log config.mak.autogen configure config.status config.cache
+     rm -f configure config.log config.mak.autogen config.mak.append config.status config.cache
      rm -rf $(GIT_TARNAME) .doc-tmp-dir
      rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
      rm -f $(htmldocs).tar.gz $(manpages).tar.gz

I didn't add configure to make clean, because there was hand-crafted configure script in git.git.

Did anybody ask who added 'configure'?