Merge branch 'tr/maint-roff-quote'
authorJunio C Hamano <gitster@pobox.com>
Sat, 31 Oct 2009 03:05:54 +0000 (20:05 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 31 Oct 2009 03:05:54 +0000 (20:05 -0700)
* tr/maint-roff-quote:
Quote ' as \(aq in manpages

1  2 
Documentation/Makefile
Makefile
diff --combined Documentation/Makefile
index 06b0c57b95057b3df4f215f3191fd8e9fc473e6f,7614844efa78efc7679c374029de395032672621..cd5b4396dbc174edbba3eb42bb285eefc57f9caf
@@@ -84,7 -84,7 +84,7 @@@ endi
  #
  
  ifdef ASCIIDOC8
 -ASCIIDOC_EXTRA += -a asciidoc7compatible
 +ASCIIDOC_EXTRA += -a asciidoc7compatible -a no-inline-literal
  endif
  ifdef DOCBOOK_XSL_172
  ASCIIDOC_EXTRA += -a git-asciidoc-no-roff
@@@ -103,6 -103,14 +103,14 @@@ ifdef DOCBOOK_SUPPRESS_S
  XMLTO_EXTRA += -m manpage-suppress-sp.xsl
  endif
  
+ # If your target system uses GNU groff, it may try to render
+ # apostrophes as a "pretty" apostrophe using unicode.  This breaks
+ # cut&paste, so you should set GNU_ROFF to force them to be ASCII
+ # apostrophes.  Unfortunately does not work with non-GNU roff.
+ ifdef GNU_ROFF
+ XMLTO_EXTRA += -m manpage-quote-apos.xsl
+ endif
  SHELL_PATH ?= $(SHELL)
  # Shell quote;
  SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
diff --combined Makefile
index 268aede566c29bdf5f4e19fb2a6819fc197c0fbb,79747174190ff5ddc09558af1b90daae01176874..9c5d299f4d0cae315430ac84b6e9932eed2d5118
+++ b/Makefile
@@@ -3,11 -3,6 +3,11 @@@ all:
  
  # Define V=1 to have a more verbose compile.
  #
 +# Define SHELL_PATH to a POSIX shell if your /bin/sh is broken.
 +#
 +# Define SANE_TOOL_PATH to a colon-separated list of paths to prepend
 +# to PATH if your tools in /usr/bin are broken.
 +#
  # Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf()
  # or vsnprintf() return -1 instead of number of characters which would
  # have been written to the final string if enough space had been available.
@@@ -16,7 -11,7 +16,7 @@@
  # when attempting to read from an fopen'ed directory.
  #
  # Define NO_OPENSSL environment variable if you do not have OpenSSL.
 -# This also implies MOZILLA_SHA1.
 +# This also implies BLK_SHA1.
  #
  # Define NO_CURL if you do not have libcurl installed.  git-http-pull and
  # git-http-push are not built, and you cannot use http:// and https://
  #
  # Define NO_MKDTEMP if you don't have mkdtemp in the C library.
  #
 +# Define NO_MKSTEMPS if you don't have mkstemps in the C library.
 +#
 +# Define NO_LIBGEN_H if you don't have libgen.h.
 +#
 +# Define NEEDS_LIBGEN if your libgen needs -lgen when linking
 +#
  # Define NO_SYS_SELECT_H if you don't have sys/select.h.
  #
  # Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link.
  # specify your own (or DarwinPort's) include directories and
  # library directories by defining CFLAGS and LDFLAGS appropriately.
  #
 +# Define BLK_SHA1 environment variable if you want the C version
 +# of the SHA1 that assumes you can do unaligned 32-bit loads and
 +# have a fast htonl() function.
 +#
  # 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 NEEDS_CRYPTO_WITH_SSL if you need -lcrypto when using -lssl (Darwin).
  #
 -# 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 NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
 +# Define NEEDS_SSL_WITH_CRYPTO if you need -lssl when using -lcrypto (Darwin).
  #
  # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
  #
  # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
  # Patrick Mauritz).
  #
 +# Define NEEDS_RESOLV if linking with -lnsl and/or -lsocket is not enough.
 +# Notably on Solaris hstrerror resides in libresolv and on Solaris 7
 +# inet_ntop and inet_pton additionally reside there.
 +#
  # Define NO_MMAP if you want to avoid mmap.
  #
  # Define NO_PTHREADS if you do not have or do not want to use Pthreads.
  #
  # Define ASCIIDOC8 if you want to format documentation with AsciiDoc 8
  #
 -# Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72.
 +# Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72
 +# (not v1.73 or v1.71).
 +#
 +# Define ASCIIDOC_NO_ROFF if your DocBook XSL escapes raw roff directives
 +# (versions 1.72 and later and 1.68.1 and earlier).
  #
+ # Define GNU_ROFF if your target system uses GNU groff.  This forces
+ # apostrophes to be ASCII so that cut&pasting examples to the shell
+ # will work.
+ #
  # Define NO_PERL_MAKEMAKER if you cannot use Makefiles generated by perl's
  # MakeMaker (e.g. using ActiveState under Cygwin).
  #
  #
  # Define NO_CROSS_DIRECTORY_HARDLINKS if you plan to distribute the installed
  # programs as a tar, where bin/ and libexec/ might be on different file systems.
 +#
 +# Define USE_NED_ALLOCATOR if you want to replace the platforms default
 +# memory allocators with the nedmalloc allocator written by Niall Douglas.
 +#
 +# Define NO_REGEX if you have no or inferior regex support in your C library.
  
  GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
        @$(SHELL_PATH) ./GIT-VERSION-GEN
@@@ -250,7 -232,6 +254,7 @@@ ETC_GITCONFIG = etc/gitconfi
  endif
  lib = lib
  # DESTDIR=
 +pathsep = :
  
  # default configuration for gitweb
  GITWEB_CONFIG = gitweb_config.perl
@@@ -358,11 -339,13 +362,11 @@@ PROGRAMS += git-index-pack$
  PROGRAMS += git-merge-index$X
  PROGRAMS += git-merge-tree$X
  PROGRAMS += git-mktag$X
 -PROGRAMS += git-mktree$X
  PROGRAMS += git-pack-redundant$X
  PROGRAMS += git-patch-id$X
  PROGRAMS += git-shell$X
  PROGRAMS += git-show-index$X
  PROGRAMS += git-unpack-file$X
 -PROGRAMS += git-update-server-info$X
  PROGRAMS += git-upload-pack$X
  PROGRAMS += git-var$X
  
@@@ -384,8 -367,7 +388,8 @@@ BUILT_INS += git-stage$
  BUILT_INS += git-status$X
  BUILT_INS += git-whatchanged$X
  
 -# what 'all' will build and 'install' will install, in gitexecdir
 +# what 'all' will build and 'install' will install in gitexecdir,
 +# excluding programs for built-in commands
  ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
  
  # what 'all' will build but not install in gitexecdir
@@@ -404,7 -386,6 +408,7 @@@ export PERL_PAT
  LIB_FILE=libgit.a
  XDIFF_LIB=xdiff/lib.a
  
 +LIB_H += advice.h
  LIB_H += archive.h
  LIB_H += attr.h
  LIB_H += blob.h
@@@ -462,7 -443,6 +466,7 @@@ LIB_H += utf8.
  LIB_H += wt-status.h
  
  LIB_OBJS += abspath.o
 +LIB_OBJS += advice.o
  LIB_OBJS += alias.o
  LIB_OBJS += alloc.o
  LIB_OBJS += archive.o
@@@ -536,7 -516,6 +540,7 @@@ LIB_OBJS += read-cache.
  LIB_OBJS += reflog-walk.o
  LIB_OBJS += refs.o
  LIB_OBJS += remote.o
 +LIB_OBJS += replace_object.o
  LIB_OBJS += rerere.o
  LIB_OBJS += revision.o
  LIB_OBJS += run-command.o
@@@ -554,7 -533,6 +558,7 @@@ LIB_OBJS += symlinks.
  LIB_OBJS += tag.o
  LIB_OBJS += trace.o
  LIB_OBJS += transport.o
 +LIB_OBJS += transport-helper.o
  LIB_OBJS += tree-diff.o
  LIB_OBJS += tree.o
  LIB_OBJS += tree-walk.o
@@@ -615,7 -593,6 +619,7 @@@ BUILTIN_OBJS += builtin-merge-base.
  BUILTIN_OBJS += builtin-merge-file.o
  BUILTIN_OBJS += builtin-merge-ours.o
  BUILTIN_OBJS += builtin-merge-recursive.o
 +BUILTIN_OBJS += builtin-mktree.o
  BUILTIN_OBJS += builtin-mv.o
  BUILTIN_OBJS += builtin-name-rev.o
  BUILTIN_OBJS += builtin-pack-objects.o
@@@ -627,7 -604,6 +631,7 @@@ BUILTIN_OBJS += builtin-read-tree.
  BUILTIN_OBJS += builtin-receive-pack.o
  BUILTIN_OBJS += builtin-reflog.o
  BUILTIN_OBJS += builtin-remote.o
 +BUILTIN_OBJS += builtin-replace.o
  BUILTIN_OBJS += builtin-rerere.o
  BUILTIN_OBJS += builtin-reset.o
  BUILTIN_OBJS += builtin-rev-list.o
@@@ -645,7 -621,6 +649,7 @@@ BUILTIN_OBJS += builtin-tar-tree.
  BUILTIN_OBJS += builtin-unpack-objects.o
  BUILTIN_OBJS += builtin-update-index.o
  BUILTIN_OBJS += builtin-update-ref.o
 +BUILTIN_OBJS += builtin-update-server-info.o
  BUILTIN_OBJS += builtin-upload-archive.o
  BUILTIN_OBJS += builtin-verify-pack.o
  BUILTIN_OBJS += builtin-verify-tag.o
@@@ -664,12 -639,10 +668,12 @@@ EXTLIBS 
  
  ifeq ($(uname_S),Linux)
        NO_STRLCPY = YesPlease
 +      NO_MKSTEMPS = YesPlease
        THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),GNU/kFreeBSD)
        NO_STRLCPY = YesPlease
 +      NO_MKSTEMPS = YesPlease
        THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),UnixWare)
        SHELL_PATH = /usr/local/bin/bash
        NO_IPV6 = YesPlease
        NO_HSTRERROR = YesPlease
 +      NO_MKSTEMPS = YesPlease
        BASIC_CFLAGS += -Kthread
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
@@@ -705,7 -677,6 +709,7 @@@ ifeq ($(uname_S),SCO_SV
        SHELL_PATH = /usr/bin/bash
        NO_IPV6 = YesPlease
        NO_HSTRERROR = YesPlease
 +      NO_MKSTEMPS = YesPlease
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
        NO_STRCASESTR = YesPlease
        TAR = gtar
  endif
  ifeq ($(uname_S),Darwin)
 +      NEEDS_CRYPTO_WITH_SSL = YesPlease
        NEEDS_SSL_WITH_CRYPTO = YesPlease
        NEEDS_LIBICONV = YesPlease
        ifeq ($(shell expr "$(uname_R)" : '[15678]\.'),2)
@@@ -731,24 -701,12 +735,24 @@@ ifeq ($(uname_S),SunOS
        NEEDS_SOCKET = YesPlease
        NEEDS_NSL = YesPlease
        SHELL_PATH = /bin/bash
 +      SANE_TOOL_PATH = /usr/xpg6/bin:/usr/xpg4/bin
        NO_STRCASESTR = YesPlease
        NO_MEMMEM = YesPlease
 -      NO_HSTRERROR = YesPlease
        NO_MKDTEMP = YesPlease
 -      OLD_ICONV = UnfortunatelyYes
 +      NO_MKSTEMPS = YesPlease
 +      NO_REGEX = YesPlease
        NO_EXTERNAL_GREP = YesPlease
 +      THREADED_DELTA_SEARCH = YesPlease
 +      ifeq ($(uname_R),5.7)
 +              NEEDS_RESOLV = YesPlease
 +              NO_IPV6 = YesPlease
 +              NO_SOCKADDR_STORAGE = YesPlease
 +              NO_UNSETENV = YesPlease
 +              NO_SETENV = YesPlease
 +              NO_STRLCPY = YesPlease
 +              NO_C99_FORMAT = YesPlease
 +              NO_STRTOUMAX = YesPlease
 +      endif
        ifeq ($(uname_R),5.8)
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
                NO_C99_FORMAT = YesPlease
                NO_STRTOUMAX = YesPlease
        endif
 -      INSTALL = ginstall
 +      INSTALL = /usr/ucb/install
        TAR = gtar
 -      BASIC_CFLAGS += -D__EXTENSIONS__
 +      BASIC_CFLAGS += -D__EXTENSIONS__ -D__sun__ -DHAVE_ALLOCA_H
  endif
  ifeq ($(uname_O),Cygwin)
        NO_D_TYPE_IN_DIRENT = YesPlease
        NO_D_INO_IN_DIRENT = YesPlease
        NO_STRCASESTR = YesPlease
        NO_MEMMEM = YesPlease
 +      NO_MKSTEMPS = YesPlease
        NO_SYMLINK_HEAD = YesPlease
        NEEDS_LIBICONV = YesPlease
        NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
@@@ -814,13 -771,11 +818,13 @@@ ifeq ($(uname_S),NetBSD
        BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
        THREADED_DELTA_SEARCH = YesPlease
        USE_ST_TIMESPEC = YesPlease
 +      NO_MKSTEMPS = YesPlease
  endif
  ifeq ($(uname_S),AIX)
        NO_STRCASESTR=YesPlease
        NO_MEMMEM = YesPlease
        NO_MKDTEMP = YesPlease
 +      NO_MKSTEMPS = YesPlease
        NO_STRLCPY = YesPlease
        NO_NSEC = YesPlease
        FREAD_READS_DIRECTORIES = UnfortunatelyYes
@@@ -836,54 -791,24 +840,54 @@@ endi
  ifeq ($(uname_S),GNU)
        # GNU/Hurd
        NO_STRLCPY=YesPlease
 +      NO_MKSTEMPS = YesPlease
 +endif
 +ifeq ($(uname_S),IRIX)
 +      NO_SETENV = YesPlease
 +      NO_UNSETENV = YesPlease
 +      NO_STRCASESTR = YesPlease
 +      NO_MEMMEM = YesPlease
 +      NO_MKSTEMPS = YesPlease
 +      NO_MKDTEMP = YesPlease
 +      # When compiled with the MIPSpro 7.4.4m compiler, and without pthreads
 +      # (i.e. NO_PTHREADS is set), and _with_ MMAP (i.e. NO_MMAP is not set),
 +      # git dies with a segmentation fault when trying to access the first
 +      # entry of a reflog.  The conservative choice is made to always set
 +      # NO_MMAP.  If you suspect that your compiler is not affected by this
 +      # issue, comment out the NO_MMAP statement.
 +      NO_MMAP = YesPlease
 +      NO_EXTERNAL_GREP = UnfortunatelyYes
 +      SNPRINTF_RETURNS_BOGUS = YesPlease
 +      SHELL_PATH = /usr/gnu/bin/bash
 +      NEEDS_LIBGEN = YesPlease
 +      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),IRIX64)
 -      NO_IPV6=YesPlease
        NO_SETENV=YesPlease
 +      NO_UNSETENV = YesPlease
        NO_STRCASESTR=YesPlease
        NO_MEMMEM = YesPlease
 -      NO_STRLCPY = YesPlease
 -      NO_SOCKADDR_STORAGE=YesPlease
 +      NO_MKSTEMPS = YesPlease
 +      NO_MKDTEMP = YesPlease
 +      # When compiled with the MIPSpro 7.4.4m compiler, and without pthreads
 +      # (i.e. NO_PTHREADS is set), and _with_ MMAP (i.e. NO_MMAP is not set),
 +      # git dies with a segmentation fault when trying to access the first
 +      # entry of a reflog.  The conservative choice is made to always set
 +      # NO_MMAP.  If you suspect that your compiler is not affected by this
 +      # issue, comment out the NO_MMAP statement.
 +      NO_MMAP = YesPlease
 +      NO_EXTERNAL_GREP = UnfortunatelyYes
 +      SNPRINTF_RETURNS_BOGUS = YesPlease
        SHELL_PATH=/usr/gnu/bin/bash
 -      BASIC_CFLAGS += -DPATH_MAX=1024
 -      # for now, build 32-bit version
 -      BASIC_LDFLAGS += -L/usr/lib32
 +      NEEDS_LIBGEN = YesPlease
 +      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),HP-UX)
        NO_IPV6=YesPlease
        NO_SETENV=YesPlease
        NO_STRCASESTR=YesPlease
        NO_MEMMEM = YesPlease
 +      NO_MKSTEMPS = YesPlease
        NO_STRLCPY = YesPlease
        NO_MKDTEMP = YesPlease
        NO_UNSETENV = YesPlease
@@@ -895,12 -820,10 +899,12 @@@ ifneq (,$(findstring CYGWIN,$(uname_S))
        COMPAT_OBJS += compat/cygwin.o
        UNRELIABLE_FSTAT = UnfortunatelyYes
  endif
 -ifneq (,$(findstring MINGW,$(uname_S)))
 +ifdef MSVC
 +      GIT_VERSION := $(GIT_VERSION).MSVC
 +      pathsep = ;
        NO_PREAD = YesPlease
        NO_OPENSSL = YesPlease
 -      NO_CURL = YesPlease
 +      NO_LIBGEN_H = YesPlease
        NO_SYMLINK_HEAD = YesPlease
        NO_IPV6 = YesPlease
        NO_SETENV = YesPlease
        NO_STRCASESTR = YesPlease
        NO_STRLCPY = YesPlease
        NO_MEMMEM = YesPlease
 +      # NEEDS_LIBICONV = YesPlease
 +      NO_ICONV = YesPlease
 +      NO_C99_FORMAT = YesPlease
 +      NO_STRTOUMAX = YesPlease
 +      NO_STRTOULL = YesPlease
 +      NO_MKDTEMP = YesPlease
 +      NO_MKSTEMPS = YesPlease
 +      SNPRINTF_RETURNS_BOGUS = YesPlease
 +      NO_SVN_TESTS = YesPlease
 +      NO_PERL_MAKEMAKER = YesPlease
 +      RUNTIME_PREFIX = YesPlease
 +      NO_POSIX_ONLY_PROGRAMS = YesPlease
 +      NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
 +      NO_NSEC = YesPlease
 +      USE_WIN32_MMAP = YesPlease
 +      # USE_NED_ALLOCATOR = YesPlease
 +      UNRELIABLE_FSTAT = UnfortunatelyYes
 +      OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo
 +      NO_REGEX = YesPlease
 +      NO_CURL = YesPlease
        NO_PTHREADS = YesPlease
 +
 +      CC = compat/vcbuild/scripts/clink.pl
 +      AR = compat/vcbuild/scripts/lib.pl
 +      CFLAGS =
 +      BASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE
 +      COMPAT_OBJS = compat/msvc.o compat/fnmatch/fnmatch.o compat/winansi.o
 +      COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/fnmatch -Icompat/regex -Icompat/fnmatch -DSTRIP_EXTENSION=\".exe\"
 +      BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
 +      EXTLIBS = advapi32.lib shell32.lib wininet.lib ws2_32.lib
 +      lib =
 +ifndef DEBUG
 +      BASIC_CFLAGS += -GL -Os -MT
 +      BASIC_LDFLAGS += -LTCG
 +      AR += -LTCG
 +else
 +      BASIC_CFLAGS += -Zi -MTd
 +endif
 +      X = .exe
 +else
 +ifneq (,$(findstring MINGW,$(uname_S)))
 +      pathsep = ;
 +      NO_PREAD = YesPlease
 +      NO_OPENSSL = YesPlease
 +      NO_LIBGEN_H = YesPlease
 +      NO_SYMLINK_HEAD = YesPlease
 +      NO_IPV6 = YesPlease
 +      NO_SETENV = YesPlease
 +      NO_UNSETENV = YesPlease
 +      NO_STRCASESTR = YesPlease
 +      NO_STRLCPY = YesPlease
 +      NO_MEMMEM = YesPlease
        NEEDS_LIBICONV = YesPlease
        OLD_ICONV = YesPlease
        NO_C99_FORMAT = YesPlease
        NO_STRTOUMAX = YesPlease
        NO_MKDTEMP = YesPlease
 +      NO_MKSTEMPS = YesPlease
        SNPRINTF_RETURNS_BOGUS = YesPlease
        NO_SVN_TESTS = YesPlease
        NO_PERL_MAKEMAKER = YesPlease
        NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
        NO_NSEC = YesPlease
        USE_WIN32_MMAP = YesPlease
 +      USE_NED_ALLOCATOR = YesPlease
        UNRELIABLE_FSTAT = UnfortunatelyYes
        OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo
 -      COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/regex -Icompat/fnmatch
 -      COMPAT_CFLAGS += -DSNPRINTF_SIZE_CORR=1
 +      NO_REGEX = YesPlease
 +      COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/fnmatch
        COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
 -      COMPAT_OBJS += compat/mingw.o compat/fnmatch/fnmatch.o compat/regex/regex.o compat/winansi.o
 +      COMPAT_OBJS += compat/mingw.o compat/fnmatch/fnmatch.o compat/winansi.o
        EXTLIBS += -lws2_32
        X = .exe
 +ifneq (,$(wildcard ../THIS_IS_MSYSGIT))
 +      htmldir=doc/git/html/
 +      prefix =
 +      INSTALL = /bin/install
 +      EXTLIBS += /mingw/lib/libz.a
 +      NO_R_TO_GCC_LINKER = YesPlease
 +      INTERNAL_QSORT = YesPlease
 +      THREADED_DELTA_SEARCH = YesPlease
 +else
 +      NO_CURL = YesPlease
 +      NO_PTHREADS = YesPlease
 +endif
  endif
 -ifneq (,$(findstring arm,$(uname_M)))
 -      ARM_SHA1 = YesPlease
  endif
  
  -include config.mak.autogen
  -include config.mak
  
 +ifdef SANE_TOOL_PATH
 +SANE_TOOL_PATH_SQ = $(subst ','\'',$(SANE_TOOL_PATH))
 +BROKEN_PATH_FIX = 's|^\# @@BROKEN_PATH_FIX@@$$|git_broken_path_fix $(SANE_TOOL_PATH_SQ)|'
 +PATH := $(SANE_TOOL_PATH):${PATH}
 +else
 +BROKEN_PATH_FIX = '/^\# @@BROKEN_PATH_FIX@@$$/d'
 +endif
 +
  ifeq ($(uname_S),Darwin)
        ifndef NO_FINK
                ifeq ($(shell test -d /sw/lib && echo y),y)
@@@ -1035,11 -887,6 +1039,11 @@@ ifndef CC_LD_DYNPAT
        endif
  endif
  
 +ifdef NO_LIBGEN_H
 +      COMPAT_CFLAGS += -DNO_LIBGEN_H
 +      COMPAT_OBJS += compat/basename.o
 +endif
 +
  ifdef NO_CURL
        BASIC_CFLAGS += -DNO_CURL
  else
        else
                CURL_LIBCURL = -lcurl
        endif
 -      BUILTIN_OBJS += builtin-http-fetch.o
 -      EXTLIBS += $(CURL_LIBCURL)
 -      LIB_OBJS += http.o http-walker.o
 +      PROGRAMS += git-remote-curl$X git-http-fetch$X
        curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p)
        ifeq "$(curl_check)" "070908"
                ifndef NO_EXPAT
@@@ -1085,12 -934,9 +1089,12 @@@ ifndef NO_OPENSS
        else
                OPENSSL_LINK =
        endif
 +      ifdef NEEDS_CRYPTO_WITH_SSL
 +              OPENSSL_LINK += -lcrypto
 +      endif
  else
        BASIC_CFLAGS += -DNO_OPENSSL
 -      MOZILLA_SHA1 = 1
 +      BLK_SHA1 = 1
        OPENSSL_LIBSSL =
  endif
  ifdef NEEDS_SSL_WITH_CRYPTO
@@@ -1107,18 -953,12 +1111,18 @@@ ifdef NEEDS_LIBICON
        endif
        EXTLIBS += $(ICONV_LINK) -liconv
  endif
 +ifdef NEEDS_LIBGEN
 +      EXTLIBS += -lgen
 +endif
  ifdef NEEDS_SOCKET
        EXTLIBS += -lsocket
  endif
  ifdef NEEDS_NSL
        EXTLIBS += -lnsl
  endif
 +ifdef NEEDS_RESOLV
 +      EXTLIBS += -lresolv
 +endif
  ifdef NO_D_TYPE_IN_DIRENT
        BASIC_CFLAGS += -DNO_D_TYPE_IN_DIRENT
  endif
@@@ -1174,10 -1014,6 +1178,10 @@@ ifdef NO_MKDTEM
        COMPAT_CFLAGS += -DNO_MKDTEMP
        COMPAT_OBJS += compat/mkdtemp.o
  endif
 +ifdef NO_MKSTEMPS
 +      COMPAT_CFLAGS += -DNO_MKSTEMPS
 +      COMPAT_OBJS += compat/mkstemps.o
 +endif
  ifdef NO_UNSETENV
        COMPAT_CFLAGS += -DNO_UNSETENV
        COMPAT_OBJS += compat/unsetenv.o
@@@ -1239,18 -1075,23 +1243,18 @@@ ifdef NO_DEFLATE_BOUN
        BASIC_CFLAGS += -DNO_DEFLATE_BOUND
  endif
  
 +ifdef BLK_SHA1
 +      SHA1_HEADER = "block-sha1/sha1.h"
 +      LIB_OBJS += block-sha1/sha1.o
 +else
  ifdef PPC_SHA1
        SHA1_HEADER = "ppc/sha1.h"
        LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
 -else
 -ifdef ARM_SHA1
 -      SHA1_HEADER = "arm/sha1.h"
 -      LIB_OBJS += arm/sha1.o arm/sha1_arm.o
 -else
 -ifdef MOZILLA_SHA1
 -      SHA1_HEADER = "mozilla-sha1/sha1.h"
 -      LIB_OBJS += mozilla-sha1/sha1.o
  else
        SHA1_HEADER = <openssl/sha.h>
        EXTLIBS += $(LIB_4_CRYPTO)
  endif
  endif
 -endif
  ifdef NO_PERL_MAKEMAKER
        export NO_PERL_MAKEMAKER
  endif
@@@ -1290,15 -1131,6 +1294,15 @@@ endi
  ifdef UNRELIABLE_FSTAT
        BASIC_CFLAGS += -DUNRELIABLE_FSTAT
  endif
 +ifdef NO_REGEX
 +      COMPAT_CFLAGS += -Icompat/regex
 +      COMPAT_OBJS += compat/regex/regex.o
 +endif
 +
 +ifdef USE_NED_ALLOCATOR
 +       COMPAT_CFLAGS += -DUSE_NED_ALLOCATOR -DOVERRIDE_STRDUP -DNDEBUG -DREPLACE_SYSTEM_ALLOCATOR -Icompat/nedmalloc
 +       COMPAT_OBJS += compat/nedmalloc/nedmalloc.o
 +endif
  
  ifeq ($(TCLTK_PATH),)
  NO_TCLTK=NoThanks
@@@ -1324,7 -1156,6 +1328,7 @@@ ifndef 
        QUIET_LINK     = @echo '   ' LINK $@;
        QUIET_BUILT_IN = @echo '   ' BUILTIN $@;
        QUIET_GEN      = @echo '   ' GEN $@;
 +      QUIET_LNCP     = @echo '   ' LN/CP $@;
        QUIET_SUBDIR0  = +@subdir=
        QUIET_SUBDIR1  = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
                         $(MAKE) $(PRINT_DIR) -C $$subdir
@@@ -1375,7 -1206,7 +1379,7 @@@ SHELL = $(SHELL_PATH
  
  all:: shell_compatibility_test $(ALL_PROGRAMS) $(BUILT_INS) $(OTHER_PROGRAMS) GIT-BUILD-OPTIONS
  ifneq (,$X)
 -      $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test '$p' -ef '$p$X' || $(RM) '$p';)
 +      $(QUIET_BUILT_IN)$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test -d '$p' -o '$p' -ef '$p$X' || $(RM) '$p';)
  endif
  
  all::
@@@ -1399,7 -1230,7 +1403,7 @@@ strip: $(PROGRAMS) git$
  git.o: git.c common-cmds.h GIT-CFLAGS
        $(QUIET_CC)$(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \
                '-DGIT_HTML_PATH="$(htmldir_SQ)"' \
 -              $(ALL_CFLAGS) -c $(filter %.c,$^)
 +              $(ALL_CFLAGS) -o $@ -c $(filter %.c,$^)
  
  git$X: git.o $(BUILTIN_OBJS) $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \
@@@ -1426,9 -1257,9 +1430,9 @@@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %
        $(QUIET_GEN)$(RM) $@ $@+ && \
        sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
            -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
 -          -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
            -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
            -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
 +          -e $(BROKEN_PATH_FIX) \
            $@.sh >$@+ && \
        chmod +x $@+ && \
        mv $@+ $@
@@@ -1445,7 -1276,7 +1449,7 @@@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % 
        sed -e '1{' \
            -e '        s|#!.*perl|#!$(PERL_PATH_SQ)|' \
            -e '        h' \
 -          -e '        s=.*=use lib (split(/:/, $$ENV{GITPERLLIB} || "@@INSTLIBDIR@@"));=' \
 +          -e '        s=.*=use lib (split(/$(pathsep)/, $$ENV{GITPERLLIB} || "@@INSTLIBDIR@@"));=' \
            -e '        H' \
            -e '        x' \
            -e '}' \
@@@ -1552,21 -1383,12 +1556,21 @@@ git-imap-send$X: imap-send.o $(GITLIBS
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
                $(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL)
  
 -http.o http-walker.o http-push.o transport.o: http.h
 +http.o http-walker.o http-push.o: http.h
  
 +http.o http-walker.o: $(LIB_H)
 +
 +git-http-fetch$X: revision.o http.o http-walker.o http-fetch.o $(GITLIBS)
 +      $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
 +              $(LIBS) $(CURL_LIBCURL)
  git-http-push$X: revision.o http.o http-push.o $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
                $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
  
 +git-remote-curl$X: remote-curl.o http.o http-walker.o $(GITLIBS)
 +      $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
 +              $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
 +
  $(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
  $(patsubst git-%$X,%.o,$(PROGRAMS)) git.o: $(LIB_H) $(wildcard */*.h)
  builtin-revert.o wt-status.o: wt-status.h
@@@ -1677,8 -1499,6 +1681,8 @@@ test-delta$X: diff-delta.o patch-delta.
  
  test-parse-options$X: parse-options.o
  
 +test-parse-options.o: parse-options.h
 +
  .PRECIOUS: $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))
  
  test-%$X: test-%.o $(GITLIBS)
@@@ -1737,16 -1557,15 +1741,16 @@@ ifneq (,$X
  endif
        bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
        execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
 -      { $(RM) "$$execdir/git-add$X" && \
 +      { test "$$bindir/" = "$$execdir/" || \
 +              { $(RM) "$$execdir/git$X" && \
                test -z "$(NO_CROSS_DIRECTORY_HARDLINKS)" && \
 -              ln "$$bindir/git$X" "$$execdir/git-add$X" 2>/dev/null || \
 -              cp "$$bindir/git$X" "$$execdir/git-add$X"; } && \
 -      { for p in $(filter-out git-add$X,$(BUILT_INS)); do \
 +              ln "$$bindir/git$X" "$$execdir/git$X" 2>/dev/null || \
 +              cp "$$bindir/git$X" "$$execdir/git$X"; } ; } && \
 +      { for p in $(BUILT_INS); do \
                $(RM) "$$execdir/$$p" && \
 -              ln "$$execdir/git-add$X" "$$execdir/$$p" 2>/dev/null || \
 -              ln -s "git-add$X" "$$execdir/$$p" 2>/dev/null || \
 -              cp "$$execdir/git-add$X" "$$execdir/$$p" || exit; \
 +              ln "$$execdir/git$X" "$$execdir/$$p" 2>/dev/null || \
 +              ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
 +              cp "$$execdir/git$X" "$$execdir/$$p" || exit; \
          done; } && \
        ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
  
@@@ -1827,7 -1646,7 +1831,7 @@@ distclean: clea
        $(RM) configure
  
  clean:
 -      $(RM) *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o xdiff/*.o \
 +      $(RM) *.o block-sha1/*.o arm/*.o ppc/*.o compat/*.o compat/*/*.o xdiff/*.o \
                $(LIB_FILE) $(XDIFF_LIB)
        $(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X
        $(RM) $(TEST_PROGRAMS)