mirror of
https://github.com/drasko/codezero.git
synced 2026-01-12 02:43:15 +01:00
Examples container type is designed to keep applications using codezero userspace libraries, which is aiming to help newcomers who would like to develop programs on top of the l4 microkernel. Now bare bone application is one of the examples. In the near future, lots of new programs will be introduced to show the various aspects of codezero eco-system.
113 lines
3.8 KiB
Plaintext
113 lines
3.8 KiB
Plaintext
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.
|
|
|
|
|