# $Id: modules,v 1.18 2010/01/23 16:36:23 tom Exp $
##############################################################################
# Copyright (c) 1998-2006,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	1996-on
#

@ base
# Library objects
m_attribs	lib		$(srcdir)	$(HEADER_DEPS)
m_cursor	lib		$(srcdir)	$(HEADER_DEPS)
m_driver	lib		$(srcdir)	$(HEADER_DEPS)
m_format	lib		$(srcdir)	$(HEADER_DEPS)
m_global	lib		$(srcdir)	$(HEADER_DEPS)
m_hook		lib		$(srcdir)	$(HEADER_DEPS)
m_item_cur	lib		$(srcdir)	$(HEADER_DEPS)
m_item_nam	lib		$(srcdir)	$(HEADER_DEPS)
m_item_new	lib		$(srcdir)	$(HEADER_DEPS)
m_item_opt	lib		$(srcdir)	$(HEADER_DEPS)
m_item_top	lib		$(srcdir)	$(HEADER_DEPS)
m_item_use	lib		$(srcdir)	$(HEADER_DEPS)
m_item_val	lib		$(srcdir)	$(HEADER_DEPS)
m_item_vis	lib		$(srcdir)	$(HEADER_DEPS)
m_items		lib		$(srcdir)	$(HEADER_DEPS)
m_new		lib		$(srcdir)	$(HEADER_DEPS)
m_opts		lib		$(srcdir)	$(HEADER_DEPS)
m_pad		lib		$(srcdir)	$(HEADER_DEPS)
m_pattern	lib		$(srcdir)	$(HEADER_DEPS)
m_post		lib		$(srcdir)	$(HEADER_DEPS)
m_req_name	lib		$(srcdir)	$(HEADER_DEPS)
m_scale		lib		$(srcdir)	$(HEADER_DEPS)
m_spacing	lib		$(srcdir)	$(HEADER_DEPS)
m_sub		lib		$(srcdir)	$(HEADER_DEPS)
m_trace		lib		$(srcdir)	$(HEADER_DEPS)
m_userptr	lib		$(srcdir)	$(HEADER_DEPS)
m_win		lib		$(srcdir)	$(HEADER_DEPS)

# vile:makemode
