Hi. I'm facing following error while trying to rebuild existing package.
My goal is to create my own custom package, but before going for that, I'm now trying to get used to the OpenWRT build system. However, I'm failing even with the simplest example.
I'm following above documentation as-is, and getting following result:
...
$ make menuconfig
$ make -j5
...(This 'make world' completes without any error with valid firmware image)...
$ make package/ncurses/compile
make[1] package/ncurses/compile
make[2] -C package/libs/ncurses host-compile
make[2] -C package/libs/toolchain compile
make[2] -C package/libs/zlib compile
make[2] -C package/libs/ncurses compile
$ make package/ncurses/install V=sc
make[1]: Entering directory '/d/src/openwrt/openwrt'
make[1]: *** No rule to make target 'package/ncurses/install'. Stop.
make[1]: Leaving directory '/d/src/openwrt/openwrt'
make: *** [/d/src/openwrt/openwrt/include/toplevel.mk:218: package/ncurses/install] Error 2
What could be a cause of this error?
As no file is changed after 'git clone' and full 'make -j5' went successfully, I'm not sure make is not finding the right target. Am I missing something to get this run?
Also, this is same for all other packages - I can do 'make package/.../compile' fine, but 'make package/.../install' fails for any package I tried.
I'm using master branch, at commit b133e466b08e25ea59be9108de5f262f7eff49a6 .
Probably there has been changes to the makefiles since those docs where written...
have you tried make package/libs/ncurses/compile make package/libs/ncurses/install
The root Makefile imports and runs other makefiles downstream as the result of make or make world.
You simply need to look for what you need in the Makefiles of the other directories
read the contents of toplevel.mk to see that the recipe isn't there
take a look at the makefile for the ncurses libraries
I believe running a simple make while in that directory will achieve what youre talking about but I'm not sure
Yes I have and it fails as did every other package that I've tried so I guess as you suggest the docs are (still) out of date.
I've done tons and tons of development on backfire needless to say lots of things have changed since then, but it would be nice if the docs (eventually) caught up. I'd edit the Wiki myself if I were more confident that it was a change and not just a local issue.
No I hadn't but I just tried it did, and it didn't work. If I set TOPDIR manually then it does, but that's not the point.
The point is that "make <path to package/install" use to work and is documented as working, but it does not. As I pointed out in my post both "make <path to package/compile" and full builds work. Now that I know the "install" action is deprecated I won't try to use it and I won't worry about it any further.
Hey all, I am also running into this issue. I still don't understand how to build the ipk file for a single package. The docs seem to be wrong? Did nobody try to build a package since oct 2020? Or is this plain obvious to everybody except newbies? I'd love to update the docs, if only I could find out what the correct build target is.
Just for testing, I am trying to compile a package from the luci feed. Compiling it works, just not the install rule/target doesn't seem to exist. (in a docker container:)
# make package/feeds/luci/luci-theme-openwrt/compile
make[1] package/feeds/luci/luci-theme-openwrt/compile
make[2] -C /data/openwrt_lede-18.06/luci/modules/luci-base host-compile
make[2] -C package/libs/toolchain compile
make[2] -C package/utils/lua host-compile
make[2] -C /data/openwrt_lede-18.06/luci/themes/luci-theme-openwrt compile
# make package/feeds/luci/luci-theme-openwrt/install -j1 V=s
make[1]: Entering directory '/data/openwrt_lede-18.06/openwrt'
make[1]: *** No rule to make target 'package/feeds/luci/luci-theme-openwrt/install'. Stop.
make[1]: Leaving directory '/data/openwrt_lede-18.06/openwrt'
/data/openwrt_lede-18.06/openwrt/include/toplevel.mk:216: recipe for target 'package/feeds/luci/luci-theme-openwrt/install' failed
make: *** [package/feeds/luci/luci-theme-openwrt/install] Error 2