export MakeInc_cmd=${SRCROOT}/makedefs/MakeInc.cmd
export MakeInc_def=${SRCROOT}/makedefs/MakeInc.def
export MakeInc_rule=${SRCROOT}/makedefs/MakeInc.rule
export MakeInc_dir=${SRCROOT}/makedefs/MakeInc.dir

#
# VM should be warning free
#
export device_vm.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export device_vm.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export memory_object.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export memory_object.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export task_working_set.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export task_working_set.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_debug.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_debug.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_external.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_external.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_fault.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_fault.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_init.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_init.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_kern.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_kern.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_map.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_map.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_object.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_object.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_pageout.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_pageout.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_resident.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_resident.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_shared_memory_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_shared_memory_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_user.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_user.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export bsd_vm.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export bsd_vm.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export default_pager.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export default_pager.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export dp_backing_store.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export dp_backing_store.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export dp_memory_object.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export dp_memory_object.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export default_pager_alerts_user.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export default_pager_alerts_user.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export default_pager_alerts_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export default_pager_alerts_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export memory_object_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export memory_object_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export memory_object_control_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export memory_object_control_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export memory_object_default_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export memory_object_default_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export memory_object_name_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export memory_object_name_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export upl_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export upl_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export vm_map_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export vm_map_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)

#
# ipc should be warning free
#
export ipc_entry.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_entry.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_hash.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_hash.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_init.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_init.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_kmsg.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_kmsg.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_mqueue.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_mqueue.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_notify.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_notify.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_object.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_object.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_port.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_port.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_pset.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_pset.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_right.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_right.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_space.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_space.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_splay.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_splay.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_table.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_table.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export mach_debug.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export mach_debug.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export mach_msg.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export mach_msg.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export mach_port.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export mach_port.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export mig_log.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export mig_log.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_clock.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_clock.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_host.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_host.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export ipc_kobject.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export ipc_kobject.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_mig.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_mig.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ipc_sync.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ipc_sync.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export ipc_tt.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export ipc_tt.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export sync_lock.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export sync_lock.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export sync_sema.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export sync_sema.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export mach_port_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export mach_port_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export lock_set_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export lock_set_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export semaphore_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export semaphore_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)

#
# kern should be warning free (almost)
#
# export debug.o_CFLAGS_RM=$(CWARNFLAGS_STD)
# export debug.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
# export printf.o_CFLAGS_RM=$(CWARNFLAGS_STD)
# export printf.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
# export xpr.o_CFLAGS_RM=$(CWARNFLAGS_STD)
# export xpr.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
# export mk_sp.o_CFLAGS_RM=$(CWARNFLAGS_STD)
# export mk_sp.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
# export syscall_emulation.o_CFLAGS_RM=$(CWARNFLAGS_STD)
# export syscall_emulation.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
# export bsd_kern.o_CFLAGS_RM=$(CWARNFLAGS_STD)
# export bsd_kern.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#
export ast.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ast.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export clock.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export clock.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export counters.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export counters.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export exception.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export exception.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export host.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export host.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export host_notify.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export host_notify.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export kalloc.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export kalloc.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export ledger.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export ledger.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export locks.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export locks.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export mach_clock.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export mach_clock.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export mach_factor.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export mach_factor.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export machine.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export machine.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export mk_timer.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export mk_timer.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export profile.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export profile.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export priority.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export priority.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export processor.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export processor.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export processor_data.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export processor_data.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export queue.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export queue.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export sched_prim.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export sched_prim.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export sscanf.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export sscanf.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export stack.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export stack.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export startup.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export startup.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export syscall_subr.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export syscall_subr.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export syscall_sw.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export syscall_sw.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export task.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export task.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export task_policy.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export task_policy.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export task_swap.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export task_swap.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export thread.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export thread.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export thread_act.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export thread_act.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export thread_call.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export thread_call.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export thread_policy.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export thread_policy.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export thread_swap.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export thread_swap.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export timer.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export timer.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export timer_call.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export timer_call.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export wait_queue.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export wait_queue.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export zalloc.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export zalloc.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export clock_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export clock_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export clock_priv_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export clock_priv_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export clock_reply_user.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export clock_reply_user.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export exc_user.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export exc_user.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export exc_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export exc_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export host_priv_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export host_priv_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export host_security_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export host_security_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export ledger_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export ledger_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export mach_host_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export mach_host_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export mach_notify_user.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export mach_notify_user.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export processor_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export processor_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export processor_set_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export processor_set_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
export prof_user.o_CFLAGS_RM=$(CWARNFLAGS_STD)
export prof_user.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export task_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export task_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)
#export thread_act_server.o_CFLAGS_RM=$(CWARNFLAGS_STD)
#export thread_act_server.o_CFLAGS_ADD=-Werror $(CWARNFLAGS_STD)

include $(MakeInc_cmd)
include $(MakeInc_def)

SETUP_SUBDIRS = \
	tools

COMP_SUBDIRS = 

INST_SUBDIRS = 

ifndef OSFMK_KERNEL_CONFIG
export OSFMK_KERNEL_CONFIG = $(KERNEL_CONFIG)
endif

export COMPOBJROOT=$(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/$(COMPONENT)

$(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/$(COMPONENT)/doconf:
	make build_setup 

$(COMPOBJROOT)/$(OSFMK_KERNEL_CONFIG)/Makefile:  $(SOURCE)/MASTER  \
	$(SOURCE)/MASTER.$(ARCH_CONFIG_LC) \
	$(SOURCE)/Makefile.template  \
	$(SOURCE)/Makefile.$(ARCH_CONFIG_LC)  \
	$(SOURCE)/files \
	$(SOURCE)/files.$(ARCH_CONFIG_LC) \
	$(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/$(COMPONENT)/doconf
	@echo "Running doconf for $(OSFMK_KERNEL_CONFIG)";
	(doconf_target=$(addsuffix /conf, $(TARGET)); \
	echo $${doconf_target};\
	$(MKDIR) $${doconf_target}; \
	cd $${doconf_target}; \
	rm -f $(notdir $?); \
	cp  $? $${doconf_target}; \
	$(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/$(COMPONENT)/doconf -c -cpu $(ARCH_CONFIG_LC) -d  $(TARGET)/$(OSFMK_KERNEL_CONFIG) $(OSFMK_KERNEL_CONFIG); \
	);

$(COMPOBJROOT)/$(OSFMK_KERNEL_CONFIG)/platforms.h: $(COMPOBJROOT)/$(OSFMK_KERNEL_CONFIG)/Makefile
	(cd $(COMPOBJROOT)/$(OSFMK_KERNEL_CONFIG);			\
	${RM} $@;						\
	${LN} cputypes.h $@;					\
	)

do_setup_conf: $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)/$(COMPONENT)/doconf \
		$(COMPOBJROOT)/$(OSFMK_KERNEL_CONFIG)/Makefile \
		$(COMPOBJROOT)/$(OSFMK_KERNEL_CONFIG)/platforms.h 

do_all: do_setup_conf
	@echo "[ $(SOURCE) ] Starting do_all  $(COMPONENT) $(OSFMK_KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)";	\
	next_source=$(subst conf/,,$(SOURCE));			\
	${MAKE} -C $(COMPOBJROOT)/$(OSFMK_KERNEL_CONFIG)	\
		MAKEFILES=$(TARGET)/$(OSFMK_KERNEL_CONFIG)/Makefile	\
		SOURCE=$${next_source}			\
		TARGET=$(TARGET)					\
		INCL_MAKEDEP=FALSE	\
		KERNEL_CONFIG=$(OSFMK_KERNEL_CONFIG)	\
		build_all;	\
	echo "[ $(SOURCE) ] Returning do_all $(COMPONENT) $(OSFMK_KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)";

do_build_all: do_all 

include $(MakeInc_rule)
include $(MakeInc_dir)

