@@-- The following tags are available in this template: @@-- @@-- @_Function_Names_@ : Combined table: list of fuction names... @@-- @_Language_@ : ... and corresponding implementation language @@-- @_Is_Type_@ : ... and flag if it is a function type @@-- @_CP_Files_@ : List of all context parameters ASN.1 files @@-- @_Unique_Languages_@ : List of all languages used in the system @@-- @_ASN1_Files_@ : List of all ASN.1 files @@-- @_ASN1_Modules_@ : List of all ASN.1 modules MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) OUTDIR := $(dir $(MAKEFILE_PATH)) all: dataviews dataviews: mkdir -p dataview/.cache @@-- Create dataview-uniq.asn @@INLINE( )( )(\n)@@ for f in @@TABLE@@ @_ASN1_Files_@ @@END_TABLE@@ ; do cat $$f; echo; done > dataview/dataview-uniq.asn @@END_INLINE@@ @@-- Then generate Dataviews once per target language @@TABLE@@ @@IF@@ @_Unique_Languages_@ = "Ada" or @_Unique_Languages_@ = "SDL" @@SET@@ Lang=Ada @@SET@@ Post=cd dataview/Ada && rm -f gnat.cfg GPS_project.gpr IgnoredExaminerWarnings.wrn runSpark.sh @@ELSIF@@ @_Unique_Languages_@ = "C" or @_Unique_Languages_@ = "CPP" or @_Unique_Languages_@ = "Blackbox_C" or @_Unique_Languages_@ = "GUI" @@SET@@ Lang=C @@SET@@ Post=# Blackboxes, C, GUI, and C++ all use the same C data model @@ELSE@@ @@SET@@ Lang=@_Unique_Languages_@ @@END_IF@@ @@INLINE( )(\n )(\n)@@ mkdir -p dataview/@_Lang_@ PROJECT_CACHE=dataview/.cache asn2dataModel -o dataview/@_Lang_@ -to@_Lang_@ dataview/dataview-uniq.asn \ @@INLINE( )( \\\n )(\n )@@ @@TABLE@@ @_REPLACE(,/ ):CP_Files_@ @@END_TABLE@@ @@END_INLINE@@ @_Post_@ @@END_INLINE@@ @@END_TABLE@@ @@-- Then symlink the files for each function @@TABLE@@ @@IF@@ @_Language_@ = "SDL" ln -fs ${OUTDIR}/dataview/dataview-uniq.asn @_LOWER:Function_Names_@/@_Language_@/src @@END_IF@@ @@END_TABLE@@ function-types-linux: @@TABLE@@ @@IF@@ @_Is_Type_@ cd @_LOWER:Function_Names_@/@_Language_@ && make compile-linux @@END_IF@@ @@END_TABLE@@ function-instances-linux: function-types-linux @@TABLE@@ @@IF@@ not @_Is_Type_@ cd @_LOWER:Function_Names_@/@_Language_@ && make compile-linux @@END_IF@@ @@END_TABLE@@ compile-all-linux: dataviews function-instances-linux