summaryrefslogtreecommitdiff
path: root/pkg/netbsd-curses/gen.lua
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2021-05-30 00:47:43 -0700
committerMichael Forney <mforney@mforney.org>2021-06-03 01:04:37 -0700
commit8957ea66ba0f027b9e810dab7725341f07359e37 (patch)
treefba58cf1c4c9623172d559b406cf273256f02813 /pkg/netbsd-curses/gen.lua
parenteebd8aa52002de6977bc72a1213a2e93cd3a5f00 (diff)
Add netbsd-curses
Diffstat (limited to 'pkg/netbsd-curses/gen.lua')
-rw-r--r--pkg/netbsd-curses/gen.lua140
1 files changed, 140 insertions, 0 deletions
diff --git a/pkg/netbsd-curses/gen.lua b/pkg/netbsd-curses/gen.lua
new file mode 100644
index 00000000..22bbd5dd
--- /dev/null
+++ b/pkg/netbsd-curses/gen.lua
@@ -0,0 +1,140 @@
+cflags{
+ '-Wall', '-Wpedantic',
+ '-D _XOPEN_SOURCE=700',
+ '-D TERMINFO_DB',
+ ([[-D '_PATH_TERMINFO="%s/share/misc/terminfo"']]):format(config.prefix),
+ '-I $srcdir/compat',
+ '-I $srcdir/lib/libcurses',
+ '-I $srcdir/lib/libterminfo',
+ '-I $srcdir/lib/libform',
+ '-I $srcdir/lib/libmenu',
+ '-I $srcdir/lib/libpanel',
+ '-I $outdir',
+}
+
+sub('tools.ninja', function()
+ toolchain(config.host)
+ cflags{
+ '-I $srcdir/compat',
+ '-I $srcdir/lib/libterminfo',
+ }
+ set('outdir', '$outdir/host')
+
+ cc('compat/mi_vector_hash.c')
+ build('cc', '$outdir/hash.c.o', '$outdir/../hash.c')
+
+ exe('nbperf', [[
+ usr.bin/nbperf/(
+ nbperf.c
+ nbperf-bdz.c nbperf-chm.c nbperf-chm3.c
+ graph2.c graph3.c
+ )
+ compat/mi_vector_hash.c.o
+ ]])
+
+ exe('tic', [[
+ usr.bin/tic/tic.c
+ lib/libterminfo/compile.c
+ compat/cdbw.c
+ compat/mi_vector_hash.c.o
+ hash.c.o
+ ]])
+end)
+
+pkg.hdrs = {
+ copy('$outdir/include', '$srcdir/lib/libcurses', {'curses.h', 'unctrl.h'}),
+ copy('$outdir/include', '$srcdir/lib/libterminfo', {'term.h', 'termcap.h'}),
+ copy('$outdir/include', '$srcdir/lib/libpanel', {'panel.h'}),
+ install=true,
+}
+pkg.deps = {
+ '$outdir/compiled_terms.c',
+ '$outdir/termcap_hash.c',
+ '$outdir/hash.c',
+}
+
+rule('tic', '$outdir/host/tic $ticflags -o $out $in $terms')
+build('tic', '$outdir/compiled_terms.c', {'$srcdir/share/terminfo/terminfo', '|', '$outdir/host/tic'}, {
+ ticflags='-Sx',
+ terms='dumb',
+})
+build('tic', '$outdir/terminfo.cdb', {'$srcdir/share/terminfo/terminfo', '|', '$outdir/host/tic'}, {
+ ticflags='-x',
+ terms='ansi dumb vt100 vt220 xterm xterm-256color st st-256color',
+})
+file('share/misc/terminfo.cdb', '644', '$outdir/terminfo.cdb')
+
+rule('genhash', 'TOOL_NBPERF=$outdir/host/nbperf $srcdir/lib/libterminfo/genhash $in >$out')
+build('genhash', '$outdir/hash.c', {
+ '$srcdir/lib/libterminfo/term.h',
+ '|', '$srcdir/lib/libterminfo/genhash', '$outdir/host/nbperf',
+})
+
+rule('genthash', 'TOOL_NBPERF=$outdir/host/nbperf $srcdir/lib/libterminfo/genthash $in >$out')
+build('genthash', '$outdir/termcap_hash.c', {
+ '$srcdir/lib/libterminfo/termcap_map.c',
+ '|', '$srcdir/lib/libterminfo/genthash', '$outdir/host/nbperf',
+})
+
+lib('libcurses.a', [[
+ lib/libcurses/(
+ acs.c addbytes.c addch.c addchnstr.c addnstr.c attributes.c
+ background.c bell.c border.c box.c chgat.c clear.c clearok.c
+ clrtobot.c clrtoeol.c color.c copywin.c cr_put.c
+ ctrace.c cur_hash.c curs_set.c
+ curses.c delch.c deleteln.c delwin.c echochar.c erase.c fileio.c
+ flushok.c fullname.c getch.c getstr.c getyx.c id_subwins.c idlok.c
+ idcok.c immedok.c inch.c inchstr.c initscr.c insch.c insdelln.c
+ insertln.c insstr.c instr.c keypad.c keyname.c leaveok.c line.c
+ meta.c mouse.c move.c
+ mvwin.c newwin.c nodelay.c notimeout.c overlay.c overwrite.c pause.c
+ printw.c putchar.c refresh.c resize.c ripoffline.c scanw.c screen.c
+ scroll.c scrollok.c setterm.c slk.c standout.c syncok.c timeout.c
+ toucholap.c touchwin.c tstp.c tty.c unctrl.c underscore.c version.c
+
+ cchar.c add_wch.c add_wchstr.c addwstr.c echo_wchar.c ins_wch.c
+ ins_wstr.c get_wch.c get_wstr.c in_wch.c in_wchstr.c
+ inwstr.c
+ )
+ libterminfo.a
+]])
+
+lib('libterminfo.a', [[
+ lib/libterminfo/(
+ term.c ti.c setupterm.c curterm.c tparm.c tputs.c
+ compile.c
+ termcap.c
+ )
+ compat/cdbr.c
+ compat/mi_vector_hash.c
+ $outdir/hash.c
+]])
+
+lib('libpanel.a', [[
+ lib/libpanel/(
+ _deck.c above.c below.c bottom.c del.c getuser.c hidden.c hide.c move.c
+ new.c replace.c setuser.c show.c top.c update.c window.c
+ )
+ libcurses.a.d
+]])
+
+exe('infocmp', [[usr.bin/infocmp/infocmp.c libterminfo.a]])
+file('bin/infocmp', '755', '$outdir/infocmp')
+exe('tabs', [[usr.bin/tabs/tabs.c libterminfo.a]])
+file('bin/tabs', '755', '$outdir/tabs')
+exe('tic', [[usr.bin/tic/tic.c compat/cdbw.c libterminfo.a]])
+file('bin/tic', '755', '$outdir/tic')
+exe('tput', [[usr.bin/tput/tput.c libterminfo.a]])
+file('bin/tput', '755', '$outdir/tput')
+exe('tset', [[usr.bin/tset/(map.c misc.c set.c term.c tset.c) libterminfo.a]])
+file('bin/tset', '755', '$outdir/tset')
+
+man{
+ 'usr.bin/infocmp/infocmp.1',
+ 'usr.bin/tabs/tabs.1',
+ 'usr.bin/tic/tic.1',
+ 'usr.bin/tput/tput.1',
+ 'usr.bin/tset/tset.1',
+}
+
+fetch 'git'