• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/ubus/scripts/devel-build.sh

  1 #!/bin/bash
  2 
  3 set -euxo pipefail
  4 cd "${0%/*}"
  5 cd ..
  6 
  7 # Sanity checks
  8 if [ ! -e "CMakeLists.txt" ] || [ ! -e "libubus.c" ]; then
  9         echo "ubus checkout not found" >&2
 10         exit 1
 11 fi
 12 
 13 if [ $# -eq 0 ]; then
 14         BUILD_ARGS="-DBUILD_LUA=ON -DUNIT_TESTING=ON"
 15 else
 16         BUILD_ARGS="$@"
 17 fi
 18 
 19 # Create build dirs
 20 UBUSDIR="$(pwd)"
 21 BUILDDIR="${UBUSDIR}/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 [ -e "libubox" ] || git clone https://github.com/openwrt/libubox.git
 34 if [ ! -e "lua" ]; then
 35         mkdir -p lua
 36         wget -qO- https://www.lua.org/ftp/lua-5.1.5.tar.gz | \
 37                 tar zxvf - -C lua --strip-components=1
 38         sed -i '/#define LUA_USE_READLINE/d' ./lua/src/luaconf.h
 39         sed -i 's/ -lreadline -lhistory -lncurses//g' ./lua/src/Makefile
 40 fi
 41 
 42 # Build lua
 43 cd "${DEPSDIR}/lua"
 44 make linux install \
 45         INSTALL_TOP="${BUILDDIR}"
 46 
 47 # Build json-c
 48 cd "${DEPSDIR}/json-c"
 49 cmake                                                   \
 50         -S .                                            \
 51         -B .                                            \
 52         -DCMAKE_PREFIX_PATH="${BUILDDIR}"               \
 53         -DBUILD_SHARED_LIBS=OFF                         \
 54         -DDISABLE_EXTRA_LIBS=ON                         \
 55         -DBUILD_TESTING=OFF                             \
 56         --install-prefix "${BUILDDIR}"
 57 make
 58 make install
 59 
 60 # Build libubox
 61 cd "${DEPSDIR}/libubox"
 62 cmake                                                   \
 63         -S .                                            \
 64         -B .                                            \
 65         -DCMAKE_PREFIX_PATH="${BUILDDIR}"               \
 66         -DBUILD_LUA=ON                                  \
 67         -DBUILD_EXAMPLES=OFF                            \
 68         -DLUAPATH=${BUILDDIR}/lib/lua                   \
 69         --install-prefix "${BUILDDIR}"
 70 make
 71 make install
 72 
 73 # Build ubus
 74 cd "${UBUSDIR}"
 75 cmake                                                   \
 76         -S .                                            \
 77         -B "${BUILDDIR}"                                \
 78         -DCMAKE_PREFIX_PATH="${BUILDDIR}"               \
 79         -DLUAPATH=${BUILDDIR}/lib/lua                   \
 80         --install-prefix "${BUILDDIR}"                  \
 81         ${BUILD_ARGS}
 82 make -C "${BUILDDIR}"
 83 make -C "${BUILDDIR}" install
 84 
 85 # Test ubus
 86 make -C "${BUILDDIR}" test CTEST_OUTPUT_ON_FAILURE=1
 87 
 88 set +x
 89 echo "✅ Success - ubus is available at ${BUILDDIR}"
 90 echo "👷 You can rebuild ubus by running 'make -C build'"
 91 
 92 exit 0

This page was automatically generated by LXR 0.3.1.  •  OpenWrt