* luci/libs/uvl: fix error handling of OPT_INVVALUE too
[project/luci.git] / Makefile
index a2d4dd1e4b8b4e0efa8458151d405405ab7dd7c2..558ee352bf9815eef3425be311b99d0d9c9ac825 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,48 +1,79 @@
-LUAC = luac
-LUAC_OPTIONS = -s
+include build/config.mk
 
-FILES = ffluci/config.lua
+MODULES = applications/* libs/* modules/* themes/* i18n/* contrib/*
 
-CFILES = ffluci/util.lua ffluci/http.lua \
-ffluci/fs.lua ffluci/i18n.lua ffluci/model/uci.lua \
-ffluci/template.lua ffluci/dispatcher.lua ffluci/menu.lua \
-ffluci/init.lua ffluci/sys.lua 
+OS:=$(shell uname)
+export OS
 
-DIRECTORIES = dist/ffluci/model dist/ffluci/controller/public dist/ffluci/controller/admin dist/ffluci/i18n dist/ffluci/view
+.PHONY: all build gccbuild luabuild clean host gcchost luahost hostcopy hostclean
 
-INFILES = $(CFILES:%=src/%)
-OUTFILE = ffluci/init.lua
+all: build
 
-.PHONY: all dist-compile dist-source examples-compile examples-source dist examples compile source clean
+build: gccbuild luabuild
 
-all: compile
+gccbuild:
+       for i in $(MODULES); do make -C$$i compile; done        
 
-dist-compile: compile dist
-dist-source: source dist
+luabuild:
+       for i in $(MODULES); do make -C$$i luabuild; done
 
-examples-compile: compile examples
-examples-source: source examples
+clean:
+       rm -rf docs
+       for i in $(MODULES); do make -C$$i clean; done
 
 
-dist:
-       cp src/ffluci/controller/public/* dist/ffluci/controller/public/
-       cp src/ffluci/controller/admin/* dist/ffluci/controller/admin/
-       cp src/ffluci/i18n/* dist/ffluci/i18n/
-       cp src/ffluci/view/* dist/ffluci/view/ -R
-       
-examples:
-       cp examples/* dist/ -R
+host: build hostcopy
 
-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
+gcchost: gccbuild hostcopy
 
-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
+luahost: luabuild hostcopy
+
+hostcopy: 
+       mkdir -p host
+       for i in $(MODULES); do cp -a $$i/dist/* host/ -R 2>/dev/null || true; done
+       for i in $(MODULES); do cp -a $$i/hostfiles/* host/ -R 2>/dev/null || true; done
+       rm -f host/luci
+       ln -s .$(LUCI_MODULEDIR) host/luci
+
+hostenv: host ucidefaults
+
+ucidefaults:
+       build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host)/bin/uci-defaults --exclude luci-community-*"
+
+runboa: hostenv
+       libs/sgi-webuci/host/buildconfig.sh $(realpath host) > host/etc/boa/boa.conf
+       build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath host/usr/bin/boa) -c $(realpath host/etc/boa) -d"
+
+runhttpd: hostenv
+       build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath libs/httpd/host/runluci) $(realpath host) $(HTDOCS)"
+
+runluci: luahost
+       build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) "$(realpath libs/httpd/host/runluci) $(realpath host) $(HTDOCS)"
+
+runlua: hostenv
+       build/hostenv.sh $(realpath host) $(LUA_MODULEDIR) $(LUA_LIBRARYDIR) 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"
+
+run:
+       #       make run is deprecated                          #
+       #       Please use:                                     #
+       #                                                       #
+       #       To run LuCI WebUI using LuCI HTTPD              #
+       #       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                                     #