partition.tmplt 5.31 KB
Newer Older
1
2
3
4
5
@@-- The up to date list of tags available for this template is available here:
@@-- https://taste.tuxfamily.org/wiki/index.php?title=Kazoo_Templates_Documentation#templates.2Fconcurrency_view.2Fsub.2Fpartition.tmplt
@@-- If you are using vim, go over the URL and pres gx in to follow the link
@@-- If you have no internet access you can also use (with vim) Ctrl-W-f or gf in vim to open the text doc:
@@-- $HOME/tool-inst/share/kazoo/doc/templates_concurrency_view_sub_partition.ascii
Maxime Perrotin's avatar
Maxime Perrotin committed
6
#  Build of partition @_Name_@ (common to all targets)
7
# (rule generated by templates/concurrency_view/aadl_4_makefile/partition.tmplt)
8
@_LOWER:Name_@:	@_REPLACE_ALL(,/ ):LOWER:Block_Names_@
9
  @@-- Opengeode generates intermediate ASN.1 files, they must be compiled
10
  @@-- (at partition level, not shared by all nodes)
11
12
13
14
15
16
  @@-- The code below is needed because if there is more than one instance of
  @@-- a component type, opengeode will generate the _datamodel.asn file in
  @@-- the folder of the instance, i.e. there may be more than one reference
  @@-- to the same file generated at different places The python code checks
  @@-- that when this happens only one _datamodel.asn file is kept to avoid
  @@-- an error that would otherwise be raised by asn2dataModel
17
  @@INLINE(	args=$$\(python3 -c "import os, sys; print\(' '.join\({os.path.basename\(f\):f for f in sys.argv[1:]}.values\(\)\)\)" )( )(\); \\\n	mkdir -p ..\/dataview\/Ada; mono $(shell which asn1.exe) -Ada -equal --target allboards -typePrefix asn1Scc -o ..\/dataview\/Ada $$args )@@
18
19
    @@TABLE@@
       @@IF@@ @_Block_Languages_@ = SDL
20
          @@--  Use wildcard because in the case of the SDL to C backend the _datamodel files are not generated (yet)
21
          @@IF@@ @_Block_Instance_Of_@ = ""
22
             ${wildcard ../@_LOWER:Block_Names_@/SDL/code/@_LOWER:Block_Names_@_datamodel.asn}
Maxime Perrotin's avatar
Maxime Perrotin committed
23
          @@ELSE@@
24
25
             @@IF@@ @_Block_Is_Shared_Type_@
             @@-- instance of a shared type stored in a shared folder
26
             ${wildcard ../@_LOWER:Block_Names_@/SDL/code/@_LOWER:Block_Instance_Of_@_datamodel.asn}
27
             @@-- context parameters of the function type must be added too
28
             ${wildcard @_Shared_Lib_Dir_@/@_LOWER:Block_Instance_Of_@/@_LOWER:Block_Instance_Of_@/SDL/Context*.asn}
29
             @@ELSE@@
30
             ${wildcard ../@_LOWER:Block_Names_@/SDL/code/@_LOWER:Block_Instance_Of_@_datamodel.asn}
31
32
33
             @@-- context parameters of the function type must be added too
             ${wildcard ../@_LOWER:Block_Instance_Of_@/SDL/Context*.asn}
             @@END_IF@@
34
          @@END_IF@@
35
36
             @@-- If the function has context parameters, add the file
             ${wildcard ../@_LOWER:Block_Names_@/SDL/Context-@_LOWER:REPLACE_ALL(_/-):Block_Names_@.asn}
37
38
       @@END_IF@@
    @@END_TABLE@@
39
    ../dataview/dataview-uniq.asn
40
  @@END_INLINE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
41

42
@@-- For simulation target, add simulation.asn and uPER encoders
Maxime Perrotin's avatar
Maxime Perrotin committed
43
@_LOWER:Name_@_simu:	@_REPLACE_ALL(,/ ):LOWER:Block_Names_@
44
  @@INLINE(	args=")( )("; \\\n	mkdir -p ..\/dataview\/Ada; mono $(shell which asn1.exe) -Ada -uPER -equal --target allboards -typePrefix asn1Scc -o ..\/dataview\/Ada $$args; \\)@@
Maxime Perrotin's avatar
Maxime Perrotin committed
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    @@TABLE@@
       @@IF@@ @_Block_Languages_@ = SDL
          @@--  Use wildcard because in the case of the SDL to C backend the _datamodel files are not generated (yet)
          @@IF@@ @_Block_Instance_Of_@ = ""
             ${wildcard ../@_LOWER:Block_Names_@/SDL/code/@_LOWER:Block_Names_@_datamodel.asn}
          @@ELSE@@
             ${wildcard ../@_LOWER:Block_Names_@/SDL/code/@_LOWER:Block_Instance_Of_@_datamodel.asn}
          @@END_IF@@
             @@-- If the function has context parameters, add the file
             ${wildcard ../@_LOWER:Block_Names_@/SDL/Context-@_LOWER:REPLACE_ALL(_/-):Block_Names_@.asn}
       @@END_IF@@
    @@END_TABLE@@
    ../dataview/dataview-uniq.asn
    simulation.asn
  @@END_INLINE@@
60
	taste-asn1-gser -o ../dataview/Ada/src --raw $$args || exit 1
Maxime Perrotin's avatar
Maxime Perrotin committed
61
62
63



64
65
66
67
@@IF@@ @_CPU_Platform_@ = PLATFORM_LEON_RTEMS_POSIX or @_CPU_Platform_@ = PLATFORM_AIR or @_CPU_Platform_@ = PLATFORM_RPI
# Build of partition @_Name_@ with the additional generation of adainit symbol
# to initialize Ada modules while the entry point of the node is in C (POHIC)
# This is only needed on some platforms ; gnat on Linux generates it automatically
68
# (rule generated by templates/concurrency_view/aadl_4_makefile/partition.tmplt)
69
@_LOWER:Name_@_with_adainit : @_LOWER:Name_@
70
71
	mkdir -p @_LOWER:Name_@_adainit && \
@@INLINE(    echo ')()()@@
72
   @@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
73
      @@IF@@ @_Block_Languages_@ = SDL or @_Block_Languages_@ = Ada
74
75
76
77
         with @_CAPITALIZE:Block_Names_@;
      @@END_IF@@
   @@END_TABLE@@
   package adainit is end adainit;' >@_LOWER:Name_@_adainit/tasteada.ads && \
78
79
@@END_INLINE@@
        cd @_LOWER:Name_@_adainit && \
Maxime Perrotin's avatar
Maxime Perrotin committed
80
@@INLINE(    )(:)( \\)@@
81
   ADA_INCLUDE_PATH=../../dataview/Ada/src:../../dataview/Ada/asn1rtl:../../dataview/Ada/boards/x86
82
   @@TABLE'TERSE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
83
      @@IF@@ @_Block_Languages_@ = SDL
Maxime Perrotin's avatar
Maxime Perrotin committed
84
         ../../@_LOWER:Block_Names_@/SDL/code:../../@_LOWER:Block_Names_@/SDL/wrappers 
Maxime Perrotin's avatar
Maxime Perrotin committed
85
      @@ELSIF@@ @_Block_Languages_@ = Ada
86
87
88
         ../../@_LOWER:Block_Names_@/Ada/src
      @@END_IF@@
   @@END_TABLE@@
89
@@END_INLINE@@
90
91
$(CROSS_GNATMAKE) -c tasteada.ads && $(CROSS_GNATBIND) -t -n tasteada.ali -o ada-start.adb && mkdir -p ../@_LOWER:Node_Name_@/ada_code_startup && mv ada-start.* ../@_LOWER:Node_Name_@/ada_code_startup
@@END_IF@@
92
93

@_Blocks_@