From 942865e6fc7f5cef4edc602c9f3c907198834f61 Mon Sep 17 00:00:00 2001 From: Bahadir Balban Date: Fri, 11 Sep 2009 13:55:46 +0300 Subject: [PATCH] Working compilation, but adding variant_dir = BUILD it doesn't work --- SConstruct | 61 ++++++++++++++++++----------------- src/api/SConscript | 10 ++++++ src/arch/arm/SConscript | 10 ++++++ src/arch/arm/v5/SConscript | 10 ++++++ src/drivers/SConscript | 17 ++++++++++ src/generic/SConscript | 10 ++++++ src/glue/arm/SConscript | 10 ++++++ src/lib/SConscript | 10 ++++++ src/platform/pb926/SConscript | 10 ++++++ 9 files changed, 118 insertions(+), 30 deletions(-) create mode 100644 src/api/SConscript create mode 100644 src/arch/arm/SConscript create mode 100644 src/arch/arm/v5/SConscript create mode 100644 src/drivers/SConscript create mode 100644 src/generic/SConscript create mode 100644 src/glue/arm/SConscript create mode 100644 src/lib/SConscript create mode 100644 src/platform/pb926/SConscript diff --git a/SConstruct b/SConstruct index 8daa0da..6233d66 100644 --- a/SConstruct +++ b/SConstruct @@ -38,36 +38,37 @@ sources = \ Glob('src/arch/' + arch + '/' + subarch +'/*.[cS]') + \ Glob('src/glue/' + arch + '/*.[cS]') + \ Glob('src/platform/' + platform + '/*.[cS]') +print sources ''' -drivers = SConscript('src/drivers/SConscript', duplicate = 0, \ - exports = {'symbols' : all_syms, 'env' : env}) -drivers = SConscript('src/generic/SConscript', duplicate = 0, \ - exports = {'symbols' : all_syms, 'env' : env}) -drivers = SConscript('src/arch/' + arch + '/SConscript', duplicate = 0, \ - exports = {'symbols' : all_syms, 'env' : env}) -drivers = SConscript('src/' + platform + '/SConscript', duplicate = 0, \ - exports = {'symbols' : all_syms, 'env' : env}) -drivers = SConscript('src/' + arch + '/' + subarch + '/SConscript', duplicate = 0, \ - exports = {'symbols' : all_syms, 'env' : env}) -drivers = SConscript('src/glue' + 'arch' + '/SConscript', duplicate = 0, \ - exports = {'symbols' : all_syms, 'env' : env}) -drivers = SConscript('src/platform' + platform + '/SConscript', duplicate = 0, \ - exports = {'symbols' : all_syms, 'env' : env}) + +driver_objs = SConscript('src/drivers/SConscript', duplicate = 0, \ + variant_dir = BUILD + exports = {'symbols' : all_syms, 'env' : env}) +generic_objs = SConscript('src/generic/SConscript', duplicate = 0, \ + variant_dir = BUILDDIR + "/src/generic", \ + exports = {'symbols' : all_syms, 'env' : env}) +arch_objs = SConscript('src/arch/' + arch + '/SConscript', duplicate = 0, \ + variant_dir = BUILDDIR + "/src/arch/" + arch, \ + exports = {'symbols' : all_syms, 'env' : env}) +plat_objs = SConscript('src/platform/' + platform + '/SConscript', duplicate = 0, \ + variant_dir = BUILDDIR + "/src/platform/" + platform, \ + exports = {'symbols' : all_syms, 'env' : env}) +subarch_objs = SConscript('src/arch/' + arch + '/' + subarch + '/SConscript', \ + variant_dir = BUILDDIR + '/src/arch/' + arch + '/' + subarch, \ + exports = {'symbols' : all_syms, 'env' : env}) +glue_objs = SConscript('src/glue/' + arch + '/SConscript', duplicate = 0, \ + variant_dir = BUILDDIR + '/src/glue/' + arch, \ + exports = {'symbols' : all_syms, 'env' : env}) +lib_objs = SConscript('src/lib/SConscript', duplicate = 0, \ + variant_dir = BUILDDIR + '/src/lib', \ + exports = {'symbols' : all_syms, 'env' : env}) +api_objs = SConscript('src/api/SConscript', duplicate = 0, \ + variant_dir = BUILDDIR + '/src/api', \ + exports = {'symbols' : all_syms, 'env' : env}) + +objects = driver_objs + generic_objs + arch_objs + plat_objs + subarch_objs + \ + glue_objs + lib_objs + api_objs + +kernel_elf = env.Program('kernel.elf', objects) - - - - - - -#for item in cf['DRIVER'] : -# path = 'src/drivers/' + item -# if not os.path.isdir(path): -# feature , device = item.split ( '/' ) -# raise ValueError, 'Driver ' + device + ' for ' + feature + ' not available.' -# sources += Glob(path + '/*.[cS]') - -objects = env.Object(sources + drivers) -#startAxf = env.Program('start.axf', objects) - diff --git a/src/api/SConscript b/src/api/SConscript new file mode 100644 index 0000000..fc9de94 --- /dev/null +++ b/src/api/SConscript @@ -0,0 +1,10 @@ +# Inherit global environment +Import('env') +Import('symbols') + +# The set of source files associated with this SConscript file. +src_local = ['kip.c', 'syscall.c', 'thread.c', 'ipc.c', 'space.c', 'mutex.c', 'capability.c'] + +obj = env.Object(src_local) + +Return('obj') diff --git a/src/arch/arm/SConscript b/src/arch/arm/SConscript new file mode 100644 index 0000000..57bc74f --- /dev/null +++ b/src/arch/arm/SConscript @@ -0,0 +1,10 @@ + + +# Inherit global environment +Import('env') + +# The set of source files associated with this SConscript file. +src_local = ['head.S', 'vectors.S', 'syscall.S', 'exception.c'] +obj = env.Object(src_local) + +Return('obj') diff --git a/src/arch/arm/v5/SConscript b/src/arch/arm/v5/SConscript new file mode 100644 index 0000000..4fd282a --- /dev/null +++ b/src/arch/arm/v5/SConscript @@ -0,0 +1,10 @@ + + +# Inherit global environment +Import('env') + +# The set of source files associated with this SConscript file. +src_local = ['mm.c', 'mmu_ops.S', 'mutex.S'] + +obj = env.Object(src_local) +Return('obj') diff --git a/src/drivers/SConscript b/src/drivers/SConscript new file mode 100644 index 0000000..a92579d --- /dev/null +++ b/src/drivers/SConscript @@ -0,0 +1,17 @@ +import glob + +Import("env", "symbols") + +src_local = [] + +for name, val in symbols: + if "CONFIG_DRIVER_UART_PL011" == name: + src_local.append(glob.glob("uart/pl011/*.c")) + if "CONFIG_DRIVER_TIMER_SP804" == name: + src_local.append(glob.glob("timer/sp804/*.c")) + if "CONFIG_DRIVER_IRQ_PL190" == name: + src_local.append(glob.glob("irq/pl190/*.c")) + +obj = env.Object(src_local) + +Return('obj') diff --git a/src/generic/SConscript b/src/generic/SConscript new file mode 100644 index 0000000..826baca --- /dev/null +++ b/src/generic/SConscript @@ -0,0 +1,10 @@ + + +# Inherit global environment +Import('env') + +# The set of source files associated with this SConscript file. +src_local = ['irq.c', 'scheduler.c', 'time.c', 'tcb.c', 'space.c', 'bootm.c', 'resource.c', 'container.c', 'capability.c'] + +obj = env.Object(src_local) +Return('obj') diff --git a/src/glue/arm/SConscript b/src/glue/arm/SConscript new file mode 100644 index 0000000..328e946 --- /dev/null +++ b/src/glue/arm/SConscript @@ -0,0 +1,10 @@ + + +# Inherit global environment +Import('env') + +# The set of source files associated with this SConscript file. +src_local = ['init.c', 'memory.c', 'systable.c', 'irq.c'] + +obj = env.Object(src_local) +Return('obj') diff --git a/src/lib/SConscript b/src/lib/SConscript new file mode 100644 index 0000000..728a769 --- /dev/null +++ b/src/lib/SConscript @@ -0,0 +1,10 @@ +# Inherit global environment +Import('env') +Import('symbols') + +# The set of source files associated with this SConscript file. +src_local = ['printk.c', 'putc.c', 'string.c', 'bit.c', 'wait.c', 'mutex.c', 'idpool.c', 'memcache.c'] + +obj = env.Object(src_local) + +Return('obj') diff --git a/src/platform/pb926/SConscript b/src/platform/pb926/SConscript new file mode 100644 index 0000000..cd867bf --- /dev/null +++ b/src/platform/pb926/SConscript @@ -0,0 +1,10 @@ + + +# Inherit global environment +Import('env') + +# The set of source files associated with this SConscript file. +src_local = ['printascii.S','platform.c', 'uart.c', 'timer.c', 'irq.c'] + +obj = env.Object(src_local) +Return('obj')