Skip to content

Commit 9a2a91f

Browse files
committed
feat: add libssh2 and improve base lib build makefile
1 parent e2541b4 commit 9a2a91f

File tree

1 file changed

+51
-11
lines changed

1 file changed

+51
-11
lines changed

libs/GNUmakefile

Lines changed: 51 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,57 @@
1+
# Build base libs available in the toolchain
12

3+
# set externally to cross-compile for targets
24
PREFIX ?= /opt/musl-dyne
35
ARCH ?= x86_64-linux-musl
6+
7+
# versions available on files.dyne.org
48
LIBSSL ?= libressl-4.1.0
59
ZLIB ?= zlib-ng-2.2.4
610
CURL ?= curl-8.15.0
11+
SSH2 ?= libssh2-1.11.1
12+
13+
# .PHONY: build-SSH2 build-CURL build-ZLIB build-LIBSSL
14+
15+
CC := ccache $(PREFIX)/bin/$(ARCH)-gcc
16+
AR := $(PREFIX)/bin/$(ARCH)-ar
17+
T := $(PREFIX)/$(ARCH)
718

8-
all: CC=$(PREFIX)/bin/$(ARCH)-gcc
9-
all: AR=$(PREFIX)/bin/$(ARCH)-ar
10-
all: $(LIBSSL).orig $(ZLIB).orig $(CURL).orig
19+
all: \
20+
$(T)/lib/libssl.a \
21+
$(T)/lib/libz.a \
22+
$(T)/lib/libcurl.a \
23+
$(T)/lib/libssh2.a
24+
25+
$(T)/lib/libssl.a: $(LIBSSL).orig
26+
$(info Building SSL library)
1127
cd $(LIBSSL).orig \
12-
&& CC=$(CC) AR=$(AR) CFLAGS="-static -g0 -Os" \
28+
&& CC="$(CC)" AR=$(AR) CFLAGS="-static -g0 -Os" \
1329
./configure --prefix=$(PREFIX)/$(ARCH) --disable-shared --disable-tests --disable-dependency-tracking --build=x86_64-linux-musl --host=$(ARCH) \
1430
&& $(MAKE) -j`nproc` && $(MAKE) install
31+
32+
$(T)/lib/libz.a: $(ZLIB).orig
33+
$(info Building Z library)
1534
mkdir -p $(ZLIB).orig/build && cd $(ZLIB).orig/build \
16-
&& CC=$(CC) AR=$(AR) CFLAGS="-static -g0 -Os" PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig \
17-
cmake .. -DZLIB_ENABLE_TESTS=no -DZLIB_COMPAT=yes -DCMAKE_C_COMPILER=$(CC) -DCMAKE_PREFIX_PATH=$(PREFIX) -DCMAKE_INSTALL_PREFIX=$(PREFIX)/$(ARCH) ZLIBNG_ENABLE_TESTS=no WITH_SANITIZER=no WITH_GTEST=no \
35+
&& CC=$(PREFIX)/bin/$(ARCH)-gcc AR=$(AR) CFLAGS="-static -g0 -Os" PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig \
36+
cmake .. -DZLIB_ENABLE_TESTS=no -DZLIB_COMPAT=yes \
37+
-DCMAKE_C_COMPILER=$(PREFIX)/bin/$(ARCH)-gcc -DCMAKE_C_COMPILER_LAUNCHER=ccache \
38+
-DCMAKE_PREFIX_PATH=$(PREFIX)/$(ARCH) -DCMAKE_INSTALL_PREFIX=$(PREFIX)/$(ARCH) \
39+
-DZLIBNG_ENABLE_TESTS=no -DWITH_SANITIZER=no -DWITH_GTEST=no \
1840
&& $(MAKE) -j`nproc` && $(MAKE) install
41+
42+
$(T)/lib/libcurl.a: $(CURL).orig
43+
$(info Building CURL library)
1944
cd $(CURL).orig \
20-
&& CC=$(CC) AR=$(AR) CFLAGS="-static -g0 -Os" PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig \
21-
./configure --prefix=$(PREFIX)/$(ARCH) --disable-shared --with-zlib=$(PREFIX) --with-openssl --build=x86_64-linux-musl --host=$(ARCH) --with-sysroot=$(PREFIX) --without-libpsl --disable-docs \
45+
&& CC="$(CC)" AR=$(AR) CFLAGS="-static -g0 -Os" PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig \
46+
./configure --prefix=$(PREFIX)/$(ARCH) --disable-shared --with-zlib=$(PREFIX)/$(ARCH) --with-openssl --build=x86_64-linux-musl --host=$(ARCH) --with-sysroot=$(PREFIX)/$(ARCH) --without-libpsl --disable-docs \
47+
&& $(MAKE) -j`nproc` && $(MAKE) install
48+
49+
$(T)/lib/libssh2.a: $(SSH2).orig
50+
$(info Building SSH2 library)
51+
cd $(SSH2).orig \
52+
&& CC="$(CC)" AR=$(AR) CFLAGS="-static -g0 -Os" PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig \
53+
./configure --prefix=$(PREFIX)/$(ARCH) --disable-shared --disable-tests --with-crypto=openssl --with-sysroot=$(PREFIX) \
54+
--build=x86_64-linux-musl --host=$(ARCH) \
2255
&& $(MAKE) -j`nproc` && $(MAKE) install
2356

2457
# upstream: https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/
@@ -33,10 +66,17 @@ $(ZLIB).tar.gz:
3366
$(CURL).tar.xz:
3467
curl -L https://files.dyne.org/?file=musl/sources/$@ --output $@
3568

69+
# upstream: https://libssh2.org
70+
$(SSH2).tar.xz:
71+
curl -L https://files.dyne.org/?file=musl/sources/$@ --output $@
72+
3673
clean:
37-
cd $(LIBSSL).orig && $(MAKE) clean
38-
cd $(ZLIB).orig && $(MAKE) clean
39-
cd $(CURL).orig && $(MAKE) clean
74+
rm -rf *.orig
75+
rm -f \
76+
$(T)/lib/libssl.a \
77+
$(T)/lib/libz.a \
78+
$(T)/lib/libcurl.a \
79+
$(T)/lib/libssh2.a
4080

4181
%.orig: %.tar.gz
4282
tar zxf - < $<

0 commit comments

Comments
 (0)