xref: /openbmc/openbmc-tools/ipkdbg/build-opkg (revision c7a446e2)
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