1+ # Build base libs available in the toolchain
12
3+ # set externally to cross-compile for targets
24PREFIX ?= /opt/musl-dyne
35ARCH ?= x86_64-linux-musl
6+
7+ # versions available on files.dyne.org
48LIBSSL ?= libressl-4.1.0
59ZLIB ?= zlib-ng-2.2.4
610CURL ?= 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+
3673clean :
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