# $Id: modules,v 1.112 2007/09/08 22:03:34 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
#                                                                            #
# Permission is hereby granted, free of charge, to any person obtaining a    #
# copy of this software and associated documentation files (the "Software"), #
# to deal in the Software without restriction, including without limitation  #
# the rights to use, copy, modify, merge, publish, distribute, distribute    #
# with modifications, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the  #
# following conditions:                                                      #
#                                                                            #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software.                        #
#                                                                            #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
# DEALINGS IN THE SOFTWARE.                                                  #
#                                                                            #
# Except as contained in this notice, the name(s) of the above copyright     #
# holders shall not be used in advertising or otherwise to promote the sale, #
# use or other dealings in this Software without prior written               #
# authorization.                                                             #
##############################################################################
#
# Author: Thomas E. Dickey	1996-on
#

@ base
# Library objects
hardscroll	lib		$(serial)
hashmap		lib		$(serial)	../include/term.h
lib_addch	lib		$(base)
lib_addstr	lib		$(base)
lib_beep	lib		$(base)		../include/term.h
lib_bkgd	lib		$(base)
lib_box 	lib		$(base)
lib_chgat	lib		$(base)
lib_clear	lib		$(base)
lib_clearok	lib		$(base)
lib_clrbot	lib		$(base)
lib_clreol	lib		$(base)
lib_color	lib		$(base)		../include/term.h
lib_colorset	lib		$(base)
lib_delch	lib		$(base)
lib_delwin	lib		$(base)
lib_echo	lib		$(base)
lib_endwin	lib		$(base)		../include/term.h
lib_erase	lib		$(base)
lib_flash	lib		$(base)		../include/term.h
lib_gen 	lib		.		../include/curses.h
lib_getch	lib		$(base)
lib_getstr	lib		$(base)		../include/term.h
lib_hline	lib		$(base)
lib_immedok	lib		$(base)
lib_inchstr	lib		$(base)
lib_initscr	lib		$(base)		$(INCDIR)/tic.h
lib_insch	lib		$(base)
lib_insdel	lib		$(base)
lib_insnstr	lib		$(base)
lib_instr	lib		$(base)
lib_isendwin	lib		$(base)
lib_leaveok	lib		$(base)
lib_mouse	lib		$(base)		../include/term.h
lib_move	lib		$(base)
lib_mvcur	lib		$(serial)	../include/term.h $(INCDIR)/tic.h
lib_mvwin	lib		$(base)
lib_newterm	lib		$(base)		../include/term.h
lib_newwin	lib		$(base)
lib_nl		lib		$(base)
lib_overlay	lib		$(base)
lib_pad 	lib		$(base)
lib_printw	lib		$(base)
lib_redrawln	lib		$(base)
lib_refresh	lib		$(base)
lib_restart	lib		$(base)		../include/term.h
lib_scanw	lib		$(base)
lib_screen	lib		$(base)		../include/term.h
lib_scroll	lib		$(base)
lib_scrollok	lib		$(base)
lib_scrreg	lib		$(base)
lib_set_term	lib		$(base)		../include/term.h
lib_slk 	lib		$(base)		../include/term.h
lib_slkatr_set	lib		$(base)
lib_slkatrof 	lib		$(base)
lib_slkatron 	lib		$(base)
lib_slkatrset 	lib		$(base)
lib_slkattr 	lib		$(base)
lib_slkclear 	lib		$(base)
lib_slkcolor 	lib		$(base)
lib_slkinit 	lib		$(base)
lib_slklab	lib		$(base)
lib_slkrefr	lib		$(base)		../include/term.h
lib_slkset	lib		$(base)
lib_slktouch	lib		$(base)
lib_touch	lib		$(base)
lib_tracedmp	lib		$(trace)
lib_tracemse	lib		$(trace)
lib_tstp	lib		$(serial)	$(srcdir)/SigAction.h
lib_ungetch	lib		$(base)
lib_vidattr	lib		$(serial)	../include/term.h
lib_vline	lib		$(base)
lib_wattroff	lib		$(base)
lib_wattron	lib		$(base)
lib_winch	lib		$(base)
lib_window	lib		$(base)
link_test 	lib		.		../include/curses.h
nc_panel	lib		$(base)
safe_sprintf	lib		$(base)
tty_update	lib		$(serial)	../include/term.h
varargs		lib		$(trace)

# Modules for porting
memmove		lib		$(base)
vsscanf 	lib		$(base)

# actually an extension, but with its own configure option (--disable-leaks)
lib_freeall	lib		$(base)

# XSI extensions to the base library (wide-character)
@ widechar
charable	lib		$(wide)
lib_add_wch	lib		$(wide)
lib_box_set	lib		$(wide)
lib_cchar	lib		$(wide)
lib_erasewchar	lib		$(wide)
lib_get_wch	lib		$(wide)
lib_get_wstr	lib		$(wide)
lib_hline_set	lib		$(wide)
lib_in_wch	lib		$(wide)
lib_in_wchnstr	lib		$(wide)
lib_ins_wch	lib		$(wide)
lib_inwstr	lib		$(wide)
lib_key_name	lib		$(wide)
lib_pecho_wchar	lib		$(wide)
lib_slk_wset	lib		$(wide)
lib_unget_wch	lib		$(wide)
lib_vid_attr	lib		$(wide)		../include/term.h
lib_vline_set	lib		$(wide)
lib_wacs	lib		$(wide)
lib_wunctrl	lib		$(wide)

# Extensions to the base library
@ ext_funcs
expanded	lib		.
legacy_coding	lib		$(base)		../include/term.h
lib_dft_fgbg	lib		$(base)		../include/term.h
lib_print	lib		$(tinfo)	../include/term.h
resizeterm	lib		$(base)		../include/term.h
trace_xnames	lib		$(trace)	../include/term.h $(INCDIR)/term_entry.h
use_screen	lib		$(tinfo)
use_window	lib		$(base)
wresize		lib		$(base)		../include/term.h

# Support for termcap (and tic, etc.), which can be a separate library
@ termlib
access		lib		$(tinfo)
add_tries	lib		$(tinfo)
alloc_ttype	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
codes		lib		.
comp_error	lib		$(tinfo)	$(INCDIR)/tic.h
db_iterator	lib		$(tinfo)	$(INCDIR)/tic.h
doalloc		lib		$(tinfo)
entries		lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
fallback	lib		.		../include/term.h $(INCDIR)/tic.h
free_ttype	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
getenv_num	lib		$(tinfo)
home_terminfo	lib		$(tinfo)
init_keytry	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h init_keytry.h
lib_acs 	lib		$(tinfo)	../include/term.h
lib_baudrate	lib		$(tinfo)	../include/term.h
lib_cur_term	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h
lib_data	lib		$(tinfo)
lib_has_cap	lib		$(tinfo)	../include/term.h
lib_kernel	lib		$(tinfo)	../include/term.h
lib_keyname	lib		.		../include/term.h
lib_longname	lib		$(tinfo)
lib_napms	lib		$(tinfo)
lib_options	lib		$(tinfo)	../include/term.h
lib_raw 	lib		$(tinfo)	../include/term.h
lib_setup	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h
lib_termcap	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h $(INCDIR)/capdefaults.c
lib_termname	lib		$(tinfo)	$(INCDIR)/tic.h
lib_tgoto	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
lib_ti		lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
lib_tparm	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
lib_tputs	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
lib_trace	lib		$(trace)	$(INCDIR)/tic.h
lib_traceatr	lib		$(trace)	../include/term.h
lib_tracebits	lib		$(trace)	../include/term.h
lib_tracechr	lib		$(trace)
lib_ttyflags	lib		$(tinfo)	../include/term.h
lib_twait	lib		$(serial)
name_match	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h
names		lib		.
read_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
read_termcap	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
setbuf		lib		$(tinfo)
strings		lib		$(tinfo)
trace_buf	lib		$(trace)
trace_tries	lib		$(trace)
tries		lib		$(base)
trim_sgr0	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
unctrl		lib		.
visbuf		lib		$(trace)	$(INCDIR)/tic.h

# Modules used only for tic, other programs using internal interfaces
@ ticlib
alloc_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
captoinfo	lib		$(tinfo)	$(INCDIR)/tic.h
comp_captab	lib		.		$(INCDIR)/tic.h ../include/term.h ../include/hashsize.h
comp_expand	lib		$(tinfo)	$(INCDIR)/tic.h
comp_hash	lib		$(tinfo)	../include/term.h $(INCDIR)/tic.h ../include/hashsize.h
comp_parse	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
comp_scan	lib		$(tinfo)	$(INCDIR)/tic.h
parse_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
write_entry	lib		$(tinfo)	../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h

# Extensions to the termlib library
@ ext_tinfo
define_key	lib		$(base)
hashed_db	lib		$(tinfo)
key_defined	lib		$(base)
keybound	lib		$(base)
keyok		lib		$(base)
version		lib		$(base)

# vile:makemode
