logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: 241c6fb3da996cd75beb663ca71efa2c6c106211
parent f9608a055faac289b3ef4107aecf7fceb63e84a2
Author: Michael Forney <mforney@mforney.org>
Date:   Sun, 18 Feb 2018 11:34:55 -0800

ncurses: Build ticlib, generated structured source list

Diffstat:

Mninja.lua5+++++
Mpkg/ncurses/gen.lua25++++++++++++-------------
Mpkg/ncurses/gensources.awk23++++++++++++++++-------
Apkg/ncurses/sources.lua201+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/ncurses/sources.txt159-------------------------------------------------------------------------------
5 files changed, 234 insertions(+), 179 deletions(-)

diff --git a/ninja.lua b/ninja.lua @@ -151,6 +151,11 @@ function lines(file, raw) return collect(iterlines(file, raw)) end +function load(file) + table.insert(pkg.inputs.gen, '$dir/'..file) + return dofile(string.format('%s/%s', pkg.dir, file)) +end + -- -- base constructs -- diff --git a/pkg/ncurses/gen.lua b/pkg/ncurses/gen.lua @@ -112,25 +112,24 @@ pkg.deps = { '$outdir/termsort.c', } -lib('libncurses.a', lines('sources.txt')) +srcs = load('sources.lua') + +lib('libncurses.a', { + srcs.base, + srcs.widechar, + srcs.termlib, + srcs.ext_funcs, + srcs.ext_tinfo, +}) file('lib/libncurses.a', '644', '$outdir/libncurses.a') +lib('libtic.a', srcs.ticlib) + cc('progs/transform.c') exe('tic', [[ progs/(tic.c dump_entry.c tparm_type.c transform.c.o) - 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 - ) + libtic.a libncurses.a ]]) file('bin/tic', '755', '$outdir/tic') diff --git a/pkg/ncurses/gensources.awk b/pkg/ncurses/gensources.awk @@ -4,26 +4,35 @@ BEGIN { dirs["$(trace)"] = "ncurses/trace" dirs["$(tinfo)"] = "ncurses/tinfo" dirs["$(wide)"] = "ncurses/widechar" + dirs["$(win32con)"] = "ncurses/win32con" dirs["."] = "$outdir" skip["expanded"] = 1 skip["lib_gen"] = 1 skip["link_test"] = 1 - split(subsets, a, "+") - for (k in a) - sets[a[k]] = 1 + print "return {" } /^(#|$)/ { next } /^@/ { - set = $2 + if (open) + print "\t}," + else + open = 1 + print "\t" $2 "={" next } -set in sets { - if ($1 ~ /trace/ || $1 in skip) +{ + if ($1 in skip) next - print dirs[$3] "/" $1 ".c" + print "\t\t'" dirs[$3] "/" $1 ".c'," +} + +END { + if (open) + print "\t}," + print "}" } diff --git a/pkg/ncurses/sources.lua b/pkg/ncurses/sources.lua @@ -0,0 +1,201 @@ +-- 2,$<awk -f gensources.awk src/ncurses/modules +return { + base={ + 'ncurses/tty/hardscroll.c', + 'ncurses/tty/hashmap.c', + 'ncurses/base/lib_addch.c', + 'ncurses/base/lib_addstr.c', + 'ncurses/base/lib_beep.c', + 'ncurses/base/lib_bkgd.c', + 'ncurses/base/lib_box.c', + 'ncurses/base/lib_chgat.c', + 'ncurses/base/lib_clear.c', + 'ncurses/base/lib_clearok.c', + 'ncurses/base/lib_clrbot.c', + 'ncurses/base/lib_clreol.c', + 'ncurses/base/lib_color.c', + 'ncurses/base/lib_colorset.c', + 'ncurses/base/lib_delch.c', + 'ncurses/base/lib_delwin.c', + 'ncurses/base/lib_echo.c', + 'ncurses/base/lib_endwin.c', + 'ncurses/base/lib_erase.c', + 'ncurses/base/lib_flash.c', + 'ncurses/base/lib_getch.c', + 'ncurses/base/lib_getstr.c', + 'ncurses/base/lib_hline.c', + 'ncurses/base/lib_immedok.c', + 'ncurses/base/lib_inchstr.c', + 'ncurses/base/lib_initscr.c', + 'ncurses/base/lib_insch.c', + 'ncurses/base/lib_insdel.c', + 'ncurses/base/lib_insnstr.c', + 'ncurses/base/lib_instr.c', + 'ncurses/base/lib_isendwin.c', + 'ncurses/base/lib_leaveok.c', + 'ncurses/base/lib_mouse.c', + 'ncurses/base/lib_move.c', + 'ncurses/tty/lib_mvcur.c', + 'ncurses/base/lib_mvwin.c', + 'ncurses/base/lib_newterm.c', + 'ncurses/base/lib_newwin.c', + 'ncurses/base/lib_nl.c', + 'ncurses/base/lib_overlay.c', + 'ncurses/base/lib_pad.c', + 'ncurses/base/lib_printw.c', + 'ncurses/base/lib_redrawln.c', + 'ncurses/base/lib_refresh.c', + 'ncurses/base/lib_restart.c', + 'ncurses/base/lib_scanw.c', + 'ncurses/base/lib_screen.c', + 'ncurses/base/lib_scroll.c', + 'ncurses/base/lib_scrollok.c', + 'ncurses/base/lib_scrreg.c', + 'ncurses/base/lib_set_term.c', + 'ncurses/base/lib_slk.c', + 'ncurses/base/lib_slkatr_set.c', + 'ncurses/base/lib_slkatrof.c', + 'ncurses/base/lib_slkatron.c', + 'ncurses/base/lib_slkatrset.c', + 'ncurses/base/lib_slkattr.c', + 'ncurses/base/lib_slkclear.c', + 'ncurses/base/lib_slkcolor.c', + 'ncurses/base/lib_slkinit.c', + 'ncurses/base/lib_slklab.c', + 'ncurses/base/lib_slkrefr.c', + 'ncurses/base/lib_slkset.c', + 'ncurses/base/lib_slktouch.c', + 'ncurses/base/lib_touch.c', + 'ncurses/trace/lib_tracedmp.c', + 'ncurses/trace/lib_tracemse.c', + 'ncurses/tty/lib_tstp.c', + 'ncurses/base/lib_ungetch.c', + 'ncurses/tty/lib_vidattr.c', + 'ncurses/base/lib_vline.c', + 'ncurses/base/lib_wattroff.c', + 'ncurses/base/lib_wattron.c', + 'ncurses/base/lib_winch.c', + 'ncurses/base/lib_window.c', + 'ncurses/base/nc_panel.c', + 'ncurses/base/safe_sprintf.c', + 'ncurses/tty/tty_update.c', + 'ncurses/trace/varargs.c', + 'ncurses/base/vsscanf.c', + 'ncurses/base/lib_freeall.c', + }, + widechar={ + 'ncurses/widechar/charable.c', + 'ncurses/widechar/lib_add_wch.c', + 'ncurses/widechar/lib_box_set.c', + 'ncurses/widechar/lib_cchar.c', + 'ncurses/widechar/lib_erasewchar.c', + 'ncurses/widechar/lib_get_wch.c', + 'ncurses/widechar/lib_get_wstr.c', + 'ncurses/widechar/lib_hline_set.c', + 'ncurses/widechar/lib_in_wch.c', + 'ncurses/widechar/lib_in_wchnstr.c', + 'ncurses/widechar/lib_ins_wch.c', + 'ncurses/widechar/lib_inwstr.c', + 'ncurses/widechar/lib_key_name.c', + 'ncurses/widechar/lib_pecho_wchar.c', + 'ncurses/widechar/lib_slk_wset.c', + 'ncurses/widechar/lib_unget_wch.c', + 'ncurses/widechar/lib_vid_attr.c', + 'ncurses/widechar/lib_vline_set.c', + 'ncurses/widechar/lib_wacs.c', + 'ncurses/widechar/lib_wunctrl.c', + }, + ext_funcs={ + 'ncurses/base/legacy_coding.c', + 'ncurses/base/lib_dft_fgbg.c', + 'ncurses/tinfo/lib_print.c', + 'ncurses/base/new_pair.c', + 'ncurses/base/resizeterm.c', + 'ncurses/trace/trace_xnames.c', + 'ncurses/tinfo/use_screen.c', + 'ncurses/base/use_window.c', + 'ncurses/base/wresize.c', + }, + termlib={ + 'ncurses/tinfo/access.c', + 'ncurses/tinfo/add_tries.c', + 'ncurses/tinfo/alloc_ttype.c', + '$outdir/codes.c', + '$outdir/comp_captab.c', + 'ncurses/tinfo/comp_error.c', + 'ncurses/tinfo/comp_hash.c', + 'ncurses/tinfo/db_iterator.c', + 'ncurses/tinfo/doalloc.c', + 'ncurses/tinfo/entries.c', + '$outdir/fallback.c', + 'ncurses/tinfo/free_ttype.c', + 'ncurses/tinfo/getenv_num.c', + 'ncurses/tinfo/home_terminfo.c', + 'ncurses/tinfo/init_keytry.c', + 'ncurses/tinfo/lib_acs.c', + 'ncurses/tinfo/lib_baudrate.c', + 'ncurses/tinfo/lib_cur_term.c', + 'ncurses/tinfo/lib_data.c', + 'ncurses/tinfo/lib_has_cap.c', + 'ncurses/tinfo/lib_kernel.c', + '$outdir/lib_keyname.c', + 'ncurses/tinfo/lib_longname.c', + 'ncurses/tinfo/lib_napms.c', + 'ncurses/tinfo/lib_options.c', + 'ncurses/tinfo/lib_raw.c', + 'ncurses/tinfo/lib_setup.c', + 'ncurses/tinfo/lib_termcap.c', + 'ncurses/tinfo/lib_termname.c', + 'ncurses/tinfo/lib_tgoto.c', + 'ncurses/tinfo/lib_ti.c', + 'ncurses/tinfo/lib_tparm.c', + 'ncurses/tinfo/lib_tputs.c', + 'ncurses/trace/lib_trace.c', + 'ncurses/trace/lib_traceatr.c', + 'ncurses/trace/lib_tracebits.c', + 'ncurses/trace/lib_tracechr.c', + 'ncurses/tinfo/lib_ttyflags.c', + 'ncurses/tty/lib_twait.c', + 'ncurses/tinfo/name_match.c', + '$outdir/names.c', + 'ncurses/tinfo/obsolete.c', + 'ncurses/tinfo/read_entry.c', + 'ncurses/tinfo/read_termcap.c', + 'ncurses/tinfo/strings.c', + 'ncurses/trace/trace_buf.c', + 'ncurses/trace/trace_tries.c', + 'ncurses/base/tries.c', + 'ncurses/tinfo/trim_sgr0.c', + '$outdir/unctrl.c', + 'ncurses/trace/visbuf.c', + }, + ticlib={ + 'ncurses/tinfo/alloc_entry.c', + 'ncurses/tinfo/captoinfo.c', + 'ncurses/tinfo/comp_expand.c', + 'ncurses/tinfo/comp_parse.c', + 'ncurses/tinfo/comp_scan.c', + 'ncurses/tinfo/parse_entry.c', + 'ncurses/tinfo/write_entry.c', + }, + ext_tinfo={ + 'ncurses/base/define_key.c', + 'ncurses/tinfo/hashed_db.c', + 'ncurses/base/key_defined.c', + 'ncurses/base/keybound.c', + 'ncurses/base/keyok.c', + 'ncurses/base/version.c', + }, + port_drivers={ + 'ncurses/base/lib_driver.c', + }, + port_win32con={ + 'ncurses/win32con/gettimeofday.c', + 'ncurses/win32con/wcwidth.c', + 'ncurses/widechar/widechars.c', + 'ncurses/win32con/win_driver.c', + }, + port_tinfo={ + 'ncurses/tinfo/tinfo_driver.c', + }, +} diff --git a/pkg/ncurses/sources.txt b/pkg/ncurses/sources.txt @@ -1,159 +0,0 @@ -# 2,$<awk -f gensources.awk -v subsets=base+widechar+termlib+ext_funcs+ext_tinfo src/ncurses/modules -ncurses/tty/hardscroll.c -ncurses/tty/hashmap.c -ncurses/base/lib_addch.c -ncurses/base/lib_addstr.c -ncurses/base/lib_beep.c -ncurses/base/lib_bkgd.c -ncurses/base/lib_box.c -ncurses/base/lib_chgat.c -ncurses/base/lib_clear.c -ncurses/base/lib_clearok.c -ncurses/base/lib_clrbot.c -ncurses/base/lib_clreol.c -ncurses/base/lib_color.c -ncurses/base/lib_colorset.c -ncurses/base/lib_delch.c -ncurses/base/lib_delwin.c -ncurses/base/lib_echo.c -ncurses/base/lib_endwin.c -ncurses/base/lib_erase.c -ncurses/base/lib_flash.c -ncurses/base/lib_getch.c -ncurses/base/lib_getstr.c -ncurses/base/lib_hline.c -ncurses/base/lib_immedok.c -ncurses/base/lib_inchstr.c -ncurses/base/lib_initscr.c -ncurses/base/lib_insch.c -ncurses/base/lib_insdel.c -ncurses/base/lib_insnstr.c -ncurses/base/lib_instr.c -ncurses/base/lib_isendwin.c -ncurses/base/lib_leaveok.c -ncurses/base/lib_mouse.c -ncurses/base/lib_move.c -ncurses/tty/lib_mvcur.c -ncurses/base/lib_mvwin.c -ncurses/base/lib_newterm.c -ncurses/base/lib_newwin.c -ncurses/base/lib_nl.c -ncurses/base/lib_overlay.c -ncurses/base/lib_pad.c -ncurses/base/lib_printw.c -ncurses/base/lib_redrawln.c -ncurses/base/lib_refresh.c -ncurses/base/lib_restart.c -ncurses/base/lib_scanw.c -ncurses/base/lib_screen.c -ncurses/base/lib_scroll.c -ncurses/base/lib_scrollok.c -ncurses/base/lib_scrreg.c -ncurses/base/lib_set_term.c -ncurses/base/lib_slk.c -ncurses/base/lib_slkatr_set.c -ncurses/base/lib_slkatrof.c -ncurses/base/lib_slkatron.c -ncurses/base/lib_slkatrset.c -ncurses/base/lib_slkattr.c -ncurses/base/lib_slkclear.c -ncurses/base/lib_slkcolor.c -ncurses/base/lib_slkinit.c -ncurses/base/lib_slklab.c -ncurses/base/lib_slkrefr.c -ncurses/base/lib_slkset.c -ncurses/base/lib_slktouch.c -ncurses/base/lib_touch.c -ncurses/tty/lib_tstp.c -ncurses/base/lib_ungetch.c -ncurses/tty/lib_vidattr.c -ncurses/base/lib_vline.c -ncurses/base/lib_wattroff.c -ncurses/base/lib_wattron.c -ncurses/base/lib_winch.c -ncurses/base/lib_window.c -ncurses/base/nc_panel.c -ncurses/base/safe_sprintf.c -ncurses/tty/tty_update.c -ncurses/trace/varargs.c -ncurses/base/vsscanf.c -ncurses/base/lib_freeall.c -ncurses/widechar/charable.c -ncurses/widechar/lib_add_wch.c -ncurses/widechar/lib_box_set.c -ncurses/widechar/lib_cchar.c -ncurses/widechar/lib_erasewchar.c -ncurses/widechar/lib_get_wch.c -ncurses/widechar/lib_get_wstr.c -ncurses/widechar/lib_hline_set.c -ncurses/widechar/lib_in_wch.c -ncurses/widechar/lib_in_wchnstr.c -ncurses/widechar/lib_ins_wch.c -ncurses/widechar/lib_inwstr.c -ncurses/widechar/lib_key_name.c -ncurses/widechar/lib_pecho_wchar.c -ncurses/widechar/lib_slk_wset.c -ncurses/widechar/lib_unget_wch.c -ncurses/widechar/lib_vid_attr.c -ncurses/widechar/lib_vline_set.c -ncurses/widechar/lib_wacs.c -ncurses/widechar/lib_wunctrl.c -ncurses/base/legacy_coding.c -ncurses/base/lib_dft_fgbg.c -ncurses/tinfo/lib_print.c -ncurses/base/new_pair.c -ncurses/base/resizeterm.c -ncurses/tinfo/use_screen.c -ncurses/base/use_window.c -ncurses/base/wresize.c -ncurses/tinfo/access.c -ncurses/tinfo/add_tries.c -ncurses/tinfo/alloc_ttype.c -$outdir/codes.c -$outdir/comp_captab.c -ncurses/tinfo/comp_error.c -ncurses/tinfo/comp_hash.c -ncurses/tinfo/db_iterator.c -ncurses/tinfo/doalloc.c -ncurses/tinfo/entries.c -$outdir/fallback.c -ncurses/tinfo/free_ttype.c -ncurses/tinfo/getenv_num.c -ncurses/tinfo/home_terminfo.c -ncurses/tinfo/init_keytry.c -ncurses/tinfo/lib_acs.c -ncurses/tinfo/lib_baudrate.c -ncurses/tinfo/lib_cur_term.c -ncurses/tinfo/lib_data.c -ncurses/tinfo/lib_has_cap.c -ncurses/tinfo/lib_kernel.c -$outdir/lib_keyname.c -ncurses/tinfo/lib_longname.c -ncurses/tinfo/lib_napms.c -ncurses/tinfo/lib_options.c -ncurses/tinfo/lib_raw.c -ncurses/tinfo/lib_setup.c -ncurses/tinfo/lib_termcap.c -ncurses/tinfo/lib_termname.c -ncurses/tinfo/lib_tgoto.c -ncurses/tinfo/lib_ti.c -ncurses/tinfo/lib_tparm.c -ncurses/tinfo/lib_tputs.c -ncurses/tinfo/lib_ttyflags.c -ncurses/tty/lib_twait.c -ncurses/tinfo/name_match.c -$outdir/names.c -ncurses/tinfo/obsolete.c -ncurses/tinfo/read_entry.c -ncurses/tinfo/read_termcap.c -ncurses/tinfo/strings.c -ncurses/base/tries.c -ncurses/tinfo/trim_sgr0.c -$outdir/unctrl.c -ncurses/trace/visbuf.c -ncurses/base/define_key.c -ncurses/tinfo/hashed_db.c -ncurses/base/key_defined.c -ncurses/base/keybound.c -ncurses/base/keyok.c -ncurses/base/version.c