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