# Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks
# d_type in struct dirent (Cygwin 1.5, fixed in Cygwin 1.7).
#
+# Define HAVE_STRINGS_H if you have strings.h and need it for strcasecmp.
+#
# Define NO_STRCASESTR if you don't have strcasestr.
#
# Define NO_MEMMEM if you don't have memmem.
#
+# Define NO_GETPAGESIZE if you don't have getpagesize.
+#
# Define NO_STRLCPY if you don't have strlcpy.
#
# Define NO_STRTOUMAX if you don't have both strtoimax and strtoumax in the
# Define NO_POLL if you do not have or don't want to use poll().
# This also implies NO_SYS_POLL_H.
#
+# Define NEEDS_SYS_PARAM_H if you need to include sys/param.h to compile,
+# *PLEASE* REPORT to git@vger.kernel.org if your platform needs this;
+# we want to know more about the issue.
+#
# Define NO_PTHREADS if you do not have or do not want to use Pthreads.
#
# Define NO_PREAD if you have a problem with pread() system call (e.g.
@$(SHELL_PATH) ./GIT-VERSION-GEN
-include GIT-VERSION-FILE
-uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
-uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
-uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
-uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
-uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not')
-uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')
-
-ifdef MSVC
- # avoid the MingW and Cygwin configuration sections
- uname_S := Windows
- uname_O := Windows
-endif
-
# CFLAGS and LDFLAGS are for the users to override from the command line.
CFLAGS = -g -O2 -Wall
ETC_GITCONFIG = $(sysconfdir)/gitconfig
ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
lib = lib
-# DESTDIR=
+# DESTDIR =
pathsep = :
export prefix bindir sharedir sysconfdir gitwebdir localedir
SCRIPT_PERL += git-send-email.perl
SCRIPT_PERL += git-svn.perl
-SCRIPT_PYTHON += git-remote-testgit.py
+SCRIPT_PYTHON += git-remote-testpy.py
SCRIPT_PYTHON += git-p4.py
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
TEST_PROGRAMS_NEED_X += test-string-list
TEST_PROGRAMS_NEED_X += test-subprocess
TEST_PROGRAMS_NEED_X += test-svn-fe
+TEST_PROGRAMS_NEED_X += test-wildmatch
TEST_PROGRAMS = $(patsubst %,%$X,$(TEST_PROGRAMS_NEED_X))
export PERL_PATH
export PYTHON_PATH
-LIB_FILE=libgit.a
-XDIFF_LIB=xdiff/lib.a
-VCSSVN_LIB=vcs-svn/lib.a
+LIB_FILE = libgit.a
+XDIFF_LIB = xdiff/lib.a
+VCSSVN_LIB = vcs-svn/lib.a
LIB_H += xdiff/xinclude.h
LIB_H += xdiff/xmacros.h
LIB_H += utf8.h
LIB_H += varint.h
LIB_H += walker.h
+LIB_H += wildmatch.h
LIB_H += wt-status.h
LIB_H += xdiff-interface.h
LIB_H += xdiff/xdiff.h
LIB_OBJS += mailmap.o
LIB_OBJS += match-trees.o
LIB_OBJS += merge.o
-LIB_OBJS += merge-file.o
+LIB_OBJS += merge-blobs.o
LIB_OBJS += merge-recursive.o
LIB_OBJS += mergesort.o
LIB_OBJS += name-hash.o
LIB_OBJS += varint.o
LIB_OBJS += version.o
LIB_OBJS += walker.o
+LIB_OBJS += wildmatch.o
LIB_OBJS += wrapper.o
LIB_OBJS += write_or_die.o
LIB_OBJS += ws.o
GIT_USER_AGENT = git/$(GIT_VERSION)
-#
-# Platform specific tweaks
-#
-
-# We choose to avoid "if .. else if .. else .. endif endif"
-# because maintaining the nesting to match is a pain. If
-# we had "elif" things would have been much nicer...
-
-ifeq ($(uname_M),x86_64)
- XDL_FAST_HASH = YesPlease
-endif
-ifeq ($(uname_S),OSF1)
- # Need this for u_short definitions et al
- BASIC_CFLAGS += -D_OSF_SOURCE
- SOCKLEN_T = int
- NO_STRTOULL = YesPlease
- NO_NSEC = YesPlease
-endif
-ifeq ($(uname_S),Linux)
- NO_STRLCPY = YesPlease
- NO_MKSTEMPS = YesPlease
- HAVE_PATHS_H = YesPlease
- LIBC_CONTAINS_LIBINTL = YesPlease
- HAVE_DEV_TTY = YesPlease
-endif
-ifeq ($(uname_S),GNU/kFreeBSD)
- NO_STRLCPY = YesPlease
- NO_MKSTEMPS = YesPlease
- HAVE_PATHS_H = YesPlease
- DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
- LIBC_CONTAINS_LIBINTL = YesPlease
-endif
-ifeq ($(uname_S),UnixWare)
- CC = cc
- NEEDS_SOCKET = YesPlease
- NEEDS_NSL = YesPlease
- NEEDS_SSL_WITH_CRYPTO = YesPlease
- NEEDS_LIBICONV = YesPlease
- 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
- INSTALL = ginstall
- TAR = gtar
- NO_STRCASESTR = YesPlease
- NO_MEMMEM = YesPlease
-endif
-ifeq ($(uname_S),SCO_SV)
- ifeq ($(uname_R),3.2)
- CFLAGS = -O2
- endif
- ifeq ($(uname_R),5)
- CC = cc
- BASIC_CFLAGS += -Kthread
- endif
- NEEDS_SOCKET = YesPlease
- NEEDS_NSL = YesPlease
- NEEDS_SSL_WITH_CRYPTO = YesPlease
- NEEDS_LIBICONV = YesPlease
- 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
- NO_MEMMEM = YesPlease
- INSTALL = ginstall
- 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)
- OLD_ICONV = UnfortunatelyYes
- endif
- ifeq ($(shell expr "$(uname_R)" : '[15]\.'),2)
- NO_STRLCPY = YesPlease
- endif
- NO_MEMMEM = YesPlease
- USE_ST_TIMESPEC = YesPlease
- HAVE_DEV_TTY = YesPlease
- COMPAT_OBJS += compat/precompose_utf8.o
- BASIC_CFLAGS += -DPRECOMPOSE_UNICODE
-endif
-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_MKDTEMP = YesPlease
- NO_MKSTEMPS = YesPlease
- NO_REGEX = YesPlease
- NO_FNMATCH_CASEFOLD = YesPlease
- NO_MSGFMT_EXTENDED_OPTIONS = YesPlease
- HAVE_DEV_TTY = YesPlease
- ifeq ($(uname_R),5.6)
- SOCKLEN_T = int
- NO_HSTRERROR = YesPlease
- NO_IPV6 = YesPlease
- NO_SOCKADDR_STORAGE = YesPlease
- NO_UNSETENV = YesPlease
- NO_SETENV = YesPlease
- NO_STRLCPY = YesPlease
- NO_STRTOUMAX = YesPlease
- GIT_TEST_CMP = cmp
- endif
- 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_STRTOUMAX = YesPlease
- GIT_TEST_CMP = cmp
- endif
- ifeq ($(uname_R),5.8)
- NO_UNSETENV = YesPlease
- NO_SETENV = YesPlease
- NO_STRTOUMAX = YesPlease
- GIT_TEST_CMP = cmp
- endif
- ifeq ($(uname_R),5.9)
- NO_UNSETENV = YesPlease
- NO_SETENV = YesPlease
- NO_STRTOUMAX = YesPlease
- GIT_TEST_CMP = cmp
- endif
- INSTALL = /usr/ucb/install
- TAR = gtar
- BASIC_CFLAGS += -D__EXTENSIONS__ -D__sun__ -DHAVE_ALLOCA_H
-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
- NO_SYMLINK_HEAD = YesPlease
- NO_IPV6 = YesPlease
- OLD_ICONV = UnfortunatelyYes
- CYGWIN_V15_WIN32API = YesPlease
- endif
- NO_THREAD_SAFE_PREAD = YesPlease
- NEEDS_LIBICONV = YesPlease
- NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
- NO_TRUSTABLE_FILEMODE = UnfortunatelyYes
- NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
- # There are conflicting reports about this.
- # On some boxes NO_MMAP is needed, and not so elsewhere.
- # Try commenting this out if you suspect MMAP is more efficient
- NO_MMAP = YesPlease
- X = .exe
- COMPAT_OBJS += compat/cygwin.o
- UNRELIABLE_FSTAT = UnfortunatelyYes
- SPARSE_FLAGS = -isystem /usr/include/w32api -Wno-one-bit-signed-bitfield
-endif
-ifeq ($(uname_S),FreeBSD)
- NEEDS_LIBICONV = YesPlease
- OLD_ICONV = YesPlease
- NO_MEMMEM = YesPlease
- BASIC_CFLAGS += -I/usr/local/include
- BASIC_LDFLAGS += -L/usr/local/lib
- DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
- USE_ST_TIMESPEC = YesPlease
- ifeq ($(shell expr "$(uname_R)" : '4\.'),2)
- PTHREAD_LIBS = -pthread
- NO_UINTMAX_T = YesPlease
- NO_STRTOUMAX = YesPlease
- endif
- PYTHON_PATH = /usr/local/bin/python
- HAVE_PATHS_H = YesPlease
-endif
-ifeq ($(uname_S),OpenBSD)
- NO_STRCASESTR = YesPlease
- NO_MEMMEM = YesPlease
- USE_ST_TIMESPEC = YesPlease
- NEEDS_LIBICONV = YesPlease
- BASIC_CFLAGS += -I/usr/local/include
- BASIC_LDFLAGS += -L/usr/local/lib
- HAVE_PATHS_H = YesPlease
-endif
-ifeq ($(uname_S),NetBSD)
- ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2)
- NEEDS_LIBICONV = YesPlease
- endif
- BASIC_CFLAGS += -I/usr/pkg/include
- BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
- USE_ST_TIMESPEC = YesPlease
- NO_MKSTEMPS = YesPlease
- HAVE_PATHS_H = YesPlease
-endif
-ifeq ($(uname_S),AIX)
- DEFAULT_PAGER = more
- NO_STRCASESTR=YesPlease
- NO_MEMMEM = YesPlease
- NO_MKDTEMP = YesPlease
- NO_MKSTEMPS = YesPlease
- NO_STRLCPY = YesPlease
- NO_NSEC = YesPlease
- FREAD_READS_DIRECTORIES = UnfortunatelyYes
- INTERNAL_QSORT = UnfortunatelyYes
- NEEDS_LIBICONV=YesPlease
- BASIC_CFLAGS += -D_LARGE_FILES
- ifeq ($(shell expr "$(uname_V)" : '[1234]'),1)
- NO_PTHREADS = YesPlease
- else
- PTHREAD_LIBS = -lpthread
- endif
- ifeq ($(shell expr "$(uname_V).$(uname_R)" : '5\.1'),3)
- INLINE=''
- endif
- GIT_TEST_CMP = cmp
-endif
-ifeq ($(uname_S),GNU)
- # GNU/Hurd
- NO_STRLCPY=YesPlease
- NO_MKSTEMPS = YesPlease
- HAVE_PATHS_H = YesPlease
- LIBC_CONTAINS_LIBINTL = 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_REGEX = YesPlease
- NO_FNMATCH_CASEFOLD = YesPlease
- SNPRINTF_RETURNS_BOGUS = YesPlease
- SHELL_PATH = /usr/gnu/bin/bash
- NEEDS_LIBGEN = YesPlease
-endif
-ifeq ($(uname_S),IRIX64)
- 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_REGEX = YesPlease
- NO_FNMATCH_CASEFOLD = YesPlease
- SNPRINTF_RETURNS_BOGUS = YesPlease
- SHELL_PATH=/usr/gnu/bin/bash
- NEEDS_LIBGEN = YesPlease
-endif
-ifeq ($(uname_S),HP-UX)
- INLINE = __inline
- NO_IPV6=YesPlease
- NO_SETENV=YesPlease
- NO_STRCASESTR=YesPlease
- NO_MEMMEM = YesPlease
- NO_MKSTEMPS = YesPlease
- NO_STRLCPY = YesPlease
- NO_MKDTEMP = YesPlease
- NO_UNSETENV = YesPlease
- NO_HSTRERROR = YesPlease
- NO_SYS_SELECT_H = YesPlease
- NO_FNMATCH_CASEFOLD = YesPlease
- SNPRINTF_RETURNS_BOGUS = YesPlease
- NO_NSEC = YesPlease
- ifeq ($(uname_R),B.11.00)
- NO_INET_NTOP = YesPlease
- NO_INET_PTON = YesPlease
- endif
- ifeq ($(uname_R),B.10.20)
- # Override HP-UX 11.x setting:
- INLINE =
- SOCKLEN_T = size_t
- NO_PREAD = YesPlease
- NO_INET_NTOP = YesPlease
- NO_INET_PTON = YesPlease
- endif
- GIT_TEST_CMP = cmp
-endif
-ifeq ($(uname_S),Windows)
- GIT_VERSION := $(GIT_VERSION).MSVC
- pathsep = ;
- NO_PREAD = YesPlease
- NEEDS_CRYPTO_WITH_SSL = YesPlease
- NO_LIBGEN_H = YesPlease
- NO_POLL = YesPlease
- NO_SYMLINK_HEAD = YesPlease
- NO_IPV6 = YesPlease
- NO_UNIX_SOCKETS = YesPlease
- NO_SETENV = YesPlease
- NO_UNSETENV = YesPlease
- NO_STRCASESTR = YesPlease
- NO_STRLCPY = YesPlease
- NO_STRTOK_R = YesPlease
- NO_FNMATCH = YesPlease
- NO_MEMMEM = YesPlease
- # NEEDS_LIBICONV = YesPlease
- NO_ICONV = 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_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_PYTHON = YesPlease
- BLK_SHA1 = YesPlease
- NO_POSIX_GOODIES = UnfortunatelyYes
- NATIVE_CRLF = YesPlease
- DEFAULT_HELP_FORMAT = html
-
- 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/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
- EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib
- PTHREAD_LIBS =
- lib =
-ifndef DEBUG
- BASIC_CFLAGS += -GL -Os -MT
- BASIC_LDFLAGS += -LTCG
- AR += -LTCG
-else
- BASIC_CFLAGS += -Zi -MTd
-endif
- X = .exe
-endif
-ifeq ($(uname_S),Interix)
- NO_INITGROUPS = YesPlease
- NO_IPV6 = YesPlease
- NO_MEMMEM = YesPlease
- NO_MKDTEMP = YesPlease
- NO_STRTOUMAX = YesPlease
- NO_NSEC = YesPlease
- NO_MKSTEMPS = YesPlease
- ifeq ($(uname_R),3.5)
- NO_INET_NTOP = YesPlease
- NO_INET_PTON = YesPlease
- NO_SOCKADDR_STORAGE = YesPlease
- NO_FNMATCH_CASEFOLD = YesPlease
- endif
- ifeq ($(uname_R),5.2)
- NO_INET_NTOP = YesPlease
- NO_INET_PTON = YesPlease
- NO_SOCKADDR_STORAGE = YesPlease
- NO_FNMATCH_CASEFOLD = YesPlease
- endif
-endif
-ifeq ($(uname_S),Minix)
- NO_IPV6 = YesPlease
- NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
- NO_NSEC = YesPlease
- NEEDS_LIBGEN =
- NEEDS_CRYPTO_WITH_SSL = YesPlease
- NEEDS_IDN_WITH_CURL = YesPlease
- NEEDS_SSL_WITH_CURL = YesPlease
- NEEDS_RESOLV =
- NO_HSTRERROR = YesPlease
- NO_MMAP = YesPlease
- NO_CURL =
- NO_EXPAT =
-endif
-ifeq ($(uname_S),NONSTOP_KERNEL)
- # Needs some C99 features, "inline" is just one of them.
- # INLINE='' would just replace one set of warnings with another and
- # still not compile in c89 mode, due to non-const array initializations.
- CC = cc -c99
- # Disable all optimization, seems to result in bad code, with -O or -O2
- # or even -O1 (default), /usr/local/libexec/git-core/git-pack-objects
- # abends on "git push". Needs more investigation.
- CFLAGS = -g -O0
- # We'd want it to be here.
- prefix = /usr/local
- # Our's are in ${prefix}/bin (perl might also be in /usr/bin/perl).
- PERL_PATH = ${prefix}/bin/perl
- PYTHON_PATH = ${prefix}/bin/python
-
- # As detected by './configure'.
- # Missdetected, hence commented out, see below.
- #NO_CURL = YesPlease
- # Added manually, see above.
- NEEDS_SSL_WITH_CURL = YesPlease
- HAVE_LIBCHARSET_H = YesPlease
- NEEDS_LIBICONV = YesPlease
- NEEDS_LIBINTL_BEFORE_LIBICONV = YesPlease
- NO_SYS_SELECT_H = UnfortunatelyYes
- NO_D_TYPE_IN_DIRENT = YesPlease
- NO_HSTRERROR = YesPlease
- NO_STRCASESTR = YesPlease
- NO_FNMATCH_CASEFOLD = YesPlease
- NO_MEMMEM = YesPlease
- NO_STRLCPY = YesPlease
- NO_SETENV = YesPlease
- NO_UNSETENV = YesPlease
- NO_MKDTEMP = YesPlease
- NO_MKSTEMPS = YesPlease
- # Currently libiconv-1.9.1.
- OLD_ICONV = UnfortunatelyYes
- NO_REGEX = YesPlease
- NO_PTHREADS = UnfortunatelyYes
-
- # Not detected (nor checked for) by './configure'.
- # We don't have SA_RESTART on NonStop, unfortunalety.
- COMPAT_CFLAGS += -DSA_RESTART=0
- # Apparently needed in compat/fnmatch/fnmatch.c.
- COMPAT_CFLAGS += -DHAVE_STRING_H=1
- NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
- NO_NSEC = YesPlease
- NO_PREAD = YesPlease
- NO_MMAP = YesPlease
- NO_POLL = YesPlease
- NO_INTPTR_T = UnfortunatelyYes
- # Bug report 10-120822-4477 submitted to HP NonStop development.
- MKDIR_WO_TRAILING_SLASH = YesPlease
- # RFE 10-120912-4693 submitted to HP NonStop development.
- NO_SETITIMER = UnfortunatelyYes
-endif
-ifneq (,$(findstring MINGW,$(uname_S)))
- pathsep = ;
- NO_PREAD = YesPlease
- NEEDS_CRYPTO_WITH_SSL = YesPlease
- NO_LIBGEN_H = YesPlease
- NO_POLL = YesPlease
- NO_SYMLINK_HEAD = YesPlease
- NO_UNIX_SOCKETS = YesPlease
- NO_SETENV = YesPlease
- NO_UNSETENV = YesPlease
- NO_STRCASESTR = YesPlease
- NO_STRLCPY = YesPlease
- NO_STRTOK_R = YesPlease
- NO_FNMATCH = YesPlease
- NO_MEMMEM = YesPlease
- NEEDS_LIBICONV = YesPlease
- OLD_ICONV = YesPlease
- NO_STRTOUMAX = YesPlease
- NO_MKDTEMP = YesPlease
- NO_MKSTEMPS = YesPlease
- NO_SVN_TESTS = YesPlease
- NO_PERL_MAKEMAKER = YesPlease
- RUNTIME_PREFIX = 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_PYTHON = YesPlease
- BLK_SHA1 = YesPlease
- ETAGS_TARGET = ETAGS
- NO_INET_PTON = YesPlease
- NO_INET_NTOP = YesPlease
- NO_POSIX_GOODIES = UnfortunatelyYes
- COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -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
- EXTLIBS += -lws2_32
- PTHREAD_LIBS =
- X = .exe
- SPARSE_FLAGS = -Wno-one-bit-signed-bitfield
-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
- HAVE_LIBCHARSET_H = YesPlease
-else
- NO_CURL = YesPlease
-endif
-endif
-
+include config.mak.uname
-include config.mak.autogen
-include config.mak
CURL_LIBCURL = -lcurl
endif
ifdef NEEDS_SSL_WITH_CURL
- CURL_LIBCURL += -lssl
+ CURL_LIBCURL += -lssl
ifdef NEEDS_CRYPTO_WITH_SSL
CURL_LIBCURL += -lcrypto
endif
REMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES)
PROGRAM_OBJS += http-fetch.o
PROGRAMS += $(REMOTE_CURL_NAMES)
- curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p)
+ curl_check := $(shell (echo 070908; curl-config --vernum) 2>/dev/null | sort -r | sed -ne 2p)
ifeq "$(curl_check)" "070908"
ifndef NO_EXPAT
PROGRAM_OBJS += http-push.o
ifdef NO_D_INO_IN_DIRENT
BASIC_CFLAGS += -DNO_D_INO_IN_DIRENT
endif
+ifdef NO_GECOS_IN_PWENT
+ BASIC_CFLAGS += -DNO_GECOS_IN_PWENT
+endif
ifdef NO_ST_BLOCKS_IN_STRUCT_STAT
BASIC_CFLAGS += -DNO_ST_BLOCKS_IN_STRUCT_STAT
endif
ifdef NO_SYS_POLL_H
BASIC_CFLAGS += -DNO_SYS_POLL_H
endif
+ifdef NEEDS_SYS_PARAM_H
+ BASIC_CFLAGS += -DNEEDS_SYS_PARAM_H
+endif
ifdef NO_INTTYPES_H
BASIC_CFLAGS += -DNO_INTTYPES_H
endif
endif
ifdef NO_STRUCT_ITIMERVAL
COMPAT_CFLAGS += -DNO_STRUCT_ITIMERVAL
- NO_SETITIMER=YesPlease
+ NO_SETITIMER = YesPlease
endif
ifdef NO_SETITIMER
COMPAT_CFLAGS += -DNO_SETITIMER
COMPAT_CFLAGS += -DNO_MEMMEM
COMPAT_OBJS += compat/memmem.o
endif
+ifdef NO_GETPAGESIZE
+ COMPAT_CFLAGS += -DNO_GETPAGESIZE
+endif
ifdef INTERNAL_QSORT
COMPAT_CFLAGS += -DINTERNAL_QSORT
COMPAT_OBJS += compat/qsort.o
EXTLIBS += $(CHARSET_LIB)
endif
+ifdef HAVE_STRINGS_H
+ BASIC_CFLAGS += -DHAVE_STRINGS_H
+endif
+
ifdef HAVE_DEV_TTY
BASIC_CFLAGS += -DHAVE_DEV_TTY
endif
endif
ifeq ($(TCLTK_PATH),)
-NO_TCLTK=NoThanks
+NO_TCLTK = NoThanks
endif
ifeq ($(PERL_PATH),)
-NO_PERL=NoThanks
+NO_PERL = NoThanks
endif
ifeq ($(PYTHON_PATH),)
-NO_PYTHON=NoThanks
+NO_PYTHON = NoThanks
endif
QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
ifeq ("$(PROFILE)","GEN")
CFLAGS += -fprofile-generate=$(PROFILE_DIR) -DNO_NORETURN=1
EXTLIBS += -lgcov
- export CCACHE_DISABLE=t
- V=1
+ export CCACHE_DISABLE = t
+ V = 1
else
ifneq ("$(PROFILE)","")
CFLAGS += -fprofile-use=$(PROFILE_DIR) -fprofile-correction -DNO_NORETURN=1
- export CCACHE_DISABLE=t
- V=1
+ export CCACHE_DISABLE = t
+ V = 1
endif
endif
GIT-SCRIPT-DEFINES: FORCE
@FLAGS='$(SCRIPT_DEFINES)'; \
if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \
- echo 1>&2 " * new script parameters"; \
+ echo >&2 " * new script parameters"; \
echo "$$FLAGS" >$@; \
fi
endif # NO_PERL
ifndef NO_PYTHON
-$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS GIT-PREFIX
+$(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS
$(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
$(QUIET_GEN)$(RM) $@ $@+ && \
INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C git_remote_helpers -s \
$(RM) $<+
ifdef AUTOCONFIGURED
-config.status: configure
- $(QUIET_GEN)if test -f config.status; then \
+# We avoid depending on 'configure' here, because it gets rebuilt
+# every time GIT-VERSION-FILE is modified, only to update the embedded
+# version number string, which config.status does not care about. We
+# do want to recheck when the platform/environment detection logic
+# changes, hence this depends on configure.ac.
+config.status: configure.ac
+ $(QUIET_GEN)$(MAKE) configure && \
+ if test -f config.status; then \
./config.status --recheck; \
else \
./configure; \
GIT-PREFIX: FORCE
@FLAGS='$(TRACK_PREFIX)'; \
if test x"$$FLAGS" != x"`cat GIT-PREFIX 2>/dev/null`" ; then \
- echo 1>&2 " * new prefix flags"; \
+ echo >&2 " * new prefix flags"; \
echo "$$FLAGS" >GIT-PREFIX; \
fi
GIT-CFLAGS: FORCE
@FLAGS='$(TRACK_CFLAGS)'; \
if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \
- echo 1>&2 " * new build flags"; \
+ echo >&2 " * new build flags"; \
echo "$$FLAGS" >GIT-CFLAGS; \
fi
GIT-LDFLAGS: FORCE
@FLAGS='$(TRACK_LDFLAGS)'; \
if test x"$$FLAGS" != x"`cat GIT-LDFLAGS 2>/dev/null`" ; then \
- echo 1>&2 " * new link flags"; \
+ echo >&2 " * new link flags"; \
echo "$$FLAGS" >GIT-LDFLAGS; \
fi
@echo GIT_PERF_MAKE_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_PERF_MAKE_OPTS)))'\' >>$@
endif
-### Detect Tck/Tk interpreter path changes
-ifndef NO_TCLTK
-TRACK_VARS = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)')
+### Detect Python interpreter path changes
+ifndef NO_PYTHON
+TRACK_PYTHON = $(subst ','\'',-DPYTHON_PATH='$(PYTHON_PATH_SQ)')
-GIT-GUI-VARS: FORCE
- @VARS='$(TRACK_VARS)'; \
+GIT-PYTHON-VARS: FORCE
+ @VARS='$(TRACK_PYTHON)'; \
if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
- echo 1>&2 " * new Tcl/Tk interpreter location"; \
+ echo >&2 " * new Python interpreter location"; \
echo "$$VARS" >$@; \
fi
endif
sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@+
mv $@+ $@
-GIT_TARNAME=git-$(GIT_VERSION)
+GIT_TARNAME = git-$(GIT_VERSION)
dist: git.spec git-archive$(X) configure
./git-archive --format=tar \
--prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar
$(MAKE) -C gitk-git clean
$(MAKE) -C git-gui clean
endif
- $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
- $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES
+ $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-BUILD-OPTIONS
+ $(RM) GIT-USER-AGENT GIT-PREFIX GIT-SCRIPT-DEFINES GIT-PYTHON-VARS
.PHONY: all install profile-clean clean strip
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell