-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.ninja
115 lines (94 loc) · 5.62 KB
/
build.ninja
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
106
107
108
109
110
111
112
113
114
115
# Ninja file generated by bang (https://github.com/cdsoft/bang)
# ../../.build/bang build.lua -o build.ninja
# Targets:
# help show this help message
# install install in PREFIX or ~/.local
# Files installed in bin
# .build/lua
# .build/luac
ninja_required_version = 1.11.1
######################################################################
# Dummy project showing bang capabilities
# and many other features enabled by LuaX.
#
# The src directory contains the C sources of a Lua interpreter.
#
# This script generates a Ninja file that compiles and optionally install Lua
######################################################################
builddir = .build
rule C-cc
description = cc $out
command = cc -c -MD -MF $depfile -O2 -DLUA_USE_LINUX -DLUA_USE_READLINE $in -o $out
depfile = $out.d
rule C-ar
description = ar $out
command = ar -crs $out $in
rule C-so
description = cc $out
command = cc -shared -o $out $in
rule C-ld
description = cc $out
command = cc -s -lm -lreadline -o $out $in
build $builddir/tmp/liblua.a.tmp/src/lapi.o: C-cc src/lapi.c
build $builddir/tmp/liblua.a.tmp/src/lauxlib.o: C-cc src/lauxlib.c
build $builddir/tmp/liblua.a.tmp/src/lbaselib.o: C-cc src/lbaselib.c
build $builddir/tmp/liblua.a.tmp/src/lcode.o: C-cc src/lcode.c
build $builddir/tmp/liblua.a.tmp/src/lcorolib.o: C-cc src/lcorolib.c
build $builddir/tmp/liblua.a.tmp/src/lctype.o: C-cc src/lctype.c
build $builddir/tmp/liblua.a.tmp/src/ldblib.o: C-cc src/ldblib.c
build $builddir/tmp/liblua.a.tmp/src/ldebug.o: C-cc src/ldebug.c
build $builddir/tmp/liblua.a.tmp/src/ldo.o: C-cc src/ldo.c
build $builddir/tmp/liblua.a.tmp/src/ldump.o: C-cc src/ldump.c
build $builddir/tmp/liblua.a.tmp/src/lfunc.o: C-cc src/lfunc.c
build $builddir/tmp/liblua.a.tmp/src/lgc.o: C-cc src/lgc.c
build $builddir/tmp/liblua.a.tmp/src/linit.o: C-cc src/linit.c
build $builddir/tmp/liblua.a.tmp/src/liolib.o: C-cc src/liolib.c
build $builddir/tmp/liblua.a.tmp/src/llex.o: C-cc src/llex.c
build $builddir/tmp/liblua.a.tmp/src/lmathlib.o: C-cc src/lmathlib.c
build $builddir/tmp/liblua.a.tmp/src/lmem.o: C-cc src/lmem.c
build $builddir/tmp/liblua.a.tmp/src/loadlib.o: C-cc src/loadlib.c
build $builddir/tmp/liblua.a.tmp/src/lobject.o: C-cc src/lobject.c
build $builddir/tmp/liblua.a.tmp/src/lopcodes.o: C-cc src/lopcodes.c
build $builddir/tmp/liblua.a.tmp/src/loslib.o: C-cc src/loslib.c
build $builddir/tmp/liblua.a.tmp/src/lparser.o: C-cc src/lparser.c
build $builddir/tmp/liblua.a.tmp/src/lstate.o: C-cc src/lstate.c
build $builddir/tmp/liblua.a.tmp/src/lstring.o: C-cc src/lstring.c
build $builddir/tmp/liblua.a.tmp/src/lstrlib.o: C-cc src/lstrlib.c
build $builddir/tmp/liblua.a.tmp/src/ltable.o: C-cc src/ltable.c
build $builddir/tmp/liblua.a.tmp/src/ltablib.o: C-cc src/ltablib.c
build $builddir/tmp/liblua.a.tmp/src/ltm.o: C-cc src/ltm.c
build $builddir/tmp/liblua.a.tmp/src/lundump.o: C-cc src/lundump.c
build $builddir/tmp/liblua.a.tmp/src/lutf8lib.o: C-cc src/lutf8lib.c
build $builddir/tmp/liblua.a.tmp/src/lvm.o: C-cc src/lvm.c
build $builddir/tmp/liblua.a.tmp/src/lzio.o: C-cc src/lzio.c
build $builddir/liblua.a: C-ar $builddir/tmp/liblua.a.tmp/src/lapi.o $builddir/tmp/liblua.a.tmp/src/lauxlib.o $builddir/tmp/liblua.a.tmp/src/lbaselib.o $builddir/tmp/liblua.a.tmp/src/lcode.o $builddir/tmp/liblua.a.tmp/src/lcorolib.o $builddir/tmp/liblua.a.tmp/src/lctype.o $builddir/tmp/liblua.a.tmp/src/ldblib.o $builddir/tmp/liblua.a.tmp/src/ldebug.o $builddir/tmp/liblua.a.tmp/src/ldo.o $builddir/tmp/liblua.a.tmp/src/ldump.o $builddir/tmp/liblua.a.tmp/src/lfunc.o $builddir/tmp/liblua.a.tmp/src/lgc.o $builddir/tmp/liblua.a.tmp/src/linit.o $builddir/tmp/liblua.a.tmp/src/liolib.o $builddir/tmp/liblua.a.tmp/src/llex.o $builddir/tmp/liblua.a.tmp/src/lmathlib.o $builddir/tmp/liblua.a.tmp/src/lmem.o $builddir/tmp/liblua.a.tmp/src/loadlib.o $builddir/tmp/liblua.a.tmp/src/lobject.o $builddir/tmp/liblua.a.tmp/src/lopcodes.o $builddir/tmp/liblua.a.tmp/src/loslib.o $builddir/tmp/liblua.a.tmp/src/lparser.o $builddir/tmp/liblua.a.tmp/src/lstate.o $builddir/tmp/liblua.a.tmp/src/lstring.o $builddir/tmp/liblua.a.tmp/src/lstrlib.o $builddir/tmp/liblua.a.tmp/src/ltable.o $builddir/tmp/liblua.a.tmp/src/ltablib.o $builddir/tmp/liblua.a.tmp/src/ltm.o $builddir/tmp/liblua.a.tmp/src/lundump.o $builddir/tmp/liblua.a.tmp/src/lutf8lib.o $builddir/tmp/liblua.a.tmp/src/lvm.o $builddir/tmp/liblua.a.tmp/src/lzio.o
build $builddir/tmp/lua.tmp/src/lua.o: C-cc src/lua.c
build $builddir/lua: C-ld $builddir/tmp/lua.tmp/src/lua.o $builddir/liblua.a
build $builddir/tmp/luac.tmp/src/luac.o: C-cc src/luac.c
build $builddir/luac: C-ld $builddir/tmp/luac.tmp/src/luac.o $builddir/liblua.a
default $builddir/lua $builddir/luac
######################################################################
# Installation
######################################################################
prefix = ~/.local
rule install-bin
description = INSTALL $in to bin
command = install -v -D -t $${PREFIX:-$prefix}/bin $in
build install-bin: install-bin $builddir/lua $builddir/luac
build install: phony install-bin
######################################################################
# Help
######################################################################
rule help
description = help
command = echo "Targets:"; $
echo " help show this help message"; $
echo " install install in PREFIX or ~/.local"
build help: help
######################################################################
# Regenerate build.ninja when build.lua changes
######################################################################
rule bang
command = ../../.build/bang $in -o $out
generator = true
build build.ninja: bang build.lua