build: use maximum compression for LuaSrcDiet
[project/luci.git] / build / module.mk
index 8932f57..f0d50f8 100644 (file)
@@ -1,19 +1,46 @@
-.PHONY: all compile compile-module source source-module clean clean-module
-
-all: compile
-compile: compile-module
-clean: clean-module
-source: source-module
-
-source-module:
-       mkdir -p dist$(LUCI_INSTALLDIR)
-       cp root/* dist -R 2>/dev/null || true
-       cp src/* dist$(LUCI_INSTALLDIR) -R 2>/dev/null || true
-       for i in $$(find dist -name .svn); do rm $$i -rf; done  
-       
-compile-module: source-module
+MAKEPATH:=$(dir $(lastword $(MAKEFILE_LIST)))
+-include $(MAKEPATH)config.mk
+-include $(MAKEPATH)gccconfig.mk
+
+.PHONY: all build compile luacompile luasource clean luaclean
+
+all: build
+
+build: luabuild gccbuild
+
+luabuild: lua$(LUA_TARGET)
+
+gccbuild: compile
+compile:
+
+clean: luaclean
+
+luasource:
+       mkdir -p dist$(LUA_MODULEDIR)
+       mkdir -p dist$(LUCI_MODULEDIR)
+       mkdir -p dist$(HTDOCS)
+       cp -pR root/* dist 2>/dev/null || true
+       cp -pR luasrc/* dist$(LUCI_MODULEDIR) 2>/dev/null || true
+       cp -pR lua/* dist$(LUA_MODULEDIR) 2>/dev/null || true
+       cp -pR htdocs/* dist$(HTDOCS) 2>/dev/null || true
+       for i in $$(find dist -name .svn -o -name .gitignore); do rm -rf $$i || true; done
+  ifneq ($(PO),)
+       mkdir -p dist$(LUCI_I18NDIR)
+       for file in $(PO); do \
+         cp $(HOST)/lua-po/$$file.$(if $(PO_LANG),$(PO_LANG),*).* dist$(LUCI_I18NDIR)/ 2>/dev/null || true; \
+       done
+  endif
+
+
+luadiet: luasource
+       for i in $$(find dist -type f -name '*.lua'); do $(LUA) ../../contrib/luasrcdiet/lua/LuaSrcDiet.lua --maximum $$i -o $$i.diet && mv $$i.diet $$i; done
+
+luastrip: luasource
+       for i in $$(find dist -type f -name '*.lua'); do perl -e 'undef $$/; open( F, "< $$ARGV[0]" ) || die $$!; $$src = <F>; close F; $$src =~ s/--\[\[.*?\]\](--)?//gs; $$src =~ s/^\s*--.*?\n//gm; open( F, "> $$ARGV[0]" ) || die $$!; print F $$src; close F' $$i; done
+
+luacompile: luasource
        for i in $$(find dist -name *.lua -not -name debug.lua); do $(LUAC) $(LUAC_OPTIONS) -o $$i $$i; done
 
-clean-module:
+luaclean:
        rm -rf dist