1c7a446e2SAndrew Jeffery#!/bin/sh 2c7a446e2SAndrew Jeffery 3c7a446e2SAndrew Jefferyset -eu 4c7a446e2SAndrew Jeffery 5c7a446e2SAndrew Jefferyset -x 6c7a446e2SAndrew Jeffery 7c7a446e2SAndrew Jeffery# : ${OPKG_LIBS:="-llzma -lldap -llber -lz -pthread"} 8*636a6d42SJian Zhang: ${OPKG_LIBS:="-lz -pthread -lzstd"} 9c7a446e2SAndrew Jeffery 10c7a446e2SAndrew Jefferygenerate_configure_id() { 11c7a446e2SAndrew Jeffery echo "$@" | sha256sum | awk '{ printf "build-opkg-%s", $1 }' 12c7a446e2SAndrew Jeffery} 13c7a446e2SAndrew Jeffery 14c7a446e2SAndrew Jefferymark_configured() { 15c7a446e2SAndrew Jeffery rm -f build-opkg-* 16c7a446e2SAndrew Jeffery touch $1 17c7a446e2SAndrew Jeffery} 18c7a446e2SAndrew Jeffery 19c7a446e2SAndrew Jeffery# libarchive 20c7a446e2SAndrew Jeffery[ -f libarchive-3.5.2.tar.gz ] || wget http://libarchive.org/downloads/libarchive-3.5.2.tar.gz 21c7a446e2SAndrew Jeffery[ -d libarchive-3.5.2 ] || tar -xvf libarchive-3.5.2.tar.gz 22c7a446e2SAndrew Jefferycd libarchive-3.5.2 23c7a446e2SAndrew JefferyLIBARCHIVE_OPTS="\ 24c7a446e2SAndrew Jeffery--without-zlib \ 25c7a446e2SAndrew Jeffery--without-bz2lib \ 26c7a446e2SAndrew Jeffery--without-libb2 \ 27c7a446e2SAndrew Jeffery--without-lz4 \ 28c7a446e2SAndrew Jeffery--without-lzo2 \ 29c7a446e2SAndrew Jeffery--without-cng \ 30c7a446e2SAndrew Jeffery--without-nettle \ 31c7a446e2SAndrew Jeffery--without-xml2 \ 32c7a446e2SAndrew Jeffery--without-expat \ 33*636a6d42SJian Zhang--with-zstd \ 34c7a446e2SAndrew Jeffery--disable-acl \ 35c7a446e2SAndrew Jeffery--disable-xattr \ 36c7a446e2SAndrew Jeffery--enable-posix-regex-lib=libc \ 37c7a446e2SAndrew Jeffery--disable-rpath \ 38c7a446e2SAndrew Jeffery--disable-bsdcat \ 39c7a446e2SAndrew Jeffery--disable-bsdtar \ 40c7a446e2SAndrew Jeffery--disable-bsdcpio \ 41c7a446e2SAndrew Jeffery--with-pic" 42c7a446e2SAndrew JefferyLIBARCHIVE_ID=$(generate_configure_id "$LIBARCHIVE_OPTS") 43c7a446e2SAndrew Jeffery[ -f $LIBARCHIVE_ID ] || ( ./configure $LIBARCHIVE_OPTS && mark_configured $LIBARCHIVE_ID ) 44c7a446e2SAndrew Jefferymkdir -p root && make -j$(nproc) install DESTDIR=$(realpath root) 45c7a446e2SAndrew Jefferycd .. 46c7a446e2SAndrew Jeffery 47c7a446e2SAndrew Jeffery# curl 48c7a446e2SAndrew Jeffery[ -f curl-7.79.1.tar.bz2 ] || wget https://curl.haxx.se/download/curl-7.79.1.tar.bz2 49c7a446e2SAndrew Jeffery[ -d curl-7.79.1 ] || tar -xvf curl-7.79.1.tar.bz2 50c7a446e2SAndrew Jefferycd curl-7.79.1 51c7a446e2SAndrew JefferyCURL_OPTS=--with-openssl 52c7a446e2SAndrew JefferyCURL_ID=$(generate_configure_id "$CURL_OPTS") 53c7a446e2SAndrew Jeffery[ -f $CURL_ID ] || ( ./configure $CURL_OPTS && mark_configured $CURL_ID ) 54c7a446e2SAndrew Jefferymkdir -p root && make -j$(nproc) install DESTDIR=$(realpath root) 55c7a446e2SAndrew Jefferycd .. 56c7a446e2SAndrew Jeffery 57c7a446e2SAndrew Jeffery# opkg 58*636a6d42SJian Zhang[ -f opkg-0.6.3.tar.gz ] || wget http://downloads.yoctoproject.org/releases/opkg/opkg-0.6.3.tar.gz 59*636a6d42SJian Zhang[ -d opkg-0.6.3 ] || tar -xvf opkg-0.6.3.tar.gz 60*636a6d42SJian Zhangcd opkg-0.6.3 61c7a446e2SAndrew JefferyOPKG_OPTS="\ 62c7a446e2SAndrew Jeffery--with-static-libopkg \ 63c7a446e2SAndrew Jeffery--without-libsolv \ 64c7a446e2SAndrew Jeffery--enable-curl \ 65c7a446e2SAndrew Jeffery--enable-openssl \ 66*636a6d42SJian Zhang--enable-zstd \ 67c7a446e2SAndrew Jeffery--disable-gpg \ 68c7a446e2SAndrew Jeffery--disable-dependency-tracking" 69c7a446e2SAndrew JefferyOPKG_ID=$(generate_configure_id "$OPKG_OPTS" "$OPKG_LIBS") 70c7a446e2SAndrew Jeffery[ -f $OPKG_ID ] || ( \ 71c7a446e2SAndrew Jeffery AR_FLAGS=Tcru \ 72c7a446e2SAndrew Jeffery PKG_CONFIG_PATH=$(realpath ../libarchive-3.5.2/root/usr/local/lib/pkgconfig/):$(realpath ../curl-7.79.1/root/usr/local/lib/pkgconfig/) \ 73c7a446e2SAndrew Jeffery CURL_CFLAGS=-I$(realpath ../curl-7.79.1/root/usr/local/include/) \ 74c7a446e2SAndrew Jeffery CURL_LIBS=$(realpath ../curl-7.79.1/root/usr/local/lib/libcurl.a) \ 75c7a446e2SAndrew Jeffery LIBARCHIVE_CFLAGS=-I$(realpath ../libarchive-3.5.2/root/usr/local/include/) \ 76c7a446e2SAndrew Jeffery LIBARCHIVE_LIBS=$(realpath ../libarchive-3.5.2/root/usr/local/lib/libarchive.a) \ 77c7a446e2SAndrew Jeffery LIBS="$OPKG_LIBS" \ 78c7a446e2SAndrew Jeffery ./configure $OPKG_OPTS && mark_configured $OPKG_ID \ 79c7a446e2SAndrew Jeffery ) 80c7a446e2SAndrew Jefferymake -j$(nproc) 81c7a446e2SAndrew Jefferycd .. 82