@@ -10,9 +10,24 @@ LIBSSH2_URL="${LIBSSH2_URL:-https://github.com/libssh2/libssh2/archive/refs/tags
10
10
# provide better performance (i.e. intel/cloudflare) or that are better maintained.
11
11
LIBZ_URL=" ${LIBZ_URL:- https:// github.com/ madler/ zlib/ archive/ refs/ tags/ v1.2.11.tar.gz} "
12
12
13
- BUILD_ROOT_DIR=" /build"
13
+ TARGET_DIR=" ${TARGET_DIR:-/ usr/ local/ $(xx-info triple)} "
14
+ BUILD_ROOT_DIR=" ${BUILD_ROOT_DIR:-/ build} "
14
15
SRC_DIR=" ${BUILD_ROOT_DIR} /src"
15
16
17
+
18
+ TARGET_ARCH=" $( uname -m) "
19
+ if command -v xx-info; then
20
+ TARGET_ARCH=" $( xx-info march) "
21
+ fi
22
+
23
+ C_COMPILER=" /usr/bin/gcc"
24
+ CMAKE_PARAMS=" "
25
+ if command -v xx-clang; then
26
+ C_COMPILER=" /usr/bin/xx-clang"
27
+ CMAKE_PARAMS=" $( xx-clang --print-cmake-defines) "
28
+ fi
29
+
30
+
16
31
function download_source(){
17
32
mkdir -p " $2 "
18
33
@@ -25,9 +40,12 @@ function build_libz(){
25
40
download_source " ${LIBZ_URL} " " ${SRC_DIR} /libz"
26
41
pushd " ${SRC_DIR} /libz"
27
42
28
- ./configure --static \
29
- --archs=" -arch $( xx-info march) " \
30
- --prefix=" /usr/local/$( xx-info triple) "
43
+ if [ " ${TARGET_ARCH} " = " $( uname -m) " ]; then
44
+ ./configure --static --prefix=" ${TARGET_DIR} "
45
+ else
46
+ ./configure --static --prefix=" ${TARGET_DIR} " \
47
+ --archs=" -arch ${TARGET_ARCH} "
48
+ fi
31
49
32
50
make install
33
51
@@ -38,17 +56,17 @@ function build_openssl(){
38
56
download_source " ${OPENSSL_URL} " " ${SRC_DIR} /openssl"
39
57
pushd " ${SRC_DIR} /openssl"
40
58
41
- target_name=" $( xx-info march ) "
59
+ target_name=" ${TARGET_ARCH} "
42
60
if [ " ${target_name} " = " armv7l" ]; then
43
61
# openssl does not have a specific armv7l
44
62
# using generic32 instead.
45
63
target_name=generic32
46
64
fi
47
65
48
66
./Configure " linux-${target_name} " threads no-shared zlib -fPIC -DOPENSSL_PIC \
49
- --prefix=" /usr/local/ $( xx-info triple ) " \
50
- --with-zlib-include=" /usr/local/ $( xx-info triple ) /include" \
51
- --with-zlib-lib=" /usr/local/ $( xx-info triple ) /lib" \
67
+ --prefix=" ${TARGET_DIR} " \
68
+ --with-zlib-include=" ${TARGET_DIR} /include" \
69
+ --with-zlib-lib=" ${TARGET_DIR} /lib" \
52
70
--openssldir=/etc/ssl
53
71
54
72
make
@@ -65,9 +83,9 @@ function build_libssh2(){
65
83
mkdir -p build
66
84
pushd build
67
85
68
- cmake " $( xx-clang --print-cmake-defines ) " \
69
- -DCMAKE_C_COMPILER=" /usr/bin/xx-clang " \
70
- -DCMAKE_INSTALL_PREFIX=" /usr/local/ $( xx-info triple ) " \
86
+ cmake " ${CMAKE_PARAMS} " \
87
+ -DCMAKE_C_COMPILER=" ${C_COMPILER} " \
88
+ -DCMAKE_INSTALL_PREFIX=" ${TARGET_DIR} " \
71
89
-DBUILD_SHARED_LIBS=OFF \
72
90
-DCMAKE_C_FLAGS=-fPIC \
73
91
-DCRYPTO_BACKEND=OpenSSL \
@@ -90,9 +108,9 @@ function build_libgit2(){
90
108
91
109
pushd build
92
110
93
- cmake " $( xx-clang --print-cmake-defines ) " \
94
- -DCMAKE_C_COMPILER=" /usr/bin/xx-clang " \
95
- -DCMAKE_INSTALL_PREFIX=" /usr/local/ $( xx-info triple ) " \
111
+ cmake " ${CMAKE_PARAMS} " \
112
+ -DCMAKE_C_COMPILER=" ${C_COMPILER} " \
113
+ -DCMAKE_INSTALL_PREFIX=" ${TARGET_DIR} " \
96
114
-DTHREADSAFE:BOOL=ON \
97
115
-DBUILD_CLAR:BOOL:BOOL=OFF \
98
116
-DBUILD_SHARED_LIBS=OFF \
@@ -104,8 +122,8 @@ function build_libgit2(){
104
122
-DUSE_BUNDLED_ZLIB:BOOL=ON \
105
123
-DUSE_HTTPS:STRING=OpenSSL \
106
124
-DREGEX_BACKEND:STRING=builtin \
107
- -DCMAKE_INCLUDE_PATH=" /usr/local/ $( xx-info triple ) /include" \
108
- -DCMAKE_LIBRARY_PATH=" /usr/local/ $( xx-info triple ) /lib" \
125
+ -DCMAKE_INCLUDE_PATH=" ${TARGET_DIR} /include" \
126
+ -DCMAKE_LIBRARY_PATH=" ${TARGET_DIR} /lib" \
109
127
-DCMAKE_BUILD_TYPE=" RelWithDebInfo" \
110
128
..
111
129
@@ -115,4 +133,11 @@ function build_libgit2(){
115
133
popd
116
134
}
117
135
136
+ function all(){
137
+ build_libz
138
+ build_openssl
139
+ build_libssh2
140
+ build_libgit2
141
+ }
142
+
118
143
" $@ "
0 commit comments