makefile.tmplt 5.93 KB
Newer Older
1
2
3
4
@@-- The following tags are available in this template:
@@--
@@-- @_Function_Names_@      : Combined table: list of fuction names...
@@-- @_Language_@            : ... and corresponding implementation language
5
6
@@-- @_Is_Type_@             : ... and flag if it is a function type
@@-- @_CP_Files_@            : List of all context parameters ASN.1 files
7
@@-- @_Unique_Languages_@    : List of all languages used in the system
8
9
@@-- @_ASN1_Files_@          : List of all ASN.1 files
@@-- @_ASN1_Modules_@        : List of all ASN.1 modules
Maxime Perrotin's avatar
Maxime Perrotin committed
10
11
12
13
14
MAKEFILE_PATH   := $(abspath $(lastword $(MAKEFILE_LIST)))
OUTDIR          := $(dir $(MAKEFILE_PATH))
DATAVIEW_PATH   := ${OUTDIR}/dataview
DATAVIEW_UNIQ   := ${DATAVIEW_PATH}/dataview-uniq.asn
DATAVIEW_AADLV1 := ${DATAVIEW_PATH}/dataview_aadlv1.aadl
Maxime Perrotin's avatar
Maxime Perrotin committed
15

Maxime Perrotin's avatar
Maxime Perrotin committed
16
17
# Project cache folder is used to speed up all ASN.1-related processing
export PROJECT_CACHE=${HOME}/.taste_AST_cache
18

Maxime Perrotin's avatar
Maxime Perrotin committed
19
all:	build-native
Maxime Perrotin's avatar
Maxime Perrotin committed
20

Maxime Perrotin's avatar
Maxime Perrotin committed
21
22
23
24
25
26
@@-- global check to see if dataview in Ada is needed
@@TABLE@@
  @@IF@@ @_Unique_Languages_@ = "Ada" or @_Unique_Languages_@ = "SDL"
     @@SET@@ Need_Ada=TRUE
  @@END_IF@@
@@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
27

Maxime Perrotin's avatar
Maxime Perrotin committed
28
dataview:	${DATAVIEW_PATH}/built
Maxime Perrotin's avatar
Maxime Perrotin committed
29

Maxime Perrotin's avatar
Maxime Perrotin committed
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
@@INLINE(${DATAVIEW_PATH}/built:	dataview/C/built )( )()@@
   @@IF@@ @_Need_Ada_@ = TRUE
      dataview/Ada/built
   @@END_IF@@
   @@TABLE@@
      @@IF@@ @_Unique_Languages_@ /= "Ada" and @_Unique_Languages_@ /= "SDL" and @_Unique_Languages_@ /= "C" and @_Unique_Languages_@ /= "CPP" and @_Unique_Languages_@ /= "Blackbox_C" and @_Unique_Languages_@ /= "GUI"
      dataview/@_Unique_Languages_@/built
      @@END_IF@@
   @@END_TABLE@@
   # Build dataviews for all languages
@@END_INLINE@@
	touch $@

build-native:	aadl2glueC build/system_config.h | ${DATAVIEW_PATH}/built
	make -j -C build -f Makefile.taste

build-rtems-ada:	aadl2glueC build/system_config.h | ${DATAVIEW_PATH}/built
	make -j -C build -f Makefile.taste rtems_ada
Maxime Perrotin's avatar
Maxime Perrotin committed
48

Maxime Perrotin's avatar
Maxime Perrotin committed
49
50
air:	aadl2glueC build/system_config.h | ${DATAVIEW_PATH}/built
	make -j -C build -f Makefile.taste air
51

Maxime Perrotin's avatar
Maxime Perrotin committed
52
@@INLINE(${DATAVIEW_UNIQ}:	)( )()@@
Maxime Perrotin's avatar
Maxime Perrotin committed
53
54
55
56
        @@TABLE@@
           @_ASN1_Files_@
        @@END_TABLE@@
@@END_INLINE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
57
	mkdir -p ${PROJECT_CACHE} && mkdir -p ${DATAVIEW_PATH}
Maxime Perrotin's avatar
Maxime Perrotin committed
58
59
	@@-- Create dataview-uniq.asn
	@@INLINE(	)( )(\n)@@
Maxime Perrotin's avatar
Maxime Perrotin committed
60
        for f in
Maxime Perrotin's avatar
Maxime Perrotin committed
61
62
63
        @@TABLE@@
           @_ASN1_Files_@ 
        @@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
64
; do cat $$f; echo; done > $@
Maxime Perrotin's avatar
Maxime Perrotin committed
65
	@@END_INLINE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
66
67

build/system_config.h:  # This is fast, no need to have dependencies
68
69
70
71
	@@-- Create system_config.h by concatenating all functions partial system config files
	@@INLINE(	)( )(\n)@@
        for f in
        @@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
72
	@@IF@@ not @_Is_Type_@
73
	    @_LOWER:Function_Names_@/@_Language_@/wrappers/@_LOWER:Function_Names_@_system_config.h
Maxime Perrotin's avatar
Maxime Perrotin committed
74
	@@END_IF@@
75
        @@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
76
; do cat $$f; echo; done > build/system_config.h
77
	@@END_INLINE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
78
79
80
81
82
83
84
85
86
87

@@INLINE(aadl2glueC:	)( )()@@
        @@TABLE@@
	@@IF@@ not @_Is_Type_@
            @_LOWER:Function_Names_@/@_Language_@/wrappers/aadl2glueC_built
	@@END_IF@@
	@@END_TABLE@@
@@END_INLINE@@

${DATAVIEW_AADLV1}: ${DATAVIEW_UNIQ}
88
	@@-- Generate DataView.aadl in AADLV1 as this is needed by aadl2glueC
Maxime Perrotin's avatar
Maxime Perrotin committed
89
90
91
	asn2aadlPlus $< $@

@@-- For each function generate the glue code from DMT based on the dataview
92
	@@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
93
	@@IF@@ not @_Is_Type_@
Maxime Perrotin's avatar
Maxime Perrotin committed
94
95
96
97
@_LOWER:Function_Names_@/@_Language_@/wrappers/aadl2glueC_built: @_LOWER:Function_Names_@/@_Language_@/wrappers/@_LOWER:Function_Names_@_mini_cv.aadl | ${DATAVIEW_AADLV1}
	aadl2glueC -o $(dir $@) ${DATAVIEW_AADLV1} $<
	touch $@

Maxime Perrotin's avatar
Maxime Perrotin committed
98
	@@END_IF@@
99
	@@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
100
101
102
103

@@-- Then generate Dataviews once per target language - first for C, it is needed in any case
dataview/C/built: | ${DATAVIEW_UNIQ}
	mkdir -p $(dir $@) && asn2dataModel -o $(dir $@) -toC ${DATAVIEW_UNIQ} \
Maxime Perrotin's avatar
Maxime Perrotin committed
104
105
106
107
	@@INLINE(	)( \\\n	)(\n)@@
	    @@TABLE@@
               @_REPLACE(,/ ):CP_Files_@
	    @@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
108
	@@END_INLINE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
109
110
111
112
113

	cp $(shell taste-config --prefix)/share/AutoGUI/debug_messages.? dataview/C
	cp $(shell taste-config --prefix)/share/AutoGUI/timeInMS.? dataview/C
	cd dataview/C && msgPrinter ${DATAVIEW_UNIQ} && msgPrinterASN1 ${DATAVIEW_UNIQ}
	touch $@
Maxime Perrotin's avatar
Maxime Perrotin committed
114
        @@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
115
	   @@IF@@ @_Unique_Languages_@ = "Ada" or @_Unique_Languages_@ = "SDL"
Maxime Perrotin's avatar
Maxime Perrotin committed
116
117
              @@SET@@ Enable=FALSE
              @@SET@@ Need_Ada=TRUE
Maxime Perrotin's avatar
Maxime Perrotin committed
118
	   @@ELSIF@@ @_Unique_Languages_@ = "C" or @_Unique_Languages_@ = "CPP" or @_Unique_Languages_@ = "Blackbox_C" or @_Unique_Languages_@ = "GUI"
Maxime Perrotin's avatar
Maxime Perrotin committed
119
              @@SET@@ Enable=FALSE
Maxime Perrotin's avatar
Maxime Perrotin committed
120
	   @@ELSE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
121
              @@SET@@ Enable=TRUE
Maxime Perrotin's avatar
Maxime Perrotin committed
122
123
              @@SET@@ Lang=@_Unique_Languages_@
	   @@END_IF@@
Maxime Perrotin's avatar
Maxime Perrotin committed
124
           @@IF@@ Enable=TRUE
Maxime Perrotin's avatar
Maxime Perrotin committed
125
dataview/@_Lang_@/built: | ${DATAVIEW_UNIQ}
Maxime Perrotin's avatar
Maxime Perrotin committed
126
               @@INLINE(	)(\n	)(\n)@@
Maxime Perrotin's avatar
Maxime Perrotin committed
127
                  mkdir -p $(dir $@) && asn2dataModel -o $(dir $@) -to@_Lang_@ ${DATAVIEW_UNIQ} \
Maxime Perrotin's avatar
Maxime Perrotin committed
128
129
130
131
132
133
                  @@INLINE(	)( \\\n	)(\n	)@@
                     @@TABLE@@
                        @_REPLACE(,/ ):CP_Files_@
                     @@END_TABLE@@
                  @@END_INLINE@@
               @@END_INLINE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
134
135

	touch $@
Maxime Perrotin's avatar
Maxime Perrotin committed
136
137
	   @@END_IF@@
	@@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
138

Maxime Perrotin's avatar
Maxime Perrotin committed
139
	@@IF@@ @_Need_Ada_@=TRUE
Maxime Perrotin's avatar
Maxime Perrotin committed
140
141
dataview/Ada/built: | ${DATAVIEW_UNIQ}
	mkdir -p $(dir $@) && asn2dataModel -o $(dir $@) -toAda ${DATAVIEW_UNIQ} \
Maxime Perrotin's avatar
Maxime Perrotin committed
142
143
144
145
	@@INLINE(	)( \\\n	)(\n)@@
	    @@TABLE@@
               @_REPLACE(,/ ):CP_Files_@
	    @@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
146
147
	@@END_INLINE@@

Maxime Perrotin's avatar
Maxime Perrotin committed
148
	touch $@
Maxime Perrotin's avatar
Maxime Perrotin committed
149
	cd dataview/Ada && rm -f gnat.cfg GPS_project.gpr IgnoredExaminerWarnings.wrn runSpark.sh
Maxime Perrotin's avatar
Maxime Perrotin committed
150
        @@END_IF@@
151
152
	@@-- Then symlink the files for each function
	@@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
153
	@@IF@@ @_Language_@ = "SDL"
Maxime Perrotin's avatar
Maxime Perrotin committed
154
	ln -fs ${DATAVIEW_UNIQ} @_LOWER:Function_Names_@/@_Language_@/src
155
	@@END_IF@@
156
	@@END_TABLE@@
157

Maxime Perrotin's avatar
Maxime Perrotin committed
158
function-types-linux:
Maxime Perrotin's avatar
Maxime Perrotin committed
159
	@@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
160
	@@IF@@ @_Is_Type_@
Maxime Perrotin's avatar
Maxime Perrotin committed
161
	cd @_LOWER:Function_Names_@/@_Language_@ && make -j compile-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
162
	@@END_IF@@
Maxime Perrotin's avatar
Maxime Perrotin committed
163
	@@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
164

Maxime Perrotin's avatar
Maxime Perrotin committed
165
function-instances-linux:	function-types-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
166
167
	@@TABLE@@
	@@IF@@ not @_Is_Type_@
Maxime Perrotin's avatar
Maxime Perrotin committed
168
	cd @_LOWER:Function_Names_@/@_Language_@ && make -j compile-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
169
170
171
	@@END_IF@@
	@@END_TABLE@@

Maxime Perrotin's avatar
Maxime Perrotin committed
172
compile-all-linux:	dataviews function-instances-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
173
174
175

clean:
	rm -rf binaries/*
176
	make -C build -f Makefile.taste clean
Maxime Perrotin's avatar
Maxime Perrotin committed
177
178

.PHONY: clean compile-all-linux function-instances-linux function-types-linux build-native dataview build-rtems-ada