forked from oasislinux/oasis
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rules.ninja
132 lines (99 loc) · 2.69 KB
/
rules.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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
rule gen
command = lua $basedir/setup.lua $gendir
generator = 1
# toolchain
rule cc
command = $cc -MD -MF $out.d $cflags -c -o $out $in
depfile = $out.d
deps = gcc
description = CC $out
rule cpp
command = $cc -MD -MF $out.d $cflags -E -P -o $out $in
depfile = $out.d
deps = gcc
description = CPP $out
rule as
command = $as $asflags -o $out $in
description = AS $out
rule link
command = $cc $ldflags -o $out $in $ldlibs
description = LINK $out
rule ar
command = rm -f $out && $ar crs $out $in
description = AR $out
rule ld
command = $ld -o $out $in
description = LD $out
rule objcopy
command = $objcopy $objcopyflags $in $out
rule rsp
command = ln -f $rspfile $out
description = RSP $out
rspfile = $out.tmp
rspfile_content = $in_newline
# TODO: Enable dependency-tracking for nasm when
# https://bugzilla.nasm.us/show_bug.cgi?id=3392280#c6 is fixed.
rule nasm
command = nasm $nasmflags -o $out $in
rule mc
command = $mc $mcflags -o $out $in
rule muse
command = muse $museflags -o $out $in
rule probe
command = sh $basedir/scripts/probe.sh $var $out $cc $cflags $ldflags -o /dev/null -x c $in
rule probe-size
command = sh $basedir/scripts/probe-size.sh $var $out $cc $cflags -c -o /dev/null -x c $in
# misc tools
rule touch
command = touch $out
rule empty
command = >$out
description = EMPTY $out
rule copy
command = ln -f $in $out
description = COPY $out
rule cat
command = cat $in >$out
rule gzip
command = gzip -c -9 -n <$in >$out
description = GZIP $out
rule yacc
command = yacc $yaccflags $in
description = YACC $out
rule sed
command = sed $expr $in >$out
description = SED $out
rule awk
command = awk $expr $in >$out
description = AWK $out
rule grep
command = grep $expr $in >$out
rule printf
command = printf $args >$out
rule tic
command = tic $ticflags $in
rule wayland-proto
command = wayland-scanner $type <$in >$out
rule git-hash
command = sh $basedir/scripts/hash.sh $repo $args $in >$out
description = HASH $args
rule git-tree
command = sh $basedir/scripts/tree.sh $repo $repo_tag $in $out
description = TREE $out
restat = 1
rule git-commit
command = sh $basedir/scripts/commit.sh $repo $repo_branch $repo_tag $out
rule git-init
command = git init $repo_flags $repo && touch $out
rule fspec-hash
command = $builddir/pkg/fspec-sync/host/fspec-hash <$in >$out
rule fspec-sort
command = $builddir/pkg/fspec-sync/host/fspec-sort -p <$in >$out
rule fspec-tar
command = $builddir/pkg/fspec-sync/host/fspec-tar <$in | zstd >$out
rule fetch
command = cd $basedir && sh $$OLDPWD/$script $gendir && touch $$OLDPWD/$out
description = FETCH $gendir
restat = 1
generator = 1
pool = console