/ocarina-build

Build script (and more) for Ocarina

Primary LanguageShellMIT LicenseMIT

build_ocarina.sh License: MIT

About GitHub release

The build_ocarina.sh script is a helper program to get source code, compile, package and test Ocarina on all supported platforms. It relies on shell constructs to coordinate various activities:

  • fetch Ocarina source, with its runtimes PolyORB-HI/Ada and PolyORB-HI/C, and the AADLib library
  • compile Ocarina, and install it in a local directory
  • run Ocarina testsuites, and eventually collect coverage metrics
  • package Ocarina and its runtime
  • upload archives

Shellcheck

Installation

The preferred way to install this script is simply to clone the repository:

git clone https://github.com/OpenAADL/ocarina-build.git

This will ensure future update of the script in a seamless way.

Demo

The script aims at automating everything, starting with a fresh-install

gif

Details

The following

./build_ocarina.sh --scenario=fresh-install --prefix=$PWD/ocarina_install

builds a fresh copy of Ocarina and install it in $PWD/ocarina_install. This is equivalent to

./build_ocarina.sh --reset --update --configure --build --prefix=$PWD/ocarina_install

Multiple scenarios exist for nightly builds, CI testings and others.

Usage

Usage: ./build_ocarina.sh [switches]

General commands
 -h | --help        : print usage
 --version          : return script version, as a git hash
 --self-update      : update this script
 --install_crontab  : install crontab, then exit
 --purge            : delete source and build directories
 --verbose          : return full log of each action

Script commands
 -c | --configure   : configure Ocarina source directory
 -u | --update      : update Ocarina source directory
 -b | --build       : configure, build and install Ocarina
 -t | --run-test    : run Ocarina testsuite, plus runtimes and AADLib
 -p | --package     : package ocarina distribution as tarball
 --upload           : upload archives, see source code for details
 --distclean        : distclean Ocarina build directory
 --remove-prefix    : remove prefix prior to installation
 --release          : release Ocarina on GitHub
 --force            : force build

Update-time options, options to be passed along with -u
 -s | --reset       : reset source directory prior to update
 --remote=<URL>     : Set URL of the Ocarina git repository

Build-time options, options to be passed along with -b
 --prefix=<dir>     : install ocarina in <dir>
 --enable-doc       : enable building the documentation
 --enable-gcov      : enable coverage during ocarina build
 --enable-debug     : enable debug during ocarina build
 --enable-python    : enable Python bindings
 --build-info       : display information on build environment

Scenarios, specific combination of parameters
 --scenario=<name>  : run a specific scenario

 Valid names are coverage fresh-install nightly-build taste github
 See source code for details.

 Note: a default scenario can be passed using the OCARINA_SCENARIO
 environment variable

Authors

  • Jerome Hugues, maintainer
  • Bechir Zalila, original version