summaryrefslogtreecommitdiff
path: root/rules.ninja
blob: c26891efb527bec73ae22d11265944416b9905e3 (plain)
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
rule gen
  command = rc ./setup.rc $dir
  generator = 1

# toolchain
rule cc
  command = $cc -MMD -MF $out.d $cflags -c -o $out $in
  depfile = $out.d
  deps = gcc

rule link
  command = $cc $ldflags -o $out $in

rule ar
  command = rm -f $out && $ar crs $out $in

# misc tools
rule touch
  command = touch $out

rule empty
  command = >$out

rule copy
  command = ln -f $in $out

rule cat
  command = cat $in >$out.tmp && mv $out.tmp $out

rule gzip
  command = gzip -c -9 -n $in >$out.tmp && mv $out.tmp $out

rule yacc
  command = oldcwd=$$PWD && cd $outdir && $yacc $yaccflags $$oldcwd/$in

rule sed
  command = sed $expr >$out.tmp $in && mv $out.tmp $out

rule githash
  command = rc ./scripts/hash.rc $builddir/$repo.git $out $args $in

rule gittree
  command = rc ./scripts/tree.rc $builddir/$repo.git $repo_tag $in
  restat = 1

rule gitcommit
  command = rc ./scripts/commit.rc $builddir/$repo.git $repo_branch $repo_tag

rule gitarchive
  command = git -C $builddir/$repo.git archive -o $$PWD/$out $repo_tag

rule gitinit
  command = mkdir -p $builddir/$repo.git && git -C $builddir/$repo.git init --bare && touch $out