logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

gen.lua (4254B)


  1. cflags{
  2. '-Wall', '-Wpedantic',
  3. '-D _XOPEN_SOURCE=700',
  4. '-D TERMINFO_DB',
  5. ([[-D '_PATH_TERMINFO="%s/share/misc/terminfo"']]):format(config.prefix),
  6. '-I $srcdir/compat',
  7. '-I $srcdir/lib/libcurses',
  8. '-I $srcdir/lib/libterminfo',
  9. '-I $srcdir/lib/libform',
  10. '-I $srcdir/lib/libmenu',
  11. '-I $srcdir/lib/libpanel',
  12. '-I $outdir',
  13. }
  14. sub('tools.ninja', function()
  15. toolchain(config.host)
  16. cflags{
  17. '-I $srcdir/compat',
  18. '-I $srcdir/lib/libterminfo',
  19. }
  20. set('outdir', '$outdir/host')
  21. cc('compat/mi_vector_hash.c')
  22. build('cc', '$outdir/hash.c.o', '$outdir/../hash.c')
  23. exe('nbperf', [[
  24. usr.bin/nbperf/(
  25. nbperf.c
  26. nbperf-bdz.c nbperf-chm.c nbperf-chm3.c
  27. graph2.c graph3.c
  28. )
  29. compat/mi_vector_hash.c.o
  30. ]])
  31. exe('tic', [[
  32. usr.bin/tic/tic.c
  33. lib/libterminfo/compile.c
  34. compat/cdbw.c
  35. compat/mi_vector_hash.c.o
  36. hash.c.o
  37. ]])
  38. end)
  39. pkg.hdrs = {
  40. copy('$outdir/include', '$srcdir/lib/libcurses', {'curses.h', 'unctrl.h'}),
  41. copy('$outdir/include', '$srcdir/lib/libterminfo', {'term.h', 'termcap.h'}),
  42. copy('$outdir/include', '$srcdir/lib/libpanel', {'panel.h'}),
  43. install=true,
  44. }
  45. pkg.deps = {
  46. '$outdir/compiled_terms.c',
  47. '$outdir/termcap_hash.c',
  48. '$outdir/hash.c',
  49. }
  50. rule('tic', '$outdir/host/tic $ticflags -o $out $in $terms')
  51. build('tic', '$outdir/compiled_terms.c', {'$srcdir/share/terminfo/terminfo', '|', '$outdir/host/tic'}, {
  52. ticflags='-Sx',
  53. terms='dumb',
  54. })
  55. build('tic', '$outdir/terminfo.cdb', {'$srcdir/share/terminfo/terminfo', '|', '$outdir/host/tic'}, {
  56. ticflags='-x',
  57. })
  58. file('share/misc/terminfo.cdb', '644', '$outdir/terminfo.cdb')
  59. rule('genhash', 'TOOL_NBPERF=$outdir/host/nbperf $srcdir/lib/libterminfo/genhash $in >$out')
  60. build('genhash', '$outdir/hash.c', {
  61. '$srcdir/lib/libterminfo/term.h',
  62. '|', '$srcdir/lib/libterminfo/genhash', '$outdir/host/nbperf',
  63. })
  64. rule('genthash', 'TOOL_NBPERF=$outdir/host/nbperf $srcdir/lib/libterminfo/genthash $in >$out')
  65. build('genthash', '$outdir/termcap_hash.c', {
  66. '$srcdir/lib/libterminfo/termcap_map.c',
  67. '|', '$srcdir/lib/libterminfo/genthash', '$outdir/host/nbperf',
  68. })
  69. lib('libcurses.a', [[
  70. lib/libcurses/(
  71. acs.c addbytes.c addch.c addchnstr.c addnstr.c attributes.c
  72. background.c bell.c border.c box.c chgat.c clear.c clearok.c
  73. clrtobot.c clrtoeol.c color.c copywin.c cr_put.c
  74. ctrace.c cur_hash.c curs_set.c
  75. curses.c delch.c deleteln.c delwin.c echochar.c erase.c fileio.c
  76. flushok.c fullname.c getch.c getstr.c getyx.c id_subwins.c idlok.c
  77. idcok.c immedok.c inch.c inchstr.c initscr.c insch.c insdelln.c
  78. insertln.c insstr.c instr.c keypad.c keyname.c leaveok.c line.c
  79. meta.c mouse.c move.c
  80. mvwin.c newwin.c nodelay.c notimeout.c overlay.c overwrite.c pause.c
  81. printw.c putchar.c refresh.c resize.c ripoffline.c scanw.c screen.c
  82. scroll.c scrollok.c setterm.c slk.c standout.c syncok.c timeout.c
  83. toucholap.c touchwin.c tstp.c tty.c unctrl.c underscore.c version.c
  84. cchar.c add_wch.c add_wchstr.c addwstr.c echo_wchar.c ins_wch.c
  85. ins_wstr.c get_wch.c get_wstr.c in_wch.c in_wchstr.c
  86. inwstr.c
  87. )
  88. libterminfo.a
  89. ]])
  90. file('lib/libcurses.a', '644', '$outdir/libcurses.a')
  91. lib('libterminfo.a', [[
  92. lib/libterminfo/(
  93. term.c ti.c setupterm.c curterm.c tparm.c tputs.c
  94. compile.c
  95. termcap.c
  96. )
  97. compat/cdbr.c
  98. compat/mi_vector_hash.c
  99. $outdir/hash.c
  100. ]])
  101. file('lib/libterminfo.a', '644', '$outdir/libterminfo.a')
  102. lib('libpanel.a', [[
  103. lib/libpanel/(
  104. _deck.c above.c below.c bottom.c del.c getuser.c hidden.c hide.c move.c
  105. new.c replace.c setuser.c show.c top.c update.c window.c
  106. )
  107. libcurses.a.d
  108. ]])
  109. file('lib/libpanel.a', '644', '$outdir/libpanel.a')
  110. exe('infocmp', [[usr.bin/infocmp/infocmp.c libterminfo.a]])
  111. file('bin/infocmp', '755', '$outdir/infocmp')
  112. exe('tabs', [[usr.bin/tabs/tabs.c libterminfo.a]])
  113. file('bin/tabs', '755', '$outdir/tabs')
  114. exe('tic', [[usr.bin/tic/tic.c compat/cdbw.c libterminfo.a]])
  115. file('bin/tic', '755', '$outdir/tic')
  116. exe('tput', [[usr.bin/tput/tput.c libterminfo.a]])
  117. file('bin/tput', '755', '$outdir/tput')
  118. exe('tset', [[usr.bin/tset/(map.c misc.c set.c term.c tset.c) libterminfo.a]])
  119. file('bin/tset', '755', '$outdir/tset')
  120. sym('bin/reset', 'tset')
  121. man{
  122. 'usr.bin/infocmp/infocmp.1',
  123. 'usr.bin/tabs/tabs.1',
  124. 'usr.bin/tic/tic.1',
  125. 'usr.bin/tput/tput.1',
  126. 'usr.bin/tset/tset.1',
  127. }
  128. fetch 'git'