From aa0e5cb2552b8bd0b780b27005523bb0d11baceb Mon Sep 17 00:00:00 2001 From: Amit Mahajan Date: Fri, 20 Nov 2009 12:53:39 +0530 Subject: [PATCH] Adding missing config flags for toolchain, libdev, cputype in baremetal examples. --- conts/baremetal/baremetal0/SConstruct | 17 ++++++++-------- conts/baremetal/baremetal1/SConstruct | 11 ++++++----- conts/baremetal/baremetal2/SConstruct | 28 ++++++++++++++++----------- conts/baremetal/baremetal3/SConstruct | 10 ++++++---- 4 files changed, 38 insertions(+), 28 deletions(-) diff --git a/conts/baremetal/baremetal0/SConstruct b/conts/baremetal/baremetal0/SConstruct index d546ae1..25a11c7 100644 --- a/conts/baremetal/baremetal0/SConstruct +++ b/conts/baremetal/baremetal0/SConstruct @@ -14,10 +14,10 @@ sys.path.append(PROJRELROOT) from config.projpaths import * from config.configuration import * - config = configuration_retrieve() - +platform = config.platform arch = config.arch +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -36,13 +36,14 @@ LIBDEV_RELDIR = 'conts/libdev' LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', - # We don't use -nostdinc because sometimes we need standard headers, - # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], \ - LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"],\ +env = Environment(CC = config.user_toolchain + 'gcc', + # We don't use -nostdinc because sometimes we need standard headers, + # such as stdarg.h e.g. for variable args, as in printk(). + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], + LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"], ASFLAGS = ['-D__ASSEMBLY__'], \ PROGSUFFIX = '.elf', # The suffix to use for final executable\ ENV = {'PATH' : os.environ['PATH']}, # Inherit shell path\ diff --git a/conts/baremetal/baremetal1/SConstruct b/conts/baremetal/baremetal1/SConstruct index 159ed3a..d2ad646 100644 --- a/conts/baremetal/baremetal1/SConstruct +++ b/conts/baremetal/baremetal1/SConstruct @@ -14,10 +14,10 @@ sys.path.append(PROJRELROOT) from config.projpaths import * from config.configuration import * - config = configuration_retrieve() - +platform = config.platform arch = config.arch +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -36,17 +36,18 @@ LIBDEV_RELDIR = 'conts/libdev' LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() LIBMEM_RELDIR = 'conts/libmem' LIBMEM_DIR = join(PROJROOT, LIBMEM_RELDIR) LIBMEM_LIBPATH = join(BUILDDIR, LIBMEM_RELDIR) LIBMEM_INCLUDE = LIBMEM_DIR -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', +env = Environment(CC = config.user_toolchain + 'gcc', # We don't use -nostdinc because sometimes we need standard headers, # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], \ + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"],\ ASFLAGS = ['-D__ASSEMBLY__'], \ PROGSUFFIX = '.elf', # The suffix to use for final executable diff --git a/conts/baremetal/baremetal2/SConstruct b/conts/baremetal/baremetal2/SConstruct index 48674b4..7e5351c 100644 --- a/conts/baremetal/baremetal2/SConstruct +++ b/conts/baremetal/baremetal2/SConstruct @@ -14,10 +14,10 @@ sys.path.append(PROJRELROOT) from config.projpaths import * from config.configuration import * - config = configuration_retrieve() - +platform = config.platform arch = config.arch +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -32,6 +32,12 @@ LIBC_LIBPATH = join(BUILDDIR, LIBC_RELDIR) LIBC_INCLUDE = [join(LIBC_DIR, 'include'), \ join(LIBC_DIR, 'include/arch' + '/' + arch)] +LIBDEV_RELDIR = 'conts/libdev' +LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) +LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') +LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() + LIBL4THREAD_RELDIR = 'conts/libl4thread' LIBL4THREAD_DIR = join(PROJROOT, LIBL4THREAD_RELDIR) LIBL4THREAD_LIBPATH = join(BUILDDIR, LIBL4THREAD_RELDIR) @@ -42,21 +48,21 @@ LIBMEM_DIR = join(PROJROOT, LIBMEM_RELDIR) LIBMEM_LIBPATH = join(BUILDDIR, LIBMEM_RELDIR) LIBMEM_INCLUDE = LIBMEM_DIR -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', +env = Environment(CC = config.user_toolchain + 'gcc', # We don't use -nostdinc because sometimes we need standard headers, # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"], ASFLAGS = ['-D__ASSEMBLY__'], PROGSUFFIX = '.elf', # The suffix to use for final executable ENV = {'PATH' : os.environ['PATH']}, # Inherit shell path - LIBS = ['libl4thread', 'libl4', 'libmalloc', 'c-userspace', \ - 'gcc', 'c-userspace'], # libgcc.a - This is required for division routines. - CPPPATH = ["#include", KERNEL_INCLUDE, LIBL4_INCLUDE, LIBC_INCLUDE, \ - LIBL4THREAD_INCLUDE], - LIBPATH = [LIBL4_LIBPATH, LIBC_LIBPATH, LIBL4THREAD_LIBPATH, \ - LIBMEM_LIBPATH], + LIBS = ['libl4thread', 'libl4', 'libmalloc', 'libdev-userspace', \ + 'c-userspace', 'gcc', 'c-userspace'], # libgcc.a - This is required for division routines. + CPPPATH = ["#include", KERNEL_INCLUDE, LIBL4_INCLUDE, LIBDEV_INCLUDE, \ + LIBC_INCLUDE, LIBL4THREAD_INCLUDE], + LIBPATH = [LIBL4_LIBPATH, LIBDEV_LIBPATH, LIBC_LIBPATH, LIBL4THREAD_LIBPATH, \ + LIBMEM_LIBPATH], CPPFLAGS = '-include l4/config.h -include l4/macros.h -include l4/types.h') src = Glob('*.[cS]') diff --git a/conts/baremetal/baremetal3/SConstruct b/conts/baremetal/baremetal3/SConstruct index b695949..b103d6a 100644 --- a/conts/baremetal/baremetal3/SConstruct +++ b/conts/baremetal/baremetal3/SConstruct @@ -17,7 +17,8 @@ from config.lib import * config = configuration_retrieve() arch = config.arch - +platform = config.platform +gcc_cpu_flag = config.gcc_cpu_flag LIBL4_RELDIR = 'conts/libl4' KERNEL_INCLUDE = join(PROJROOT, 'include') @@ -36,12 +37,13 @@ LIBDEV_RELDIR = 'conts/libdev' LIBDEV_DIR = join(PROJROOT, LIBDEV_RELDIR) LIBDEV_LIBPATH = join(join(BUILDDIR, LIBDEV_RELDIR), 'sys-userspace') LIBDEV_INCLUDE = [join(LIBDEV_DIR, 'uart/include')] +LIBDEV_CCFLAGS = '-DPLATFORM_' + platform.upper() -env = Environment(CC = 'arm-none-linux-gnueabi-gcc', +env = Environment(CC = config.user_toolchain + 'gcc', # We don't use -nostdinc because sometimes we need standard headers, # such as stdarg.h e.g. for variable args, as in printk(). - CCFLAGS = ['-g', '-mcpu=arm926ej-s', '-nostdlib', '-ffreestanding', \ - '-std=gnu99', '-Wall', '-Werror'], \ + CCFLAGS = ['-g', '-nostdlib', '-ffreestanding', '-std=gnu99', '-Wall', \ + '-Werror', ('-mcpu=' + gcc_cpu_flag), LIBDEV_CCFLAGS], LINKFLAGS = ['-nostdlib', '-T' + "include/linker.lds", "-u_start"],\ ASFLAGS = ['-D__ASSEMBLY__'], \ PROGSUFFIX = '.elf', # The suffix to use for final executable\