# $Id: modules,v 1.19 2020/02/02 23:34:34 tom Exp $
##############################################################################
# Copyright 2020 Thomas E. Dickey                                            #
# Copyright 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
