# $Id: modules,v 1.17 2010/01/23 16:26:37 tom Exp $
##############################################################################
# Copyright (c) 1998-2009,2010 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	1995-on
#    and: Juergen Pfeifer       2008
#

@ base
# Library objects
f_trace		lib		$(srcdir)	$(HEADER_DEPS)
fld_arg		lib		$(srcdir)	$(HEADER_DEPS)
fld_attr	lib		$(srcdir)	$(HEADER_DEPS)
fld_current	lib		$(srcdir)	$(HEADER_DEPS)
fld_def		lib		$(srcdir)	$(HEADER_DEPS)
fld_dup		lib		$(srcdir)	$(HEADER_DEPS)
fld_ftchoice	lib		$(srcdir)	$(HEADER_DEPS)
fld_ftlink	lib		$(srcdir)	$(HEADER_DEPS)
fld_info	lib		$(srcdir)	$(HEADER_DEPS)
fld_just	lib		$(srcdir)	$(HEADER_DEPS)
fld_link	lib		$(srcdir)	$(HEADER_DEPS)
fld_max		lib		$(srcdir)	$(HEADER_DEPS)
fld_move	lib		$(srcdir)	$(HEADER_DEPS)
fld_newftyp	lib		$(srcdir)	$(HEADER_DEPS)
fld_opts	lib		$(srcdir)	$(HEADER_DEPS)
fld_pad		lib		$(srcdir)	$(HEADER_DEPS)
fld_page	lib		$(srcdir)	$(HEADER_DEPS)
fld_stat	lib		$(srcdir)	$(HEADER_DEPS)
fld_type	lib		$(srcdir)	$(HEADER_DEPS)
fld_user	lib		$(srcdir)	$(HEADER_DEPS)
frm_cursor	lib		$(srcdir)	$(HEADER_DEPS)
frm_data	lib		$(srcdir)	$(HEADER_DEPS)
frm_def		lib		$(srcdir)	$(HEADER_DEPS)
frm_driver	lib		$(srcdir)	$(HEADER_DEPS)
frm_hook	lib		$(srcdir)	$(HEADER_DEPS)
frm_opts	lib		$(srcdir)	$(HEADER_DEPS)
frm_page	lib		$(srcdir)	$(HEADER_DEPS)
frm_post	lib		$(srcdir)	$(HEADER_DEPS)
frm_req_name	lib		$(srcdir)	$(HEADER_DEPS)
frm_scale	lib		$(srcdir)	$(HEADER_DEPS)
frm_sub		lib		$(srcdir)	$(HEADER_DEPS)
frm_user	lib		$(srcdir)	$(HEADER_DEPS)
frm_win		lib		$(srcdir)	$(HEADER_DEPS)
fty_alnum	lib		$(srcdir)	$(HEADER_DEPS)
fty_alpha	lib		$(srcdir)	$(HEADER_DEPS)
fty_enum	lib		$(srcdir)	$(HEADER_DEPS)
fty_generic	lib		$(srcdir)	$(HEADER_DEPS)
fty_int		lib		$(srcdir)	$(HEADER_DEPS)
fty_ipv4	lib		$(srcdir)	$(HEADER_DEPS)
fty_num		lib		$(srcdir)	$(HEADER_DEPS)
fty_regex	lib		$(srcdir)	$(HEADER_DEPS)

# vile:makemode
