Skip to content
This repository was archived by the owner on Dec 16, 2022. It is now read-only.

Commit a4fae62

Browse files
committed
Detect Darwin OS and try to determine lib paths
This tries to automatically determine the location of `openssl@1.1` and `libssh2` if installed on MacOS using the brew package manager, or provides a warning with an install / configuration suggestion. Signed-off-by: Hidde Beydals <hello@hidde.co>
1 parent 73a09a4 commit a4fae62

File tree

1 file changed

+51
-17
lines changed

1 file changed

+51
-17
lines changed

hack/Makefile

Lines changed: 51 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,62 @@ else
1717
LIBGIT2_DOWNLOAD_URL ?= https://github.com/libgit2/libgit2/archive/$(LIBGIT2_REVISION).tar.gz
1818
endif
1919

20-
$(INSTALL_LIBDIR)/libgit2.so.$(LIBGIT2_VERSION):
20+
LIBGIT2_LIB := $(INSTALL_LIBDIR)/libgit2.so.$(LIBGIT2_VERSION)
21+
22+
PKG_CONFIG_PATH ?=
23+
# Detect Darwin (MacOS) to help the user a bit configuring OpenSSL,
24+
# or at least in pointing out what steps should be taken if it can't
25+
# magically figure it out by itself. Because we too, are nice people.
26+
ifeq ($(shell uname -s),Darwin)
27+
LIBGIT2_LIB := $(INSTALL_LIBDIR)/libgit2.$(LIBGIT2_VERSION).dylib
28+
HAS_BREW := $(shell brew --version 2>/dev/null)
29+
ifdef HAS_BREW
30+
HAS_OPENSSL := $(shell brew --prefix openssl@1.1)
31+
ifdef HAS_OPENSSL
32+
PKG_CONFIG_PATH := $(PKG_CONFIG_PATH):$(HAS_OPENSSL)/lib/pkgconfig
33+
else
34+
$(warning "Failed to detect openssl@1.1 installation with brew. It can be installed with 'brew install openssl@1.1',")
35+
$(warning "or an alternative location can be provided using the PKG_CONFIG_PATH flag, for example:")
36+
$(warning "'PKG_CONFIG_PATH=/usr/local/lib/pkgconfig make'.")
37+
endif
38+
HAS_LIBSSH2 := $(shell brew --prefix libssh2)
39+
ifdef HAS_LIBSSH2
40+
PKG_CONFIG_PATH := $(PKG_CONFIG_PATH):$(HAS_LIBSSH2)/lib/pkgconfig
41+
else
42+
$(warning "Failed to detect libssh2 installation with brew. It can be installed with 'brew install libssh2',")
43+
$(warning "or an alternative location can be provided using the PKG_CONFIG_PATH flag, for example:")
44+
$(warning "'PKG_CONFIG_PATH=/usr/local/lib/pkgconfig make'.")
45+
endif
46+
else
47+
$(warning "Failed to detect brew installation, and therefore unable to automatically determine lib paths.")
48+
$(warning "The location of openssl and libssh2 can be provided using the PKG_CONFIG_PATH flag, for example:")
49+
$(warning "'PKG_CONFIG_PATH=/usr/local/lib/pkgconfig make'.")
50+
endif
51+
endif
52+
53+
$(LIBGIT2_LIB):
2154
set -e; \
2255
SETUP_LIBGIT2_TMP_DIR=$$(mktemp -d) \
2356
&& curl -L $(LIBGIT2_DOWNLOAD_URL) -o $$SETUP_LIBGIT2_TMP_DIR/archive.tar.gz \
2457
&& mkdir -p $$SETUP_LIBGIT2_TMP_DIR/src \
2558
&& tar xzf $$SETUP_LIBGIT2_TMP_DIR/archive.tar.gz --strip 1 -C $$SETUP_LIBGIT2_TMP_DIR/src \
26-
&& cmake -S $$SETUP_LIBGIT2_TMP_DIR/src -B $$SETUP_LIBGIT2_TMP_DIR/build \
27-
-DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE)\
28-
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON \
29-
-DCMAKE_C_FLAGS=-fPIC \
30-
-DDEPRECATE_HARD=ON \
31-
-DCMAKE_INSTALL_PREFIX:PATH=$(INSTALL_PREFIX) \
32-
-DCMAKE_INSTALL_LIBDIR:PATH=$(INSTALL_LIBDIR) \
33-
-DBUILD_CLAR:BOOL:BOOL=OFF \
34-
-DTHREADSAFE:BOOL=ON \
35-
-DBUILD_SHARED_LIBS=ON \
36-
-DUSE_BUNDLED_ZLIB:BOOL=OFF \
37-
-DUSE_HTTP_PARSER:STRING=builtin \
38-
-DREGEX_BACKEND:STRING=builtin \
39-
-DUSE_HTTPS:STRING=$(USE_HTTPS) \
40-
-DUSE_SSH:BOOL=$(USE_SSH) \
41-
$(FLAGS) \
59+
&& PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) cmake -S $$SETUP_LIBGIT2_TMP_DIR/src -B $$SETUP_LIBGIT2_TMP_DIR/build \
60+
-DCMAKE_BUILD_TYPE:STRING=$(BUILD_TYPE)\
61+
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON \
62+
-DCMAKE_C_FLAGS=-fPIC \
63+
-DDEPRECATE_HARD=ON \
64+
-DCMAKE_INSTALL_PREFIX:PATH=$(INSTALL_PREFIX) \
65+
-DCMAKE_INSTALL_LIBDIR:PATH=$(INSTALL_LIBDIR) \
66+
-DBUILD_CLAR:BOOL:BOOL=OFF \
67+
-DTHREADSAFE:BOOL=ON \
68+
-DBUILD_SHARED_LIBS=ON \
69+
-DUSE_BUNDLED_ZLIB:BOOL=OFF \
70+
-DUSE_HTTP_PARSER:STRING=builtin \
71+
-DREGEX_BACKEND:STRING=builtin \
72+
-DUSE_HTTPS:STRING=$(USE_HTTPS) \
73+
-DUSE_SSH:BOOL=$(USE_SSH) \
74+
$(OS_FLAGS) \
75+
$(FLAGS) \
4276
&& cmake --build $$SETUP_LIBGIT2_TMP_DIR/build --target install \
4377
&& rm -rf $$SETUP_LIBGIT2_TMP_DIR
4478

0 commit comments

Comments
 (0)