Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
drunken-octo-hipster/documentation/Modules.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
94 lines (58 sloc)
2.64 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Categories | |
The LuCI modules are divided into several category directories, namely: | |
* applications (Single applications or plugins for other modules or applications) | |
* i18n (Translation files) | |
* libs (Independent libraries) | |
* modules (Collections of applications) | |
* themes (Frontend themes) | |
Each module goes into a subdirectory of any of this category-directories. | |
# Module directory | |
The contents of a module directory are as follows: | |
## Makefile | |
This is the module's makefile. If the module just contains Lua sourcecode or resources then the following Makefile should suffice. | |
include ../../build/config.mk | |
include ../../build/module.mk | |
If you have C(++) code in your module your Makefile should at least contain the following things. | |
include ../../build/config.mk | |
include ../../build/gccconfig.mk | |
include ../../build/module.mk | |
compile: | |
# Commands to compile and link your C-code | |
# and to install them under the dist/ hierarchy | |
clean: luaclean | |
# Commands to clean your compiled objects | |
## src | |
The *src* directory is reserved for C sourcecode. | |
## luasrc | |
*luasrc* contains all Lua sourcecode files. These will automatically be stripped or compiled depending on the Make target and are installed in the LuCI installation directory. | |
## lua | |
*lua* is equivalent to _luasrc_ but containing Lua files will be installed in the Lua document root. | |
## htdocs | |
All files under *htdocs* will be copied to the document root of the target webserver. | |
## root | |
All directories and files under *root* will be copied to the installation target as they are. | |
## dist | |
*dist* is reserved for the builder to create a working installation tree that will represent the filesystem on the target machine. | |
*DO NOT* put any files there as they will get deleted. | |
## ipkg | |
*ipkg* contains IPKG package control files, like _preinst'', ''posinst'', ''prerm'', ''postrm''. ''conffiles_. | |
See IPKG documentation for details. | |
# OpenWRT feed integration | |
If you want to add your module to the LuCI OpenWRT feed you have to add several sections to the contrib/package/luci/Makefile. | |
For a Web UI applications this is: | |
A package description: | |
define Package/luci-app-YOURMODULE | |
$(call Package/luci/webtemplate) | |
DEPENDS+=+some-package +some-other-package | |
TITLE:=SHORT DESCRIPTION OF YOURMODULE | |
endef | |
A package installation target: | |
define Package/luci-app-YOURMODULE/install | |
$(call Package/luci/install/template,$(1),applications/YOURMODULE) | |
endef | |
A module build instruction: | |
ifneq ($(CONFIG_PACKAGE_luci-app-YOURMODULE),) | |
PKG_SELECTED_MODULES+=applications/YOURMODULE | |
endif | |
A build package call: | |
$(eval $(call BuildPackage,luci-app-YOURMODULE)) | |