Commit 618d7d8a authored by julien.delange's avatar julien.delange Committed by yoogx

import polyorb-hi-ada, polyorb-hi-c and ocarina



git-svn-id: https://tecsw.estec.esa.int/svn/taste/trunk/po-hi-ada@457 129961e7-ef38-4bb5-a8f7-c9a525a55882
parent ecf8c494
Jerome Hugues <jerome.hugues@enst.fr>
Stephane Lanarre <stephane.lanarre@enst.fr>
Laurent Pautet <laurent.pautet@enst.fr>
Bechir Zalila <bechir.zalila@enst.fr>
This diff is collapsed.
This diff is collapsed.
Quick installation instructions for PolyORB-HI:
===============================================
-- $Id: INSTALL 6832 2009-07-21 09:55:53Z hugues $
Please refer to the PolyORB High Intergrity user's guide for more
detailed installation instructions.
BUILD REQUIREMENTS:
===================
- GCC 4.3.0 (from the FSF) or GNAT GPL 2008 or later
(http://libre.adacore.com/)
- The latest snapshot of the Ocarina AADL tool suite
(http://ocarina.enst.fr/snapshots/).
Optionally, you can install :
- GNATforLEON (for the LEON_ORK platform),
- GNAT Pro 6.2.1 or later (for the LEON_GNAT platform)
BUILD AND INSTALLATION INSTRUCTIONS:
====================================
- Install GNAT and Ocarina as specified by their respective
documentations and make sure their 'bin' installation directories
is located at the top of your PATH environment variable.
- Issue 'source env' from the main PolyORB-HI directory to update
necessary environment variables.
- Issue ./configure
- Issue make && make install
To build the examples, and after installing PolyORB-HI, issue:
$> make examples
The generated code and the compiled nodes for each example are located
in examples/example_name/<main_aadl_system_name>
AUTOMAKE_OPTIONS = no-dependencies
ACLOCAL_AMFLAGS = -I support
CLEANFILES = config-stamp
SUBDIRS = support tools doc src share
DIST_SUBDIRS = $(SUBDIRS) examples
# Force the installation before running the testsuite
examples:: install
$(MAKE) -C examples build-all
check-local: run-examples
run-examples:: examples
$(MAKE) -C examples check-all
clean-examples::
$(MAKE) -C examples clean
distclean-examples::
$(MAKE) -C examples distclean
po_hi_doc_dir=${shell $(CYGPATH_U) '$(OCARINA_PREFIX)/share/doc/ocarina'}
install-data-local:
$(MAKE) -C examples DESTDIR="$(DESTDIR)" install
$(INSTALL) -d $(DESTDIR)$(po_hi_doc_dir)
$(INSTALL_DATA) $(srcdir)/ChangeLog $(DESTDIR)$(po_hi_doc_dir)/ChangeLog_polyorb_hi_ada
uninstall-local:
$(MAKE) -C examples DESTDIR="$(DESTDIR)" uninstall
rm -f $(DESTDIR)$(po_hi_doc_dir)/ChangeLog_polyorb_hi_ada
debug-makefile:
@echo "GNATMAKE = $(GNATMAKE)"
@echo "GNATMAKE_FOR_LEON = $(GNATMAKE_FOR_LEON)"
@echo "GNATMAKE_FOR_ERC32 = $(GNATMAKE_FOR_ERC32)"
$(MAKE) -C examples debug-makefile
New Features of PolyORB-HI:
v1.1 (2008-MM-DD): in addition to v1.0:
- Message PDU maximal size is deduced automatically from each
node data types (change 5386).
- The transport high level layer is now generated
automatically for each node (change 5385).
- New package hierarchy: PolyORB_HI is the root of all
non-generated services. PolyORB_HI_Generated is the root of
all generated services (change 5381 and 5382)
- Added support for AADL "timed" threads: periodic threads
that are also able to respond sporadically to external events
(changes 5365, 5366, 5367, 5368).
- Support of AADL threads that are connected with delayed
connexions (local case only) (changes 5340 and 5358)
v1.0 (2007-10-01): in addition to v0.9:
- New example, mode_switch to illustrate the thread mode switch
(change 5280).
- New example, flight_mgmt to illustrate the new communication
subsystem (change 5275).
- New communication subsystem based on the AADL standard
requirements. User code is able now to manipulate thread
interfaces through several runtime routines. These routines are
provided by the 'PolyORB_HI.Thread_Interrogators' generic which is
instantiated once for each thread (changes 5261-5274).
- New demo from SEI CMU, SunSeeker, that demonstrates how to build
a control system using AADL.
- New demo from IST-ASSERT, MPC, that demonstrates how to build a
replicated system with multiple instantiations of the same threads
on different nodes
- New demo to test the import of C functions, import
- PolyORB-HI now uses autoconf/automake
v0.9 (2007-03-07): in addition to v0.8:
- Renamed project to PolyORB-HI
- Split restriction configuration files to support more
restrictions for GNAT for HI Systems
- Added support for "pragma Priority" for protected objects
generated by Ocarina
- All examples are now running, tested on both native and LEON
targets
- Addition of the SOIF/MTS low level transport
- Simplify configuration by using ADA_PROJECT_PATH variable
v0.8 (2006-10-25): in addition to v0.7:
- Petri net model generation and graphical output from AADL models
are now integrated,
- the D3.1.3-1 Toy Example can now be fully generated using
Ocarina,
- updating AADL-to-code transformation rules,
- now automatically launches tsim when the compilation is
complete, and begins the execution of the compiled node
v0.7 (2006-09-29): in addition to v0.6:
- document the API of PolyORB HI,
- many additions to the POlyORB HI user guide,
- now the 'some_types' example is fully generated by Ocarina,
- added toy example from D3.1.3-1, tuned for Ocarina,
- provided a local version of AADL models for ping, for test with
LEON targets,
- added many new features in generate_ada.sh script to compile,
check and run each generated nodes,
- default target for makefile is now context sensitive and either
process the AADL scenario file, or build the application node,
- added support for schedulability analysis from AADL models using
Cheddar, see the RMA examples for more details,
- packaging now includes a binary version of ocarina, and a
command line tool based on cheddar to test for schedulability
v0.6 (2006-09-18): in addition to v0.5:
- added more debug information,
- added "erc32" rule to build with GNAT GAP 2006 for ERC32,
- added coding guidelines to the OPM,
- added release and debug build modes,
- added generic packages to ease code generation from Ocarina,
- corrected AADL 'ping' example for direct code generation from
Ocarina,
- now the 'ping' example is fully generated by Ocarina,
- added the 'producer_consumer' by M. Heitz,
v0.5 (2006-08-02): in addition to v0.4:
- updated all headers to match current licence,
- clean up in the tree superstructure.
v0.4 (2006-08-02): in addition to v0.3:
- remove most occurrences of slices,
- usual code reformatting, update, etc,
- addition of a documentation.
v0.3 (2006-08-01): in addition to v0.2:
- new "check" rule for makefiles, allow to check for all rules
defined in par 7.1 of D3.3.1-2/D3.3.1-2 deliverable,
- provide a low layer wrapper for transport mechanism, allowing
for multi-platform (sockets on native ones, empty on LEON for
now),
- added support to build with "GNAT for Leon",
- added a local test that does not depend on transport lower
layer, works with "GNAT for Leon".
v0.2 (2006-07-28): in addition to v0.1:
- include code reformatting, cleaning and documentation,
- support for more restrictions (see src/gnat.adc),
- new some_types example.
v0.1 (2006-07-26): initial prototype of PolyORB HI with
-distribution features. This initial release illustrates
deployment features with a simple ping example.
-= PolyORB HI (c) ENST 2006 - 2007 =-
-- $Id: README 5244 2007-05-29 13:42:37Z zalila $
Here is a short description of the distribution:
* doc/: documentation,
* examples/: set of examples to test PolyORB HI
* share/: common files
* src/: core of PolyORB HI,
* ChangeLog: release information,
* COPYING: GPLv2 licence document,
* env: environment variables to be set to use PolyORB HI
* README: short description of the distribution.
* NEWS: The new added features
* INSTALL: Installation instructions
For quick build instructions, please refer to the INSTALL file
For more details on this distribution, please refer to doc/polyorb-hi_ug.pdf.
AC_PREREQ(2.57)
AC_INIT(PolyORB-HI/Ada, 1.1w, polyorb-hi-devel@listes.enst.fr)
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(support)
##########################################
# Initialization.
##########################################
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE([1.9 tar-pax] foreign)
##########################################
# Check fo various programs.
##########################################
AC_CHECK_PROG(MV, mv, mv)
AC_CHECK_PROG(RM, rm, rm)
AC_CHECK_PROG(CP, cp, cp)
AC_CHECK_PROG(GREP, grep, grep)
AC_CHECK_PROG(CHMOD, chmod, chmod)
AC_CHECK_PROG(TEX, tex, tex)
AC_CHECK_PROG(BIBTEX, bibtex, bibtex)
AC_PROG_RANLIB
AC_EXEEXT
##########################################
# Check for GNU Make
##########################################
AM_GNU_MAKE
##########################################
# Check for various GNAT installations
##########################################
# The user must have at least an operation native GNAT Ada compiler
AM_PROG_WORKING_ADA
AM_PROG_GNATMAKE
AM_PROG_WORKING_ADA
AC_CHECK_PROG(GNATCLEAN, gnatclean, gnatclean)
# Chech for GNAT for LEON and GNAT for ERC32. Since they are two
# different targets, we cannot use the configure --target flag that
# enable to specify a unique target platform. We cannot use
# AM_CROSS_PROG_GNATMAKE either fro the same reasons.
TAB=" "
AC_CHECK_PROG(GNATMAKE_FOR_LEON, sparc-elf-gnatmake, sparc-elf-gnatmake)
AC_CHECK_PROG(GNATCLEAN_FOR_LEON, sparc-elf-gnatclean, sparc-elf-gnatclean)
AC_CHECK_PROG(TSIM_FOR_LEON, tsim-leon, tsim-leon)
AC_CHECK_PROG(GNATMAKE_FOR_LEON_GNAT, leon-elf-gnatmake, leon-elf-gnatmake)
AC_CHECK_PROG(GNATCLEAN_FOR_LEON_GNAT, leon-elf-gnatclean, leon-elf-gnatclean)
AC_SUBST(GNATMAKE_FOR_LEON)
AC_SUBST(GNATCLEAN_FOR_LEON)
AC_SUBST(TSIM_FOR_LEON)
AC_SUBST(GNATMAKE_FOR_LEON_GNAT)
AC_SUBST(GNATCLEAN_FOR_LEON_GNAT)
AM_CONDITIONAL(HAS_GNATMAKE_FOR_LEON, [test ! "x$GNATMAKE_FOR_LEON" = "x"])
AM_CONDITIONAL(HAS_TSIM_FOR_LEON, [test ! "x$TSIM_FOR_LEON" = "x"])
AM_CONDITIONAL(HAS_GNATMAKE_FOR_LEON_GNAT, [test ! "x$GNATMAKE_FOR_LEON_GNAT" = "x"])
if test "x$GNATMAKE_FOR_LEON" = "x"; then
AC_MSG_WARN([
${TAB}${TAB}${TAB} GNAT for LEON target has not been found.
${TAB}${TAB}${TAB} All examples using this platform will
${TAB}${TAB}${TAB} be disabled.])
fi
if test "x$GNATMAKE_FOR_LEON_GNAT" = "x"; then
AC_MSG_WARN([
${TAB}${TAB}${TAB} GNATPRO for LEON target has not been found.
${TAB}${TAB}${TAB} All examples using this platform will
${TAB}${TAB}${TAB} be disabled.])
fi
AC_CHECK_PROG(GNATMAKE_FOR_ERC32, erc32-elf-gnatmake, erc32-elf-gnatmake)
AC_CHECK_PROG(GNATCLEAN_FOR_ERC32, erc32-elf-gnatclean, erc32-elf-gnatclean)
AC_CHECK_PROG(TSIM_FOR_ERC32, tsim-erc32, tsim-erc32)
AC_SUBST(GNATMAKE_FOR_ERC32)
AC_SUBST(GNATCLEAN_FOR_ERC32)
AC_SUBST(TSIM_FOR_ERC32)
AM_CONDITIONAL(HAS_GNATMAKE_FOR_ERC32, [test ! "x$GNATMAKE_FOR_ERC32" = "x"])
AM_CONDITIONAL(HAS_TSIM_FOR_ERC32, [test ! "x$TSIM_FOR_ERC32" = "x"])
if test "x$GNATMAKE_FOR_ERC32" = "x"; then
AC_MSG_WARN([
${TAB}${TAB}${TAB} GNAT for ERC32 target has not been found.
${TAB}${TAB}${TAB} All examples using this platform will
${TAB}${TAB}${TAB} be disabled.])
fi
AC_CHECK_PROG(GNATMAKE_FOR_MARTE, mgnatmake, mgnatmake)
AC_SUBST(GNATMAKE_FOR_MARTE)
AM_CONDITIONAL(HAS_GNATMAKE_FOR_MARTE, [test ! "x$GNATMAKE_FOR_MARTE" = "x"])
if test "x$GNATMAKE_FOR_MARTE" = "x"; then
AC_MSG_WARN([
${TAB}${TAB}${TAB} GNAT for MARTE target has not been found.
${TAB}${TAB}${TAB} All examples using this platform will
${TAB}${TAB}${TAB} be disabled.])
fi
##########################################
# Check for Ocarina
##########################################
AM_PATH_OCARINA(1.1, ,AC_MSG_ERROR([Ocarina 1.1 or later is not installed on your system]))
##########################################
# Check for maintainer (debug) mode.
##########################################
GNATFLAGS=""
define(DEBUG_OPTIONS, [dnl
GNATFLAGS="-XBUILD=debug"
WARNINGS_ARE_ERRORS=""
debug=true])
define(NODEBUG_OPTIONS, [dnl
GNATFLAGS="-XBUILD=release"
WARNINGS_ARE_ERRORS="-- "
debug=false])
AC_ARG_ENABLE(debug,
[ --enable-debug Turn on debugging options],
[if [[ "$enableval" = "yes" ]]; then
DEBUG_OPTIONS
else
NODEBUG_OPTIONS
fi],
[DEBUG_OPTIONS])
AC_SUBST(GNATFLAGS)
AC_SUBST(WARNINGS_ARE_ERRORS)
AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
##########################################
# Windows requires specific targets
##########################################
case "$host_os" in
cygwin* | mingw*)
windows=true
;;
*)
windows=false
;;
esac
AM_CONDITIONAL(WINDOWS, test x$windows = xtrue)
############################################
# Set the value corresponding to cygpath -u
############################################
if test x"$CYGPATH_W" = x"echo"; then
CYGPATH_U="echo"
else
CYGPATH_U="cygpath -u"
fi
AC_SUBST(CYGPATH_U)