X-Git-Url: http://git.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=Makefile;h=7dc9fa1e8ebe3d92a0e4d112687dc7e8b3554fd4;hp=a43766e6698c03916e5aee9e157416ffd64cff7d;hb=13224b696d0ea71fb2f8e2b4b0e8eca6caa9ae90;hpb=1c6c6d62ca665f9d1126b6bad849f7fd584b6a80 diff --git a/Makefile b/Makefile index a43766e669..7dc9fa1e8e 100644 --- a/Makefile +++ b/Makefile @@ -1,41 +1,105 @@ -LUAC = luac -LUAC_OPTIONS = -s +include build/config.mk -FILES = +MODULES = contrib/* applications/* libs/* modules/* themes/* i18n/* -CFILES = ffluci/util.lua ffluci/http.lua ffluci/fs.lua \ -ffluci/sys.lua ffluci/model/uci.lua ffluci/config.lua \ -ffluci/i18n.lua ffluci/template.lua ffluci/cbi.lua \ -ffluci/dispatcher.lua ffluci/menu.lua ffluci/init.lua +OS:=$(shell uname) +MODULES:=$(foreach item,$(wildcard $(MODULES)),$(if $(realpath $(wildcard $(item)/Makefile)),$(item))) -DIRECTORIES = dist/ffluci/model/cbi dist/ffluci/controller dist/ffluci/i18n dist/ffluci/view +export OS -INFILES = $(CFILES:%=src/%) -OUTFILE = ffluci/init.lua +.PHONY: all build gccbuild luabuild clean host gcchost luahost hostcopy hostclean -.PHONY: all dist-compile dist-source examples-compile examples-source dist examples compile source clean +all: build -all: compile +build: gccbuild luabuild -dist-compile: compile dist -dist-source: source dist +gccbuild: + make -C libs/web CC="cc" CFLAGS="" LDFLAGS="" SDK="$(shell test -f .running-sdk && echo 1)" host-install + for i in $(MODULES); do \ + make -C$$i SDK="$(shell test -f .running-sdk && echo 1)" compile || { \ + echo "*** Compilation of $$i failed!"; \ + exit 1; \ + }; \ + done -dist: - cp src/ffluci/controller/* dist/ffluci/controller/ -R - cp src/ffluci/i18n/* dist/ffluci/i18n/ - cp src/ffluci/view/* dist/ffluci/view/ -R - cp src/ffluci/model/cbi/* dist/ffluci/model/cbi/ -R +luabuild: i18nbuild + for i in $(MODULES); do HOST=$(realpath host) \ + SDK="$(shell test -f .running-sdk && echo 1)" make -C$$i luabuild; done -compile: - mkdir -p $(DIRECTORIES) - $(LUAC) $(LUAC_OPTIONS) -o dist/$(OUTFILE) $(INFILES) - for i in $(CFILES); do [ -f dist/$$i ] || ln -s `dirname $$i | cut -s -d / -f 2- | sed -e 's/[^/]*\/*/..\//g'``basename $(OUTFILE)` dist/$$i; done - for i in $(FILES); do cp src/$$i dist/$$i; done +i18nbuild: + mkdir -p host/lua-po + ./build/i18n-po2lua.pl ./po host/lua-po -source: - mkdir -p $(DIRECTORIES) - for i in $(CFILES); do cp src/$$i dist/$$i; done - for i in $(FILES); do cp src/$$i dist/$$i; done - clean: - rm dist -rf + rm -f .running-sdk + rm -rf docs + make -C libs/lmo host-clean + for i in $(MODULES); do make -C$$i clean; done + + +host: build hostcopy + +gcchost: gccbuild hostcopy + +luahost: luabuild hostcopy + +hostcopy: + mkdir -p host/tmp + mkdir -p host/var/state + for i in $(MODULES); do cp -pR $$i/dist/* host/ 2>/dev/null || true; done + for i in $(MODULES); do cp -pR $$i/hostfiles/* host/ 2>/dev/null || true; done + rm -f host/luci + ln -s .$(LUCI_MODULEDIR) host/luci + rm -rf /tmp/luci-* || true + +hostenv: sdk host ucidefaults + +sdk: + touch .running-sdk + +ucidefaults: + build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host)/bin/uci-defaults --exclude luci-freifunk-*" + +runhttpd: hostenv + build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "lua build/lucid.lua" + +runuhttpd: hostenv + cp $(realpath build)/luci.cgi $(realpath host)/www/cgi-bin/luci + build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host)/usr/sbin/uhttpd -p 8080 -h $(realpath host)/www -f" + +runlua: hostenv + build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "lua -i build/setup.lua" + +runshell: hostenv + build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) $$SHELL + +hostclean: clean + rm -rf host + +apidocs: hostenv + build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "build/makedocs.sh host/luci/ docs" + +nixiodocs: hostenv + build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "build/makedocs.sh libs/nixio/ nixiodocs" + +po: host + for L in $${LANGUAGE:-$$(find i18n/ -path 'i18n/*/luasrc/i18n/*' -name 'default.*.lua' | \ + sed -e 's!.*/default\.\(.*\)\.lua!\1!')}; do \ + build/i18n-lua2po.pl . $(realpath host)/po $$L; \ + done + +run: + # make run is deprecated # + # Please use: # + # # + # To run LuCI WebUI using LuCIttpd # + # make runhttpd # + # # + # To run LuCI WebUI using Boa/Webuci # + # make runboa # + # # + # To start a shell in the LuCI environment # + # make runshell # + # # + # To run Lua CLI in the LuCI environment # + # make runlua #