NO_NSEC = YesPlease
  endif
  ifeq ($(uname_S),Linux)
 +      HAVE_ALLOCA_H = YesPlease
        NO_STRLCPY = YesPlease
        NO_MKSTEMPS = YesPlease
        HAVE_PATHS_H = YesPlease
        LIBC_CONTAINS_LIBINTL = YesPlease
        HAVE_DEV_TTY = YesPlease
 +      HAVE_CLOCK_GETTIME = YesPlease
 +      HAVE_CLOCK_MONOTONIC = YesPlease
 +      HAVE_GETDELIM = YesPlease
 +      SANE_TEXT_GREP=-a
  endif
  ifeq ($(uname_S),GNU/kFreeBSD)
 +      HAVE_ALLOCA_H = YesPlease
        NO_STRLCPY = YesPlease
        NO_MKSTEMPS = YesPlease
        HAVE_PATHS_H = YesPlease
        NEEDS_CRYPTO_WITH_SSL = YesPlease
        NEEDS_SSL_WITH_CRYPTO = YesPlease
        NEEDS_LIBICONV = YesPlease
 +      # Note: $(uname_R) gives us the underlying Darwin version.
 +      # - MacOS 10.0.* and MacOS 10.1.0 = Darwin 1.*
 +      # - MacOS 10.x.* = Darwin (x+4).* for (1 <= x)
 +      # i.e. "begins with [15678] and a dot" means "10.4.* or older".
        ifeq ($(shell expr "$(uname_R)" : '[15678]\.'),2)
                OLD_ICONV = UnfortunatelyYes
 +              NO_APPLE_COMMON_CRYPTO = YesPlease
        endif
        ifeq ($(shell expr "$(uname_R)" : '[15]\.'),2)
                NO_STRLCPY = YesPlease
        endif
 +      ifeq ($(shell test "`expr "$(uname_R)" : '\([0-9][0-9]*\)\.'`" -ge 11 && echo 1),1)
 +              HAVE_GETDELIM = YesPlease
 +      endif
        NO_MEMMEM = YesPlease
        USE_ST_TIMESPEC = YesPlease
        HAVE_DEV_TTY = YesPlease
        COMPAT_OBJS += compat/precompose_utf8.o
        BASIC_CFLAGS += -DPRECOMPOSE_UNICODE
        BASIC_CFLAGS += -DPROTECT_HFS_DEFAULT=1
 +      HAVE_BSD_SYSCTL = YesPlease
  endif
  ifeq ($(uname_S),SunOS)
        NEEDS_SOCKET = YesPlease
        NEEDS_NSL = YesPlease
        SHELL_PATH = /bin/bash
        SANE_TOOL_PATH = /usr/xpg6/bin:/usr/xpg4/bin
 +      HAVE_ALLOCA_H = YesPlease
        NO_STRCASESTR = YesPlease
        NO_MEMMEM = YesPlease
        NO_MKDTEMP = YesPlease
        endif
        INSTALL = /usr/ucb/install
        TAR = gtar
 -      BASIC_CFLAGS += -D__EXTENSIONS__ -D__sun__ -DHAVE_ALLOCA_H
 +      BASIC_CFLAGS += -D__EXTENSIONS__ -D__sun__
  endif
  ifeq ($(uname_O),Cygwin)
        ifeq ($(shell expr "$(uname_R)" : '1\.[1-6]\.'),4)
                NO_D_TYPE_IN_DIRENT = YesPlease
 -              NO_D_INO_IN_DIRENT = YesPlease
                NO_STRCASESTR = YesPlease
                NO_MEMMEM = YesPlease
                NO_MKSTEMPS = YesPlease
        else
                NO_REGEX = UnfortunatelyYes
        endif
 +      HAVE_ALLOCA_H = YesPlease
        NEEDS_LIBICONV = YesPlease
        NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
        NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
        X = .exe
        UNRELIABLE_FSTAT = UnfortunatelyYes
        SPARSE_FLAGS = -isystem /usr/include/w32api -Wno-one-bit-signed-bitfield
+       OBJECT_CREATION_USES_RENAMES = UnfortunatelyNeedsTo
  endif
  ifeq ($(uname_S),FreeBSD)
        NEEDS_LIBICONV = YesPlease
        PYTHON_PATH = /usr/local/bin/python
        HAVE_PATHS_H = YesPlease
        GMTIME_UNRELIABLE_ERRORS = UnfortunatelyYes
 +      HAVE_BSD_SYSCTL = YesPlease
  endif
  ifeq ($(uname_S),OpenBSD)
        NO_STRCASESTR = YesPlease
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
        HAVE_PATHS_H = YesPlease
 +      HAVE_BSD_SYSCTL = YesPlease
  endif
  ifeq ($(uname_S),MirBSD)
        NO_STRCASESTR = YesPlease
        USE_ST_TIMESPEC = YesPlease
        NEEDS_LIBICONV = YesPlease
        HAVE_PATHS_H = YesPlease
 +      HAVE_BSD_SYSCTL = YesPlease
  endif
  ifeq ($(uname_S),NetBSD)
        ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2)
        USE_ST_TIMESPEC = YesPlease
        NO_MKSTEMPS = YesPlease
        HAVE_PATHS_H = YesPlease
 +      HAVE_BSD_SYSCTL = YesPlease
  endif
  ifeq ($(uname_S),AIX)
        DEFAULT_PAGER = more
  endif
  ifeq ($(uname_S),GNU)
        # GNU/Hurd
 +      HAVE_ALLOCA_H = YesPlease
        NO_STRLCPY = YesPlease
        NO_MKSTEMPS = YesPlease
        HAVE_PATHS_H = YesPlease
  ifeq ($(uname_S),Windows)
        GIT_VERSION := $(GIT_VERSION).MSVC
        pathsep = ;
 +      HAVE_ALLOCA_H = YesPlease
        NO_PREAD = YesPlease
        NEEDS_CRYPTO_WITH_SSL = YesPlease
        NO_LIBGEN_H = YesPlease
        NO_IPV6 = YesPlease
        NO_UNIX_SOCKETS = YesPlease
        NO_SETENV = YesPlease
 -      NO_UNSETENV = YesPlease
        NO_STRCASESTR = YesPlease
        NO_STRLCPY = YesPlease
        NO_MEMMEM = YesPlease
        COMPAT_OBJS = compat/msvc.o compat/winansi.o \
                compat/win32/pthread.o compat/win32/syslog.o \
                compat/win32/dirent.o
 -      COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
 -      BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib
 +      COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\"
 +      BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE
        EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib invalidcontinue.obj
        PTHREAD_LIBS =
        lib =
        BASIC_CFLAGS += -DPROTECT_NTFS_DEFAULT=1
  ifndef DEBUG
 -      BASIC_CFLAGS += -GL -Os -MT
 +      BASIC_CFLAGS += -GL -Os -MD
        BASIC_LDFLAGS += -LTCG
        AR += -LTCG
  else
 -      BASIC_CFLAGS += -Zi -MTd
 +      BASIC_CFLAGS += -Zi -MDd
  endif
        X = .exe
  endif
  endif
  ifneq (,$(findstring MINGW,$(uname_S)))
        pathsep = ;
 +      HAVE_ALLOCA_H = YesPlease
        NO_PREAD = YesPlease
        NEEDS_CRYPTO_WITH_SSL = YesPlease
        NO_LIBGEN_H = YesPlease
        NO_SYMLINK_HEAD = YesPlease
        NO_UNIX_SOCKETS = YesPlease
        NO_SETENV = YesPlease
 -      NO_UNSETENV = YesPlease
        NO_STRCASESTR = YesPlease
        NO_STRLCPY = YesPlease
        NO_MEMMEM = YesPlease
        NO_INET_NTOP = YesPlease
        NO_POSIX_GOODIES = UnfortunatelyYes
        DEFAULT_HELP_FORMAT = html
 -      COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -D_USE_32BIT_TIME_T -DNOGDI -Icompat -Icompat/win32
 +      COMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32
        COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
        COMPAT_OBJS += compat/mingw.o compat/winansi.o \
                compat/win32/pthread.o compat/win32/syslog.o \
                compat/win32/dirent.o
        BASIC_CFLAGS += -DPROTECT_NTFS_DEFAULT=1
 -      BASIC_LDFLAGS += -Wl,--large-address-aware
        EXTLIBS += -lws2_32
        GITLIBS += git.res
        PTHREAD_LIBS =
        INTERNAL_QSORT = YesPlease
        HAVE_LIBCHARSET_H = YesPlease
        NO_GETTEXT = YesPlease
 +      COMPAT_CLFAGS += -D__USE_MINGW_ACCESS
  else
 -      NO_CURL = YesPlease
 +      ifeq ($(shell expr "$(uname_R)" : '2\.'),2)
 +              # MSys2
 +              prefix = /usr/
 +              ifeq (MINGW32,$(MSYSTEM))
 +                      prefix = /mingw32
 +              endif
 +              ifeq (MINGW64,$(MSYSTEM))
 +                      prefix = /mingw64
 +              else
 +                      COMPAT_CFLAGS += -D_USE_32BIT_TIME_T
 +                      BASIC_LDFLAGS += -Wl,--large-address-aware
 +              endif
 +              CC = gcc
 +              COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO=0
 +              INSTALL = /bin/install
 +              NO_R_TO_GCC_LINKER = YesPlease
 +              INTERNAL_QSORT = YesPlease
 +              HAVE_LIBCHARSET_H = YesPlease
 +              NO_GETTEXT =
 +              USE_GETTEXT_SCHEME = fallthrough
 +              USE_LIBPCRE= YesPlease
 +              NO_CURL =
 +              USE_NED_ALLOCATOR = YesPlease
 +      else
 +              COMPAT_CFLAGS += -D__USE_MINGW_ANSI_STDIO
 +              NO_CURL = YesPlease
 +      endif
  endif
  endif
  ifeq ($(uname_S),QNX)