master gen.lua
 1set('ninja_required_version', '1.8')
 2
 3set('basedir', basedir)
 4set('builddir', config.builddir)
 5set('dir', '$basedir')
 6set('outdir', '$builddir')
 7
 8set('repo', config.repo.path)
 9set('repo_flags', config.repo.flags)
10set('repo_tag', config.repo.tag)
11set('repo_branch', config.repo.branch)
12
13include '$basedir/rules.ninja'
14
15toolchain(config.target)
16
17subgen 'probe'
18subgen 'pkg'
19
20build('awk', '$outdir/root.perms', {'$outdir/tree.fspec', '|', '$basedir/scripts/perms.awk'}, {
21	expr='-f $basedir/scripts/perms.awk',
22})
23gitfile('.perms', '644', '$outdir/root.perms')
24
25build('git-init', '$outdir/root.stamp')
26build('git-tree', '$outdir/root.tree', {'$outdir/root.index', '|', '$basedir/scripts/tree.sh', '||', '$outdir/root.stamp'})
27build('git-commit', '$outdir/root.commit', {'|', '$outdir/root.tree'})
28build('phony', 'commit', '$builddir/root.commit')
29
30build('fspec-sort', '$outdir/root.fspec', {'$outdir/tree.fspec', '|', '$builddir/pkg/fspec-sync/host/fspec-sort'})
31build('fspec-tar', '$outdir/root.tar.zst', {'$outdir/root.fspec', '|', '$builddir/pkg/fspec-sync/host/fspec-tar'})
32
33--build('awk', '$outdir/root.sqfslist', {'$outdir/root.fspec', '|', '$basedir/scripts/squashfs.awk'}, {
34--	expr='-f $basedir/scripts/squashfs.awk',
35--})
36--rule('gensquashfs', 'gensquashfs -F $in -D . -f -c gzip $out')
37--build('gensquashfs', '$outdir/root.squashfs', {'$outdir/root.sqfslist'})
38
39build('phony', 'build.ninja', 'local.ninja', {generator='1'})
40build('gen', 'local.ninja', {
41	'|',
42	'$basedir/ninja.lua',
43	'$basedir/sets.lua',
44	'$basedir/setup.lua',
45	'config.lua',
46	'$gendir/gen',
47})
48
49io.write('default $builddir/root.tree\n')