building_a_toolchain
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
building_a_toolchain [2016/04/21 16:32] – created mimbert | building_a_toolchain [2017/01/10 23:31] (current) – onicolas | ||
---|---|---|---|
Line 10: | Line 10: | ||
Thus, users, may pack whatever they want in their task file. | Thus, users, may pack whatever they want in their task file. | ||
- | That said, the cortexlab team provides a standard toolchain, which we call the //CorteXlab toolchain//, | + | == The CorteXlab toolchain == |
+ | |||
+ | That said, the cortexlab team provides a standard toolchain, which we call the //CorteXlab toolchain//, | ||
* [[http:// | * [[http:// | ||
Line 19: | Line 21: | ||
This toolchain is installed on the CorteXlab nodes as well as on the CorteXlab frontend '' | This toolchain is installed on the CorteXlab nodes as well as on the CorteXlab frontend '' | ||
+ | |||
+ | == cxlb-build-toolchain == | ||
The building of this toolchain is completely automated by the [[https:// | The building of this toolchain is completely automated by the [[https:// | ||
+ | |||
+ | The only limitation is that this script is only supported on recent (stable or testing) linux debian 64 bits. Running it in another environment may be possible with some limitations. For example, it's quite straightforward to run it under a recent ubuntu 64 bits, a few package names will need to be adapted. On the other hand, it won't work __at all__ on a 32 bits system or under windows or macos. | ||
+ | |||
+ | The main advantage of the [[https:// | ||
+ | |||
+ | * as it runs as a regular user, there is zero risk to damage anything in the system, you are sure that anything it does is restricted to the rights of the user running the script. The only thing that has to be run as root is a single script generated at the end, which is easy to review and audit. | ||
+ | * you are then sure that it does not conflict with anything in the regular directory tree structure of your system. In particular, it cannot conflict with the package manager of your distribution. | ||
+ | * everything from the toolchain is kept isolated in the toolchain install directory, instead of being scattered everywhere. | ||
+ | * it is possible to have several toolchains installed in parallel. You only need to re-run the root script to switch to a different toolchain, and reboot (or possibly only restart udev? that needs to be checked), and re-source the environment configuration script. | ||
+ | |||
+ | When building a toolchain on a user's workstation, | ||
+ | |||
+ | == Usage == | ||
This script has an integrated help. Try running: | This script has an integrated help. Try running: | ||
Line 26: | Line 43: | ||
$ cxlb-build-toolchain --help | $ cxlb-build-toolchain --help | ||
- | The only limitation is that this script | + | Basically, building a toolchain consists of the following steps: |
+ | |||
+ | * choosing what to compile/ | ||
+ | * install all prerequisites (debian | ||
+ | * decide a //build// directory, where the script will checkout/ | ||
+ | * optionnaly put in the //build// directory | ||
+ | * decide an //install// directory, where everything will be installed. | ||
+ | * run cxlb-build-toolchain and be patient. On a recent | ||
+ | |||
+ | Once finished, two scripts are generated in // | ||
+ | |||
+ | Also, once finished, two files are generated in // | ||
+ | |||
+ | * build.log contains the full log of the build | ||
+ | * build.bundle lists the exact versions of all which was compiled and installed in the toolchain. | ||
+ | |||
+ | == build.bundle == | ||
+ | |||
+ | You can build the __exact__ same toolchain as the one in CorteXlab using the bundle file. | ||
+ | |||
+ | The bundle file of the current CorteXlab toolchain can be found on '' |
building_a_toolchain.txt · Last modified: 2017/01/10 23:31 by onicolas