-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile
105 lines (78 loc) · 2.88 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
include build/config.mk
MODULES = contrib/* applications/* libs/* modules/* themes/* i18n/*
OS:=$(shell uname)
MODULES:=$(foreach item,$(wildcard $(MODULES)),$(if $(realpath $(wildcard $(item)/Makefile)),$(item)))
export OS
.PHONY: all build gccbuild luabuild clean host gcchost luahost hostcopy hostclean
all: build
build: gccbuild luabuild
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
luabuild: i18nbuild
for i in $(MODULES); do HOST=$(realpath host) \
SDK="$(shell test -f .running-sdk && echo 1)" make -C$$i luabuild; done
i18nbuild:
mkdir -p host/lua-po
./build/i18n-po2lua.pl ./po host/lua-po
clean:
rm -f .running-sdk
rm -rf docs
make -C libs/web 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 #