Essentially, you follow the build system instructions:
feeds.conf.default
to point luci
at a local directory.opkg
file for the example app.Wiki documentation overrides this file.
~/src
~/src/openwrt
~/src/luci
From here on you'll be working in ~/src/openwrt
~/src/openwrt/feeds.conf.default
and comment out the src-git luci
entrysrc-link luci
entry pointing to your luci checkout - for example src-link luci /home/myuser/src/luci
scripts/feeds
tool per the documentation to update and install all feeds; you should see the local directory get used for luciIf you're doing a whole new application, instead of editing this one, you can use the src-link custom
example instead as a basis, leaving src-git luci
alone.
make menuconfig
luci-app-example
m
to make the selection be <M>
- modular buildEven though you're only building a simple JS + Lua package, you'll need the whole toolchain.
Though the command says "install", nothing is actually installed outside of the working directory (~/src/openwrt
in this case).
make tools/install
make toolchain/install
This will trigger the build of all the dependencies, such as ubus, libjson-c, rpcd etcetera.
make package/luci-app-example/compile
The IPK file will be produced in bin/packages/<architecture>/luci/
. This file can be copied to your test environment (QEMU, real hardware etcetera), and installed with opkg
.