| #!/bin/sh |
| |
| set -eu |
| |
| set -x |
| |
| # : ${OPKG_LIBS:="-llzma -lldap -llber -lz -pthread"} |
| : ${OPKG_LIBS:="-lz -pthread -lzstd"} |
| |
| generate_configure_id() { |
| echo "$@" | sha256sum | awk '{ printf "build-opkg-%s", $1 }' |
| } |
| |
| mark_configured() { |
| rm -f build-opkg-* |
| touch $1 |
| } |
| |
| # libarchive |
| [ -f libarchive-3.5.2.tar.gz ] || wget http://libarchive.org/downloads/libarchive-3.5.2.tar.gz |
| [ -d libarchive-3.5.2 ] || tar -xvf libarchive-3.5.2.tar.gz |
| cd libarchive-3.5.2 |
| LIBARCHIVE_OPTS="\ |
| --without-zlib \ |
| --without-bz2lib \ |
| --without-libb2 \ |
| --without-lz4 \ |
| --without-lzo2 \ |
| --without-cng \ |
| --without-nettle \ |
| --without-xml2 \ |
| --without-expat \ |
| --with-zstd \ |
| --disable-acl \ |
| --disable-xattr \ |
| --enable-posix-regex-lib=libc \ |
| --disable-rpath \ |
| --disable-bsdcat \ |
| --disable-bsdtar \ |
| --disable-bsdcpio \ |
| --with-pic" |
| LIBARCHIVE_ID=$(generate_configure_id "$LIBARCHIVE_OPTS") |
| [ -f $LIBARCHIVE_ID ] || ( ./configure $LIBARCHIVE_OPTS && mark_configured $LIBARCHIVE_ID ) |
| mkdir -p root && make -j$(nproc) install DESTDIR=$(realpath root) |
| cd .. |
| |
| # curl |
| [ -f curl-7.79.1.tar.bz2 ] || wget https://curl.haxx.se/download/curl-7.79.1.tar.bz2 |
| [ -d curl-7.79.1 ] || tar -xvf curl-7.79.1.tar.bz2 |
| cd curl-7.79.1 |
| CURL_OPTS=--with-openssl |
| CURL_ID=$(generate_configure_id "$CURL_OPTS") |
| [ -f $CURL_ID ] || ( ./configure $CURL_OPTS && mark_configured $CURL_ID ) |
| mkdir -p root && make -j$(nproc) install DESTDIR=$(realpath root) |
| cd .. |
| |
| # opkg |
| [ -f opkg-0.6.3.tar.gz ] || wget http://downloads.yoctoproject.org/releases/opkg/opkg-0.6.3.tar.gz |
| [ -d opkg-0.6.3 ] || tar -xvf opkg-0.6.3.tar.gz |
| cd opkg-0.6.3 |
| OPKG_OPTS="\ |
| --with-static-libopkg \ |
| --without-libsolv \ |
| --enable-curl \ |
| --enable-openssl \ |
| --enable-zstd \ |
| --disable-gpg \ |
| --disable-dependency-tracking" |
| OPKG_ID=$(generate_configure_id "$OPKG_OPTS" "$OPKG_LIBS") |
| [ -f $OPKG_ID ] || ( \ |
| AR_FLAGS=Tcru \ |
| PKG_CONFIG_PATH=$(realpath ../libarchive-3.5.2/root/usr/local/lib/pkgconfig/):$(realpath ../curl-7.79.1/root/usr/local/lib/pkgconfig/) \ |
| CURL_CFLAGS=-I$(realpath ../curl-7.79.1/root/usr/local/include/) \ |
| CURL_LIBS=$(realpath ../curl-7.79.1/root/usr/local/lib/libcurl.a) \ |
| LIBARCHIVE_CFLAGS=-I$(realpath ../libarchive-3.5.2/root/usr/local/include/) \ |
| LIBARCHIVE_LIBS=$(realpath ../libarchive-3.5.2/root/usr/local/lib/libarchive.a) \ |
| LIBS="$OPKG_LIBS" \ |
| ./configure $OPKG_OPTS && mark_configured $OPKG_ID \ |
| ) |
| make -j$(nproc) |
| cd .. |