#
# Mach Operating System
# Copyright (c) 1992 Carnegie Mellon University
# All Rights Reserved.
# 
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright
# notice and this permission notice appear in all copies of the
# software, derivative works or modified versions, and any portions
# thereof, and that both notices appear in supporting documentation.
# 
# CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
# CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
# ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
# 
# Carnegie Mellon requests users of this software to return to
# 
#  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
#  School of Computer Science
#  Carnegie Mellon University
#  Pittsburgh PA 15213-3890
# 
# any improvements or extensions that they make and grant Carnegie Mellon
# the rights to redistribute these changes.
#  
#
# HISTORY
# $Log:	Makefile,v $
# Revision 2.5  92/02/15  19:42:37  rpd
# 	Moved include file installation to user/include/Makefile.
# 	[92/02/15            rpd]
# 
# Revision 2.4  92/01/24  20:44:53  rpd
# 	Added a dependency, so machid_types.defs installed before it is used.
# 	[92/01/24            rpd]
# 
# Revision 2.3  92/01/24  18:11:41  rpd
# 	Fixed to include Makefile-servers before Makefile-lib.
# 	[92/01/24            rpd]
# 
# Revision 2.2  92/01/22  23:10:21  rpd
# 	Created.
# 	[92/01/17            rpd]
# 

include ${MAKETOP}Makefile-common

# routines from machid.defs

MACHID_VAX_ROUTINES = vax_thread_state

MACHID_I386_ROUTINES = i386_thread_state

MACHID_PMAX_ROUTINES = mips_thread_state

MACHID_SUN3_ROUTINES = sun3_thread_state

MACHID_ROUTINES = mach_type mach_register mach_lookup mach_port \
	host_ports host_processor_sets host_tasks host_threads \
	host_processors processor_set_threads processor_set_tasks \
	task_threads host_basic_info host_sched_info host_load_info \
	processor_set_default host_kernel_version processor_basic_info \
	processor_set_basic_info processor_set_sched_info task_unix_info \
	task_basic_info task_thread_times_info thread_basic_info \
	thread_sched_info task_terminate task_suspend \
	task_resume thread_terminate thread_suspend thread_resume \
	thread_abort processor_set_destroy processor_start \
	processor_exit vm_region vm_read thread_priority \
	thread_max_priority task_priority processor_set_max_priority \
	port_names port_type port_get_refs port_get_receive_status \
	port_get_set_status processor_get_assignment \
	thread_get_assignment task_get_assignment \
	host_processor_set_priv host_processor_set_names \
	processor_set_create task_create thread_create processor_assign \
	thread_assign thread_assign_default task_assign \
	task_assign_default thread_policy processor_set_policy_enable \
	processor_set_policy_disable host_default_pager vm_statistics \
	host_kernel_task task_host thread_host processor_host \
	${MACHID_${TARGET_MACHINE}_ROUTINES}

# routines from machid_debug.defs

MACHID_DEBUG_ROUTINES = port_get_srights port_space_info \
	port_dnrequest_info host_stack_usage processor_set_stack_usage \
	host_zone_info port_kernel_object mach_kernel_object \
	vm_region_info vm_object_info vm_object_pages

# routines from machid_dpager.defs

MACHID_DPAGER_ROUTINES = default_pager_info default_pager_objects \
	default_pager_object_pages

# mig rules

MACHID_USER_SRCS = ${MACHID_ROUTINES/.*/&.c}
MACHID_SRCS = machid.h ${MACHID_USER_SRCS} machid_server.c

${MACHID_SRCS} : machid.defs
	${MIG} ${MIGFLAGS} -i ./ -user '$${MACHID_USER_SRCS}' -server machid_server.c machid.defs

MACHID_DEBUG_USER_SRCS = ${MACHID_DEBUG_ROUTINES/.*/&.c}
MACHID_DEBUG_SRCS = machid_debug.h ${MACHID_DEBUG_USER_SRCS} machid_debug_server.c

${MACHID_DEBUG_SRCS} : machid_debug.defs
	${MIG} ${MIGFLAGS} -i ./ -user '$${MACHID_DEBUG_USER_SRCS}' -server machid_debug_server.c machid_debug.defs

MACHID_DPAGER_USER_SRCS = ${MACHID_DPAGER_ROUTINES/.*/&.c}
MACHID_DPAGER_SRCS = machid_dpager.h ${MACHID_DPAGER_USER_SRCS} machid_dpager_server.c

${MACHID_DPAGER_SRCS} : machid_dpager.defs
	${MIG} ${MIGFLAGS} -i ./ -user '$${MACHID_DPAGER_USER_SRCS}' -server machid_dpager_server.c machid_dpager.defs

# use Makefile-lib for most of the rules

LIBRARY = libmachid.a

OBJECTS = machid_lib.o machid_vmstuff.o \
	machid_server.o ${MACHID_ROUTINES/.*/&.o} \
	machid_debug_server.o ${MACHID_DEBUG_ROUTINES/.*/&.o} \
	machid_dpager_server.o ${MACHID_DPAGER_ROUTINES/.*/&.o}

include ${MAKETOP}Makefile-lib
-include Makedep
