summaryrefslogtreecommitdiff
path: root/pkg/kbd/gen.rc
blob: a6191952766f7899de49516763d1bf18afb2f05f (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
cflags\
	-D 'DATADIR=''"/share/kbd"''' \
	-I include\
	-I '$dir' \
	-I '$srcdir' \
	-I '$srcdir'/src\
	-I '$srcdir'/src/libkeymap\
	-I '$srcdir'/src/libkeymap/keymap

lib libcommon.a src/^(getfd.c xmalloc.c kbd_error.c)
lib libfont.a src/^(kdfontop.c kdmapop.c loadunimap.c psffontop.c utf8.c)
lib libkeymap.a src/libkeymap/^(\
	analyze.c\
	array.c\
	common.c\
	diacr.c\
	dump.c\
	findfile.c\
	func.c\
	kernel.c\
	kmap.c\
	ksyms.c\
	loadkeys.c\
	modifiers.c\
	parser.c\
	summary.c\
)

# old: loadunimap mapscrn
# optional: clrunmap getunimap setlogcons setvesablank setpalette screendump
# i386/x86_64 only: resizecons
# ubase: chvt

fn x {
	sect=$1
	exe=$2
	shift 2
	exe $exe src/$exe.c $* libcommon.a libfont.a libkeymap.a
	file bin/$exe '$outdir'/$exe 755
	if(~ $sect ?~) {
		sect=`{printf %s $sect | cut -c -1}
		build '$outdir'/$exe.$sect sed '$srcdir'/docs/man/man$sect/$exe.$sect.in ; with\
			expr s,@DATADIR@,/share/kbd,g
		subdir='$outdir'
	}
	if not subdir=docs/man/man$sect
	if(~ $sect [18])
		man -d $subdir $sect $exe.$sect
	status=()
}

x 1 deallocvt
x 1~ dumpkeys
x 1 fgconsole
x 8 getkeycodes
x 1 kbd_mode
x - kbdinfo
x 1~ loadkeys
x 1 openvt
x 1 psfxtable
x 8~ setfont src/mapscrn.c
x 8 setkeycodes
x 8 setvtrgb
x 8 showconsolefont
x 1 showkey

# keymap data
keymaps=`{grep -v '^#' keymaps.txt}
for(keymap in keymaps/$keymaps) {
	build '$outdir'/$keymap.gz gzip '$srcdir'/data/$keymap
	file share/kbd/$keymap.gz '$outdir'/$keymap.gz 644
}
sym share/kbd/keymaps/ppc mac

fetch curl