Merge branch 'rj/build-tweaks'
Various build tweaks, including CSPRNG selection on some platforms. * rj/build-tweaks: config.mak.uname: set CSPRNG_METHOD to getrandom on Linux config.mak.uname: add arc4random to the cygwin build config.mak.uname: add sysinfo() configuration for cygwin builtin/gc.c: correct RAM calculation when using sysinfo config.mak.uname: add clock_gettime() to the cygwin build config.mak.uname: add HAVE_GETDELIM to the cygwin section config.mak.uname: only set NO_REGEX on cygwin for v1.7 config.mak.uname: add a note about NO_STRLCPY for Linux Makefile: remove NEEDS_LIBRT build variable meson.build: set default help format to html on windows meson.build: only set build variables for non-default values Makefile: only set some BASIC_CFLAGS when RUNTIME_PREFIX is set meson.build: remove -DCURL_DISABLE_TYPECHECK
This commit is contained in:
@@ -250,6 +250,16 @@ if docs_backend == 'asciidoc'
|
||||
'--attribute=build_dir=' + meson.current_build_dir(),
|
||||
]
|
||||
|
||||
pager_opt = get_option('default_pager')
|
||||
if pager_opt != '' and pager_opt != 'less'
|
||||
asciidoc_common_options += '-agit-default-pager=' + pager_opt
|
||||
endif
|
||||
|
||||
editor_opt = get_option('default_editor')
|
||||
if editor_opt != '' and editor_opt != 'vi'
|
||||
asciidoc_common_options += '-agit-default-editor=' + editor_opt
|
||||
endif
|
||||
|
||||
documentation_deps = [
|
||||
asciidoc_conf,
|
||||
]
|
||||
@@ -287,6 +297,16 @@ elif docs_backend == 'asciidoctor'
|
||||
'--require', 'asciidoctor-extensions',
|
||||
]
|
||||
|
||||
pager_opt = get_option('default_pager')
|
||||
if pager_opt != '' and pager_opt != 'less'
|
||||
asciidoc_common_options += '-agit-default-pager=' + pager_opt
|
||||
endif
|
||||
|
||||
editor_opt = get_option('default_editor')
|
||||
if editor_opt != '' and editor_opt != 'vi'
|
||||
asciidoc_common_options += '-agit-default-editor=' + editor_opt
|
||||
endif
|
||||
|
||||
documentation_deps = [
|
||||
asciidoctor_extensions,
|
||||
]
|
||||
|
||||
45
Makefile
45
Makefile
@@ -340,9 +340,6 @@ include shared.mak
|
||||
#
|
||||
# Define HAVE_SYNC_FILE_RANGE if your platform has sync_file_range.
|
||||
#
|
||||
# Define NEEDS_LIBRT if your platform requires linking with librt (glibc version
|
||||
# before 2.17) for clock_gettime and CLOCK_MONOTONIC.
|
||||
#
|
||||
# Define HAVE_BSD_SYSCTL if your platform has a BSD-compatible sysctl function.
|
||||
#
|
||||
# Define HAVE_GETDELIM if your system has the getdelim() function.
|
||||
@@ -2174,18 +2171,14 @@ ifdef HAVE_SYNC_FILE_RANGE
|
||||
BASIC_CFLAGS += -DHAVE_SYNC_FILE_RANGE
|
||||
endif
|
||||
|
||||
ifdef NEEDS_LIBRT
|
||||
EXTLIBS += -lrt
|
||||
ifdef HAVE_SYSINFO
|
||||
BASIC_CFLAGS += -DHAVE_SYSINFO
|
||||
endif
|
||||
|
||||
ifdef HAVE_BSD_SYSCTL
|
||||
BASIC_CFLAGS += -DHAVE_BSD_SYSCTL
|
||||
endif
|
||||
|
||||
ifdef HAVE_BSD_KERN_PROC_SYSCTL
|
||||
BASIC_CFLAGS += -DHAVE_BSD_KERN_PROC_SYSCTL
|
||||
endif
|
||||
|
||||
ifdef HAVE_GETDELIM
|
||||
BASIC_CFLAGS += -DHAVE_GETDELIM
|
||||
endif
|
||||
@@ -2216,25 +2209,33 @@ ifneq ($(findstring openssl,$(CSPRNG_METHOD)),)
|
||||
EXTLIBS += -lcrypto -lssl
|
||||
endif
|
||||
|
||||
ifneq ($(PROCFS_EXECUTABLE_PATH),)
|
||||
procfs_executable_path_SQ = $(subst ','\'',$(PROCFS_EXECUTABLE_PATH))
|
||||
BASIC_CFLAGS += '-DPROCFS_EXECUTABLE_PATH="$(procfs_executable_path_SQ)"'
|
||||
endif
|
||||
|
||||
ifndef HAVE_PLATFORM_PROCINFO
|
||||
COMPAT_OBJS += compat/stub/procinfo.o
|
||||
endif
|
||||
|
||||
ifdef HAVE_NS_GET_EXECUTABLE_PATH
|
||||
BASIC_CFLAGS += -DHAVE_NS_GET_EXECUTABLE_PATH
|
||||
endif
|
||||
ifdef RUNTIME_PREFIX
|
||||
|
||||
ifdef HAVE_ZOS_GET_EXECUTABLE_PATH
|
||||
BASIC_CFLAGS += -DHAVE_ZOS_GET_EXECUTABLE_PATH
|
||||
endif
|
||||
ifdef HAVE_BSD_KERN_PROC_SYSCTL
|
||||
BASIC_CFLAGS += -DHAVE_BSD_KERN_PROC_SYSCTL
|
||||
endif
|
||||
|
||||
ifneq ($(PROCFS_EXECUTABLE_PATH),)
|
||||
pep_SQ = $(subst ','\'',$(PROCFS_EXECUTABLE_PATH))
|
||||
BASIC_CFLAGS += '-DPROCFS_EXECUTABLE_PATH="$(pep_SQ)"'
|
||||
endif
|
||||
|
||||
ifdef HAVE_NS_GET_EXECUTABLE_PATH
|
||||
BASIC_CFLAGS += -DHAVE_NS_GET_EXECUTABLE_PATH
|
||||
endif
|
||||
|
||||
ifdef HAVE_ZOS_GET_EXECUTABLE_PATH
|
||||
BASIC_CFLAGS += -DHAVE_ZOS_GET_EXECUTABLE_PATH
|
||||
endif
|
||||
|
||||
ifdef HAVE_WPGMPTR
|
||||
BASIC_CFLAGS += -DHAVE_WPGMPTR
|
||||
endif
|
||||
|
||||
ifdef HAVE_WPGMPTR
|
||||
BASIC_CFLAGS += -DHAVE_WPGMPTR
|
||||
endif
|
||||
|
||||
ifdef FILENO_IS_A_MACRO
|
||||
|
||||
@@ -424,8 +424,13 @@ static uint64_t total_ram(void)
|
||||
#if defined(HAVE_SYSINFO)
|
||||
struct sysinfo si;
|
||||
|
||||
if (!sysinfo(&si))
|
||||
return si.totalram;
|
||||
if (!sysinfo(&si)) {
|
||||
uint64_t total = si.totalram;
|
||||
|
||||
if (si.mem_unit > 1)
|
||||
total *= (uint64_t)si.mem_unit;
|
||||
return total;
|
||||
}
|
||||
#elif defined(HAVE_BSD_SYSCTL) && (defined(HW_MEMSIZE) || defined(HW_PHYSMEM))
|
||||
int64_t physical_memory;
|
||||
int mib[2];
|
||||
|
||||
@@ -48,18 +48,18 @@ ifeq ($(uname_S),OSF1)
|
||||
endif
|
||||
ifeq ($(uname_S),Linux)
|
||||
HAVE_ALLOCA_H = YesPlease
|
||||
# override in config.mak if you have glibc >= 2.38
|
||||
NO_STRLCPY = YesPlease
|
||||
CSPRNG_METHOD = getrandom
|
||||
HAVE_PATHS_H = YesPlease
|
||||
LIBC_CONTAINS_LIBINTL = YesPlease
|
||||
HAVE_DEV_TTY = YesPlease
|
||||
HAVE_CLOCK_GETTIME = YesPlease
|
||||
HAVE_CLOCK_MONOTONIC = YesPlease
|
||||
# -lrt is needed for clock_gettime on glibc <= 2.16
|
||||
NEEDS_LIBRT = YesPlease
|
||||
HAVE_SYNC_FILE_RANGE = YesPlease
|
||||
HAVE_GETDELIM = YesPlease
|
||||
FREAD_READS_DIRECTORIES = UnfortunatelyYes
|
||||
BASIC_CFLAGS += -DHAVE_SYSINFO
|
||||
HAVE_SYSINFO = YesPlease
|
||||
PROCFS_EXECUTABLE_PATH = /proc/self/exe
|
||||
HAVE_PLATFORM_PROCINFO = YesPlease
|
||||
COMPAT_OBJS += compat/linux/procinfo.o
|
||||
@@ -246,9 +246,16 @@ ifeq ($(uname_O),Cygwin)
|
||||
# Try commenting this out if you suspect MMAP is more efficient
|
||||
NO_MMAP = YesPlease
|
||||
else
|
||||
NO_REGEX = UnfortunatelyYes
|
||||
ifeq ($(shell expr "$(uname_R)" : '1\.7\.'),4)
|
||||
NO_REGEX = UnfortunatelyYes
|
||||
endif
|
||||
endif
|
||||
HAVE_DEV_TTY = YesPlease
|
||||
HAVE_GETDELIM = YesPlease
|
||||
HAVE_CLOCK_GETTIME = YesPlease
|
||||
HAVE_CLOCK_MONOTONIC = YesPlease
|
||||
HAVE_SYSINFO = YesPlease
|
||||
CSPRNG_METHOD = arc4random
|
||||
HAVE_ALLOCA_H = YesPlease
|
||||
NEEDS_LIBICONV = YesPlease
|
||||
NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
|
||||
|
||||
@@ -1066,6 +1066,14 @@ AC_CHECK_LIB([iconv], [locale_charset],
|
||||
[AC_CHECK_LIB([charset], [locale_charset],
|
||||
[CHARSET_LIB=-lcharset])])
|
||||
GIT_CONF_SUBST([CHARSET_LIB])
|
||||
|
||||
#
|
||||
# Define HAVE_SYSINFO=YesPlease if sysinfo is available.
|
||||
GIT_CHECK_FUNC(sysinfo,
|
||||
[HAVE_SYSINFO=YesPlease],
|
||||
[HAVE_SYSINFO=])
|
||||
GIT_CONF_SUBST([HAVE_SYSINFO])
|
||||
|
||||
#
|
||||
# Define HAVE_CLOCK_GETTIME=YesPlease if clock_gettime is available.
|
||||
GIT_CHECK_FUNC(clock_gettime,
|
||||
|
||||
27
meson.build
27
meson.build
@@ -727,10 +727,7 @@ endif
|
||||
# These variables are used for building libgit.a.
|
||||
libgit_c_args = [
|
||||
'-DBINDIR="' + get_option('bindir') + '"',
|
||||
'-DDEFAULT_EDITOR="' + get_option('default_editor') + '"',
|
||||
'-DDEFAULT_GIT_TEMPLATE_DIR="' + get_option('datadir') / 'git-core/templates' + '"',
|
||||
'-DDEFAULT_HELP_FORMAT="' + get_option('default_help_format') + '"',
|
||||
'-DDEFAULT_PAGER="' + get_option('default_pager') + '"',
|
||||
'-DETC_GITATTRIBUTES="' + get_option('gitattributes') + '"',
|
||||
'-DETC_GITCONFIG="' + get_option('gitconfig') + '"',
|
||||
'-DFALLBACK_RUNTIME_PREFIX="' + get_option('prefix') + '"',
|
||||
@@ -742,6 +739,29 @@ libgit_c_args = [
|
||||
'-DPAGER_ENV="' + get_option('pager_environment') + '"',
|
||||
'-DSHELL_PATH="' + fs.as_posix(target_shell.full_path()) + '"',
|
||||
]
|
||||
|
||||
editor_opt = get_option('default_editor')
|
||||
if editor_opt != '' and editor_opt != 'vi'
|
||||
libgit_c_args += '-DDEFAULT_EDITOR="' + editor_opt + '"'
|
||||
endif
|
||||
|
||||
pager_opt = get_option('default_pager')
|
||||
if pager_opt != '' and pager_opt != 'less'
|
||||
libgit_c_args += '-DDEFAULT_PAGER="' + pager_opt + '"'
|
||||
endif
|
||||
|
||||
help_format_opt = get_option('default_help_format')
|
||||
if help_format_opt == 'platform'
|
||||
if host_machine.system() == 'windows'
|
||||
help_format_opt = 'html'
|
||||
else
|
||||
help_format_opt = 'man'
|
||||
endif
|
||||
endif
|
||||
if help_format_opt != 'man'
|
||||
libgit_c_args += '-DDEFAULT_HELP_FORMAT="' + help_format_opt + '"'
|
||||
endif
|
||||
|
||||
libgit_include_directories = [ '.' ]
|
||||
libgit_dependencies = [ ]
|
||||
|
||||
@@ -1012,7 +1032,6 @@ if curl.found()
|
||||
# Most executables don't have to link against libcurl, but we still need its
|
||||
# include directories so that we can resolve LIBCURL_VERSION in "help.c".
|
||||
libgit_dependencies += curl.partial_dependency(includes: true)
|
||||
libgit_c_args += '-DCURL_DISABLE_TYPECHECK'
|
||||
build_options_config.set('NO_CURL', '')
|
||||
else
|
||||
libgit_c_args += '-DNO_CURL'
|
||||
|
||||
@@ -95,7 +95,7 @@ option('highlight_bin', type: 'string', value: 'highlight')
|
||||
# Documentation.
|
||||
option('docs', type: 'array', choices: ['man', 'html'], value: [],
|
||||
description: 'Which documenattion formats to build and install.')
|
||||
option('default_help_format', type: 'combo', choices: ['man', 'html'], value: 'man',
|
||||
option('default_help_format', type: 'combo', choices: ['man', 'html', 'platform'], value: 'platform',
|
||||
description: 'Default format used when executing git-help(1).')
|
||||
option('docs_backend', type: 'combo', choices: ['asciidoc', 'asciidoctor', 'auto'], value: 'auto',
|
||||
description: 'Which backend to use to generate documentation.')
|
||||
|
||||
@@ -63,7 +63,7 @@ test_expect_success 'git grep ile a' '
|
||||
git grep ile a
|
||||
'
|
||||
|
||||
test_expect_failure 'git grep .fi a' '
|
||||
test_expect_failure !CYGWIN 'git grep .fi a' '
|
||||
git grep .fi a
|
||||
'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user