1 #!/bin/bash 2 3 set -euxo pipefail 4 cd "${0%/*}" 5 cd .. 6 7 # Sanity checks 8 if [ ! -e "CMakeLists.txt" ] || [ ! -e "blob.c" ]; then 9 echo "libubox checkout not found" >&2 10 exit 1 11 fi 12 13 if [ $# -eq 0 ]; then 14 BUILD_ARGS="-DBUILD_LUA=ON -DBUILD_EXAMPLES=ON -DUNIT_TESTING=ON" 15 else 16 BUILD_ARGS="$@" 17 fi 18 19 # Create build dirs 20 LIBUBOXDIR="$(pwd)" 21 BUILDDIR="${LIBUBOXDIR}/build" 22 DEPSDIR="${BUILDDIR}/depends" 23 [ -e "${BUILDDIR}" ] || mkdir "${BUILDDIR}" 24 [ -e "${DEPSDIR}" ] || mkdir "${DEPSDIR}" 25 26 # Prepare env 27 export LD_LIBRARY_PATH="${BUILDDIR}/lib:${LD_LIBRARY_PATH:-}" 28 export PATH="${BUILDDIR}/bin:${PATH:-}" 29 30 # Download deps 31 cd "${DEPSDIR}" 32 [ -e "json-c" ] || git clone https://github.com/json-c/json-c.git 33 if [ ! -e "lua" ]; then 34 mkdir -p lua 35 wget -qO- https://www.lua.org/ftp/lua-5.1.5.tar.gz | \ 36 tar zxvf - -C lua --strip-components=1 37 sed -i '/#define LUA_USE_READLINE/d' ./lua/src/luaconf.h 38 sed -i 's/ -lreadline -lhistory -lncurses//g' ./lua/src/Makefile 39 fi 40 41 # Build lua 42 cd "${DEPSDIR}/lua" 43 make linux install \ 44 INSTALL_TOP="${BUILDDIR}" 45 46 # Build json-c 47 cd "${DEPSDIR}/json-c" 48 cmake \ 49 -S . \ 50 -B . \ 51 -DCMAKE_PREFIX_PATH="${BUILDDIR}" \ 52 -DBUILD_SHARED_LIBS=OFF \ 53 -DDISABLE_EXTRA_LIBS=ON \ 54 -DBUILD_TESTING=OFF \ 55 --install-prefix "${BUILDDIR}" 56 make 57 make install 58 59 # Build libubox 60 cd "${LIBUBOXDIR}" 61 cmake \ 62 -S . \ 63 -B "${BUILDDIR}" \ 64 -DCMAKE_PREFIX_PATH="${BUILDDIR}" \ 65 -DLUAPATH=${BUILDDIR}/lib/lua \ 66 --install-prefix "${BUILDDIR}" \ 67 ${BUILD_ARGS} 68 make -C "${BUILDDIR}" 69 make -C "${BUILDDIR}" install 70 71 # Test libubox 72 make -C "${BUILDDIR}" test CTEST_OUTPUT_ON_FAILURE=1 73 74 set +x 75 echo "✅ Success - the libubox library is available at ${BUILDDIR}" 76 echo "👷 You can rebuild libubox by running 'make -C build'" 77 78 exit 0
This page was automatically generated by LXR 0.3.1. • OpenWrt