# architecture independent kernel codes.
#
# (C) 2011 KATO Takeshi
#


kern_sources = [
    'cpu_node.cc',
    'file.cc',
    'intr_ctl.cc',
    'kern_log.cc',
    'log_target.cc',
    'mempool.cc',
    'mempool_ctl.cc',
    'page.cc',
    'page_pool.cc',
    #'slab_allocate.cc',
    'spinlock.cc',
    'string.cc',
    'thread.cc',
    'thread_queue.cc',
]

kern_defines = []


setup_sources = [
    'log_target.cc',
    'string.cc',
]

setup_defines = []


def build(x):
	kern_defines.extend(x.env.common_defines)
	setup_defines.extend(x.env.common_defines)

	x.objects(
	    target   = 'kernel_objs',
	    source   = kern_sources,
	    defines  = kern_defines,
	    use      = 'KERNEL'
	)

	if x.env.boot_multiboot:
		x.objects(
		    target   = 'mb_libs',
		    source   = ['file.cc', 'log_target.cc', 'string.cc'],
		    use      = 'MB',
		)

	x.objects(
	    target   = 'setup_objs',
	    source   = setup_sources,
	    defines  = setup_defines,
	    use      = 'SETUP'
	)

