makefile.tmplt 6.16 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
10
11
# MAKEFILE_PATH   := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKEFILE_PATH   := $(lastword $(MAKEFILE_LIST))
Maxime Perrotin's avatar
Maxime Perrotin committed
12
13
14
15
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
16

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

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

Maxime Perrotin's avatar
Maxime Perrotin committed
22
23
24
25
26
27
@@-- 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
28

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

Maxime Perrotin's avatar
Maxime Perrotin committed
31
32
33
34
35
36
37
@@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
38
39
      @@ELSIF@@ @_Unique_Languages_@ = GUI
      dataview/Python/built
Maxime Perrotin's avatar
Maxime Perrotin committed
40
41
42
43
44
45
46
      @@END_IF@@
   @@END_TABLE@@
   # Build dataviews for all languages
@@END_INLINE@@
	touch $@

build-native:	aadl2glueC build/system_config.h | ${DATAVIEW_PATH}/built
Maxime Perrotin's avatar
Maxime Perrotin committed
47
	$(MAKE) -j -C build -f Makefile.taste
Maxime Perrotin's avatar
Maxime Perrotin committed
48
49

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

Maxime Perrotin's avatar
Maxime Perrotin committed
52
air:	aadl2glueC build/system_config.h | ${DATAVIEW_PATH}/built
Maxime Perrotin's avatar
Maxime Perrotin committed
53
	$(MAKE) -j -C build -f Makefile.taste air
54

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

build/system_config.h:  # This is fast, no need to have dependencies
67
68
69
70
	@@-- 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
71
	@@IF@@ not @_Is_Type_@
72
	    @_LOWER:Function_Names_@/@_Language_@/wrappers/@_LOWER:Function_Names_@_system_config.h
Maxime Perrotin's avatar
Maxime Perrotin committed
73
	@@END_IF@@
74
        @@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
75
; do cat $$f; echo; done > build/system_config.h
76
	@@END_INLINE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
77
78
79
80
81
82
83
84
85
86

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

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

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

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

@@-- Then generate Dataviews once per target language - first for C, it is needed in any case
dataview/C/built: | ${DATAVIEW_UNIQ}
102
103
	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

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

139
140
141
	@@IF@@ @_Lang_@ = Python
	$(MAKE) -C dataview/Python -f Makefile.python
	@@END_IF@@
Maxime Perrotin's avatar
Maxime Perrotin committed
142
	touch $@
Maxime Perrotin's avatar
Maxime Perrotin committed
143
144
	   @@END_IF@@
	@@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
145

Maxime Perrotin's avatar
Maxime Perrotin committed
146
	@@IF@@ @_Need_Ada_@=TRUE
Maxime Perrotin's avatar
Maxime Perrotin committed
147
dataview/Ada/built: | ${DATAVIEW_UNIQ}
148
149
	mkdir -p $(dir $@)
	asn2dataModel -o $(dir $@) -toAda ${DATAVIEW_UNIQ} \
Maxime Perrotin's avatar
Maxime Perrotin committed
150
151
152
153
	@@INLINE(	)( \\\n	)(\n)@@
	    @@TABLE@@
               @_REPLACE(,/ ):CP_Files_@
	    @@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
154
155
	@@END_INLINE@@

Maxime Perrotin's avatar
Maxime Perrotin committed
156
	touch $@
157
158
	cd dataview/Ada
	rm -f gnat.cfg GPS_project.gpr IgnoredExaminerWarnings.wrn runSpark.sh
Maxime Perrotin's avatar
Maxime Perrotin committed
159
        @@END_IF@@
160
161
	@@-- Then symlink the files for each function
	@@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
162
	@@IF@@ @_Language_@ = "SDL"
163
	ln -fs ../../../${DATAVIEW_UNIQ} @_LOWER:Function_Names_@/@_Language_@/src
164
	@@END_IF@@
165
	@@END_TABLE@@
166

Maxime Perrotin's avatar
Maxime Perrotin committed
167
function-types-linux:
Maxime Perrotin's avatar
Maxime Perrotin committed
168
	@@TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
169
	@@IF@@ @_Is_Type_@
170
	$(MAKE) -j -C @_LOWER:Function_Names_@/@_Language_@ compile-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
171
	@@END_IF@@
Maxime Perrotin's avatar
Maxime Perrotin committed
172
	@@END_TABLE@@
Maxime Perrotin's avatar
Maxime Perrotin committed
173

Maxime Perrotin's avatar
Maxime Perrotin committed
174
function-instances-linux:	function-types-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
175
176
	@@TABLE@@
	@@IF@@ not @_Is_Type_@
177
	$(MAKE) -C @_LOWER:Function_Names_@/@_Language_@ -j compile-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
178
179
180
	@@END_IF@@
	@@END_TABLE@@

Maxime Perrotin's avatar
Maxime Perrotin committed
181
compile-all-linux:	dataviews function-instances-linux
Maxime Perrotin's avatar
Maxime Perrotin committed
182
183
184

clean:
	rm -rf binaries/*
Maxime Perrotin's avatar
Maxime Perrotin committed
185
	$(MAKE) -C build -f Makefile.taste clean
Maxime Perrotin's avatar
Maxime Perrotin committed
186
187

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