blob: 6ca8c645cd9f1b52f5be883c9011401b7669061f (
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
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
|
set common_cflags\
-D NDEBUG\
-I include\
-I '$dir' \
-I '$outdir' \
-I '$outdir'/include\
-I '$srcdir'/include\
-I '$srcdir'/ncurses\
-I '$srcdir'/progs
cflags '$common_cflags'
{
toolchain host
cflags '$common_cflags' -D USE_BUILD_CC
exe make_keys -d '$outdir/names.c $outdir/include/curses.h $outdir/include/ncurses_dll.h' ncurses/tinfo/make_keys.c
exe make_hash -d '$outdir/hashsize.h $outdir/include/curses.h' ncurses/tinfo/make_hash.c
} >tools.ninja ; subninja tools.ninja
build '$outdir'/curses.head sed '$srcdir'/include/curses.h.in '|' '$dir'/subst.sed ; with\
expr '-f $dir/subst.sed'
rule mkkeydefs '{ cat $outdir/curses.head && sh $srcdir/include/MKkey_defs.sh $in && cat $srcdir/include/curses.{wide,tail}; } >$out.tmp && mv $out.tmp $out'
build '$outdir'/include/curses.h mkkeydefs '$srcdir'/include/Caps '|' '$outdir'/curses.head '$srcdir'/include/^(curses.^(wide tail) MKkey_defs.sh)
rule mkhashsize 'sh $srcdir/include/MKhashsize.sh $in >$out.tmp && mv $out.tmp $out'
build '$outdir'/hashsize.h mkhashsize '$srcdir'/include/Caps '|' '$srcdir'/include/MKhashsize.sh
rule mkkeyslist 'sh $srcdir/ncurses/tinfo/MKkeys_list.sh $in | sort >$out.tmp && mv $out.tmp $out'
build '$outdir'/keys.list mkkeyslist '$srcdir'/include/Caps '|' '$srcdir'/ncurses/tinfo/MKkeys_list.sh
rule mkkeys '$outdir/make_keys $in >$out.tmp && mv $out.tmp $out'
build '$outdir'/init_keytry.h mkkeys '$outdir'/keys.list '|' '$outdir'/make_keys
rule mkdefs 'sh $srcdir/include/MKncurses_def.sh $in >$out.tmp && mv $out.tmp $out'
build '$outdir'/ncurses_def.h mkdefs '$srcdir'/include/ncurses_defs '|' '$srcdir'/include/MKncurses_def.sh
build '$outdir'/include/ncurses_dll.h sed '$srcdir'/include/ncurses_dll.h.in ; with\
expr s,@NCURSES_WRAP_PREFIX@,_nc_,
rule mkparam '$srcdir/include/MKparametrized.sh $in >$out.tmp && mv $out.tmp $out'
build '$outdir'/parametrized.h mkparam '$srcdir'/include/Caps '|' '$srcdir'/include/MKparametrized.sh
build '$outdir'/MKterm.h.awk sed '$srcdir'/include/MKterm.h.awk.in '|' '$dir'/subst.sed ; with\
expr '-f $dir/subst.sed'
for(f in termcap.h unctrl.h) {
build '$outdir'/include/$f sed '$srcdir'/include/$f.in '|' '$dir'/subst.sed ; with\
expr '-f $dir/subst.sed'
}
rule mkterm 'awk -f $outdir/MKterm.h.awk $in >$out.tmp && mv $out.tmp $out'
build '$outdir'/include/term.h mkterm '$srcdir'/include/Caps '|' '$outdir'/MKterm.h.awk
build '$outdir'/codes.c awk '$srcdir'/include/Caps '|' '$srcdir'/ncurses/tinfo/MKcodes.awk ; with\
expr '-f $srcdir/ncurses/tinfo/MKcodes.awk bigstrings=1'
rule mkcaptab '(cd $outdir && $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.sh awk 1 $$OLDPWD/$srcdir/ncurses/tinfo/MKcaptab.awk $$OLDPWD/$in) >$out.tmp && mv $out.tmp $out'
build '$outdir'/comp_captab.c mkcaptab '$srcdir'/include/Caps '|' '$outdir'/make_hash '$srcdir'/tinfo/^(MKcaptab.awk MKcaptab.sh)
rule mkfallback 'sh $srcdir/ncurses/tinfo/MKfallback.sh /dev/null /dev/null /dev/null >$out.tmp && mv $out.tmp $out'
build '$outdir'/fallback.c mkfallback '|' '$srcdir'/ncurses/tinfo/MKfallback.sh
build '$outdir'/lib_keyname.c awk '$outdir'/keys.list ; with\
expr '-f $srcdir/ncurses/base/MKkeyname.awk bigstrings=1'
build '$outdir'/names.c awk '$srcdir'/include/Caps '|' '$srcdir'/ncurses/tinfo/MKnames.awk ; with\
expr '-f $srcdir/ncurses/tinfo/MKnames.awk bigstrings=1'
rule mktermsort 'sh $srcdir/progs/MKtermsort.sh awk $in >$out.tmp && mv $out.tmp $out'
build '$outdir'/termsort.c mktermsort '$srcdir'/include/Caps '|' '$srcdir'/progs/MKtermsort.sh
build '$outdir'/unctrl.c awk /dev/null '|' '$srcdir'/ncurses/base/MKunctrl.awk ; with\
expr '-f $srcdir/ncurses/base/MKunctrl.awk bigstrings=1'
hdrs=include/^(curses.h ncurses_dll.h term.h termcap.h unctrl.h)
for(hdr in $hdrs) file $hdr '$outdir'/$hdr 644
phony headers '$outdir'/$hdrs
phony deps '$outdir'/^(\
hashsize.h init_keytry.h ncurses_def.h parametrized.h termsort.c\
) '$dir'/headers
lib libncurses.a -d '$dir'/deps `{grep -v '^#' sources.txt}
file lib/libncurses.a '$outdir'/libncurses.a 644
exe tic -d '$dir'/deps\
progs/^(tic.c dump_entry.c tparm_type.c transform.c)\
ncurses/^(\
tinfo/^(\
alloc_entry.c\
captoinfo.c\
comp_expand.c\
comp_parse.c\
comp_scan.c\
parse_entry.c\
write_entry.c\
)\
trace/lib_trace.c\
)\
libncurses.a
file bin/tic '$outdir'/tic 755
exe tset -d '$dir'/deps progs/^(tset.c transform.c.o) libncurses.a
file bin/tset '$outdir'/tset 755
sym bin/reset tset
for(m in tic.1m tset.1) {
build '$outdir'/$m sed '$srcdir'/man/$m '|' '$dir'/subst.sed ; with\
expr '-f $dir/subst.sed'
man -d '$outdir' 1 $m
}
sym share/man/man1/reset.1.gz tset.1.gz
terms=(dumb linux tmux tmux-256color xterm xterm-256color)
terminfo=`{printf %s\n $terms | awk '{print substr($0, 1, 1) "/" $0}'}
termnames=`{printf ,%s $terms | tail -c +1}
terminfo_outs='$outdir'/terminfo/$terminfo
build $"terminfo_outs tic '$srcdir'/misc/terminfo.src ; ticflags=(\
-o '$outdir'/terminfo\
-e $termnames\
-x\
) with ticflags $"ticflags
for(f in $terminfo)
file share/terminfo/$f '$outdir'/terminfo/$f 644
gen_inputs='$dir'/sources.txt
fetch curl
|