diff --git a/scripts/custom/__init__.py b/scripts/custom/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/scripts/custom/custom_generator.py b/scripts/custom/custom_generator.py deleted file mode 100755 index 5d377ec..0000000 --- a/scripts/custom/custom_generator.py +++ /dev/null @@ -1,143 +0,0 @@ -#! /usr/bin/env python2.6 -# -*- mode: python; coding: utf-8; -*- -# -# Codezero -- Virtualization microkernel for embedded systems. -# -# Copyright © 2009 B Labs Ltd -# -import os, sys, shelve, glob -from os.path import join - -PROJRELROOT = '../../' - -sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), PROJRELROOT))) -sys.path.append(os.path.abspath("../")) - -SCRIPTROOT = os.path.abspath(os.path.dirname(__file__)) - -from config.projpaths import * -from config.configuration import * -from config.lib import * - -class CustomContGenerator: - def __init__(self): - self.CONT_SRC_DIR = '' # Set when container is selected - - self.main_builder_name = 'build.py' - self.main_configurator_name = 'configure.py' - self.mailing_list_url = 'http://lists.l4dev.org/mailman/listinfo/codezero-devel' - - self.build_script_in = join(SCRIPTROOT, 'files/SConstruct.in') - self.build_readme_in = join(SCRIPTROOT, 'files/build.readme.in') - self.build_desc_in = join(SCRIPTROOT, 'files/container.desc.in') - self.linker_lds_in = join(SCRIPTROOT, 'files/linker.lds.in') - self.container_h_in = join(SCRIPTROOT, 'files/container.h.in') - - self.build_script_name = 'SConstruct' - self.build_readme_name = 'build.readme' - self.build_desc_name = '.container' - self.linker_lds_name = 'linker.lds' - self.container_h_name = 'container.h' - - self.container_h_out = None - self.build_script_out = None - self.build_readme_out = None - self.build_desc_out = None - self.src_main_out = None - - def create_custom_srctree(self, config, cont): - # First, create the base project directory and sources - shutil.copytree(join(PROJROOT, cont.src_path), self.CONT_SRC_DIR) - - def copy_custom_build_desc(self, config, cont): - id_header = '[Container ID]\n' - type_header = '\n[Container Type]\n' - name_header = '\n[Container Name]\n' - pager_lma_header = '\n[Container Pager LMA]\n' - pager_vma_header = '\n[Container Pager VMA]\n' - pager_virtmem_header = '\n[Container Virtmem Region %s]\n' - pager_physmem_header = '\n[Container Physmem Region %s]\n' - - with open(self.build_desc_out, 'w+') as fout: - fout.write(id_header) - fout.write('\t' + str(cont.id) + '\n') - fout.write(type_header) - fout.write('\t' + cont.type + '\n') - fout.write(name_header) - fout.write('\t' + cont.name + '\n') - fout.write(pager_lma_header) - fout.write('\t' + conv_hex(cont.pager_lma) + '\n') - fout.write(pager_vma_header) - fout.write('\t' + conv_hex(cont.pager_vma) + '\n') - for ireg in range(cont.virt_regions): - fout.write(pager_virtmem_header % ireg) - fout.write('\t' + cont.virtmem["START"][ireg] + ' - ' + cont.virtmem["END"][ireg] + '\n') - for ireg in range(cont.phys_regions): - fout.write(pager_physmem_header % ireg) - fout.write('\t' + cont.physmem["START"][ireg] + ' - ' + cont.physmem["END"][ireg] + '\n') - - def copy_custom_build_readme(self, config, cont): - with open(self.build_readme_in) as fin: - str = fin.read() - with open(self.build_readme_out, 'w+') as fout: - # Make any manipulations here - fout.write(str % (self.mailing_list_url, \ - cont.name, \ - self.build_desc_name, \ - self.main_builder_name, \ - self.main_configurator_name, \ - self.main_configurator_name)) - - def copy_custom_container_h(self, config, cont): - with open(self.container_h_in) as fin: - str = fin.read() - with open(self.container_h_out, 'w+') as fout: - # Make any manipulations here - fout.write(str % (cont.name, cont.id, cont.id)) - - def create_custom_sources(self, config, cont): - self.create_custom_srctree(config, cont) - self.copy_custom_build_readme(config, cont) - self.copy_custom_build_desc(config, cont) - self.generate_linker_script(config, cont) - self.copy_custom_container_h(config, cont) - - def update_configuration(self, config, cont): - self.copy_custom_build_desc(config, cont) - self.generate_linker_script(config, cont) - self.copy_custom_container_h(config, cont) - - def check_create_custom_sources(self, config): - for cont in config.containers: - if cont.type == "custom": - # Determine container directory name. - self.CONT_SRC_DIR = join(join(BUILDDIR, 'cont') + str(cont.id), cont.name) - self.build_readme_out = join(self.CONT_SRC_DIR, self.build_readme_name) - self.build_desc_out = join(self.CONT_SRC_DIR, self.build_desc_name) - self.linker_lds_out = join(join(self.CONT_SRC_DIR, 'include'), \ - self.linker_lds_name) - self.container_h_out = join(join(self.CONT_SRC_DIR, 'include'), \ - self.container_h_name) - - if not os.path.exists(self.CONT_SRC_DIR): - self.create_custom_sources(config, cont) - else: - # Don't create new sources but update configuration - self.update_configuration(config, cont) - - def generate_linker_script(self, config, cont): - with open(self.linker_lds_in) as fin: - str = fin.read() - with open(self.linker_lds_out, 'w+') as fout: - fout.write(str % (conv_hex(cont.pager_vma), \ - conv_hex(cont.pager_lma))) - - def custom_container_generate(self, config): - self.check_create_custom_sources(config) - -if __name__ == "__main__": - config = configuration_retrieve() - config.config_print() - custom_cont = CustomContGenerator() - custom_cont.custom_container_generate(config) - diff --git a/scripts/custom/files/SConstruct.in b/scripts/custom/files/SConstruct.in deleted file mode 100644 index e69de29..0000000 diff --git a/scripts/custom/files/build.readme.in b/scripts/custom/files/build.readme.in deleted file mode 100644 index daf5f1d..0000000 --- a/scripts/custom/files/build.readme.in +++ /dev/null @@ -1,112 +0,0 @@ - Codezero Buildsystem For This Container - - Autogenerated by the Build system - - -This is an autogenerated file that is meant to walk you through the build -process. It is meant to be the most simple to get on with, therefore if -you feel any complications, please reach us on our l4dev.org mailing list -on %s - -You have created a new container called `%s'. - -The parameters you have supplied are described in the "%s" file -placed at the top-level directory. Note, that this is only an informative -file for your reference, and it can be optionally removed. - - - 1. Directory Structure: - -1.1) Directory tree: -. -|-- SConstruct -|-- build.readme -|-- .container -|-- include -| `-- linker.lds.example -|-- main.c -`-- src - |-- test.c - -In the above directory tree: - -1.2) |-- SConstruct - -This is the top-level build file, that will build your project in its current -state. You may freely reorganize directories, but must reflect changes in this -file. For more, please see the SCons build tool at http://www.scons.org/ - -The build system will search for this file, and execute it by the: - -`scons' - -command at the root of the directory. You may issue the same command manually -for building and testing your build. If you choose to use another build tool -such as make, you may freely replace scons, and the build system will search -and call your custom build command. - -1.3) |--include - `--src - -These are the directories that include your header files and sources. You may -freely change and reorganize these, but make sure to have a valid build file -that reflects those changes at the top-level directory. - -1.4) |-- include - | `-- linker.lds.example - -This is an example linker script for your project. Using this as your default -linker script is often useful, since it has been autogenerated to contain all -the parameters you need for the memory regions of your application defined at -configuration time. You may freely replace it, but make sure to edit the -top-level build script accordingly. - - - 2. Build Process - -2.1) Build overview - -The complete Codezero system will be built from a top-level `%s' script by -that resides in the top-level directory of Codezero sources. - -The Codezero system build script will build this container at a certain stage -during the build, by referring to build script file named such as `SConstruct' -or `Makefile' that resides in this container's top-level directory. - -Once the executables are built, it will search for all files with a .elf -extension in any of the subdirectories, and recognize those as loadable -executables. There may be more than one of these files present after the build. - -In the future this behaviour may change such that the loadable executable files -are also specified in the configuration. - -Finally, executables of all containers will be picked up and built into the -final.elf file, which is a self-loading elf executable. - - - 3. Reconfiguring this container - -If you want to reconfigure the container with new parameters, you may do so by -executing the `%s' script at the top-level Codezero directory by: - -'./%s' - -This will populate only brand new container directories with new files. It will -update it's existing internal configuration for existing containers (such as -container memory regions) but it won't touch any files that exist under an -already-defined container. - -If you want to start from scratch, specify a new directory name, if you want -to reconfigure existing container parameters, run this on an existing directory, -and it will only update its internal records for this container, but not touch -the directory. - - - 4. Example source files - -Example source files populated by the configuration contain valid examples -of how the generic libl4 userspace library can be used. Each test contains a -valid example from the available API, and may be modified, changed and removed -freely. - - diff --git a/scripts/custom/files/container.desc.in b/scripts/custom/files/container.desc.in deleted file mode 100644 index 61346d9..0000000 --- a/scripts/custom/files/container.desc.in +++ /dev/null @@ -1,8 +0,0 @@ -[Container Name] - -[Container LMA] - -[Container VMA] - -[Container Type] - diff --git a/scripts/custom/files/container.h.in b/scripts/custom/files/container.h.in deleted file mode 100644 index 5015fd6..0000000 --- a/scripts/custom/files/container.h.in +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Autogenerated definitions for this container. - */ -#ifndef __CONTAINER_H__ -#define __CONTAINER_H__ - - -#define __CONTAINER_NAME__ "%s" -#define __CONTAINER_ID__ %d -#define __CONTAINER__ "cont%d" - - -#endif /* __CONTAINER_H__ */ diff --git a/scripts/custom/files/linker.lds.in b/scripts/custom/files/linker.lds.in deleted file mode 100644 index d9740ab..0000000 --- a/scripts/custom/files/linker.lds.in +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Example working linker script for this container. - * - * Copyright (C) 2009 B Labs Ltd. - */ - -vma_start = %s; -lma_start = %s; -offset = vma_start - lma_start; - -ENTRY(_start) - -SECTIONS -{ - . = vma_start; - .text : AT (ADDR(.text) - offset) { *(.text.head) *(.text) } - .rodata : AT (ADDR(.rodata) - offset) { *(.rodata) } - .rodata1 : AT (ADDR(.rodata1) - offset) { *(.rodata1) } - - . = ALIGN(4K); - .data : AT (ADDR(.data) - offset) { *(.data) } - .bss : AT (ADDR(.bss) - offset) - { - *(.bss) - . += 0x1000; - . = ALIGN(8); - __stack = .; - } -}