Port a legacy TASTE project to Kazoo

From TASTE
Jump to: navigation, search

Introduction

In 2020, the TASTE development and build environment was upgraded. TASTE is now based on a new tool called Kazoo, giving more flexibility to both TASTE developers and users.

Legacy systems have to be manually ported to Kazoo - the transition is very simple, and it is explained in this page. No modification of the models is required, the changes are limited to the folder structure and occasionally the setting of some build options.

Please check this page for reference about Kazoo file system: Understand the code generation strategy

Input Files

You need the following files from your legacy project:

  • InterfaceView.aadl
  • DeploymentView.aadl
  • Concurrency_Properties.aadl (if you have one)
  • All your data views (.asn / .acn files)

And the source code of all your TASTE functions. It is present in subfolders with the name of the functions.

Setup the new project

From a clean folder (containing no TASTE data files) run the following command:

  $ taste

You will be prompted for a project name - you may give the same name as the project you want to port. A subfolder will be created with this name.

It will open the graphical editor, but you can close it right away.

For example:

ClipCapIt-200715-164135.PNG

The following files have been generated:

ClipCapIt-200715-164251.PNG

Enter this folder and overwrite the files (except the Makefile) with the ones from your old project.

Then run:

  $ taste-update-data-view
  $ make skeletons

This will create a "work" folder, inside which there are subfolders for each function of the interface view. For example:

ClipCapIt-200715-164851.PNG


You must now replace the code with your own, in work/<function>/<language>/<src>

After that you should be ready to build the project by running "make" from the new project root.

Compilation options

You may need to edit the Makefile if you want to add compiler/linker flag per partition.

The syntax to add is:

 export <PartitionName>_USER_CFLAGS=...         # compiler flags
 export <PartitionName>_USER_LDFLAGS=..         # linker flags
 export <PartitionName>_EXTERNAL_SOURCE_PATH=   # Path to source code folder to compile with the system

If you do not specify a <PartitionName>, the flags will be applied to all partitions. The <PartitionName> is visible in the Deployment View.