Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
Ocarina
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
2
Issues
2
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
TASTE
Ocarina
Commits
b983b8f2
Commit
b983b8f2
authored
May 09, 2020
by
yoogx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* Rework generation of makefile when using scenario files
For openaadl/ocarina#255
parent
24790482
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
56 additions
and
55 deletions
+56
-55
src/backends/ocarina-backends-build_utils.adb
src/backends/ocarina-backends-build_utils.adb
+45
-50
src/backends/ocarina-backends-execution_tests.ads
src/backends/ocarina-backends-execution_tests.ads
+1
-4
src/backends/ocarina-backends.ads
src/backends/ocarina-backends.ads
+4
-1
src/backends/po_hi_c/ocarina-backends-po_hi_c.adb
src/backends/po_hi_c/ocarina-backends-po_hi_c.adb
+6
-0
No files found.
src/backends/ocarina-backends-build_utils.adb
View file @
b983b8f2
...
...
@@ -676,8 +676,12 @@ package body Ocarina.Backends.Build_Utils is
Name_Tables
.
Append
(
M
.
C_Libraries
,
Name_Find
);
elsif
Name_Buffer
(
Name_Len
-
1
..
Name_Len
)
=
".c"
then
if
Source_Dirname
/=
Get_String_Name
(
"./"
)
then
Get_Name_String
(
Source_Dirname
);
Get_Name_String_And_Append
(
Source_Basename
);
else
Get_Name_String
(
Source_Basename
);
end
if
;
Name_Tables
.
Append
(
M
.
C_Sources
,
Name_Find
);
...
...
@@ -1939,7 +1943,12 @@ package body Ocarina.Backends.Build_Utils is
Set_Str_To_Name_Buffer
(
Base_Name
(
Name_Buffer
(
1
..
Name_Len
)));
if
Name_Buffer
(
Name_Len
-
2
..
Name_Len
)
=
"cpp"
then
Name_Buffer
(
Name_Len
-
2
..
Name_Len
)
:=
"o "
;
elsif
Name_Buffer
(
Name_Len
-
1
..
Name_Len
)
=
"cc"
then
Name_Buffer
(
Name_Len
-
1
..
Name_Len
)
:=
"o "
;
end
if
;
Write_Name
(
Name_Find
);
exit
when
J
=
Name_Tables
.
Last
(
CPP_Sources
);
...
...
@@ -1996,54 +2005,34 @@ package body Ocarina.Backends.Build_Utils is
---------------------
procedure
Compile_C_Files
(
C_Sources
:
Name_Tables
.
Instance
)
is
begin
Write_Line
(
"compile-c-files:"
);
if
Length
(
C_Sources
)
>
0
then
pragma
Unreferenced
(
C_Sources
);
for
J
in
Name_Tables
.
First
..
Name_Tables
.
Last
(
C_Sources
)
loop
declare
O_File
:
Name_Id
;
Include_Dir
:
Name_Id
;
begin
Get_Name_String
(
C_Sources
.
Table
(
J
));
Name_Buffer
(
Name_Len
)
:=
'o'
;
Set_Str_To_Name_Buffer
(
Base_Name
(
Name_Buffer
(
1
..
Name_Len
)));
O_File
:=
Name_Find
;
-- Define VPATH, search path for All Prerequisites
Get_Name_String
(
C_Sources
.
Table
(
J
));
while
(
Name_Buffer
(
Name_Len
)
/=
Directory_Separator
)
and
then
Name_Len
>
0
loop
Name_Len
:=
Name_Len
-
1
;
end
loop
;
if
Name_Len
>
0
then
Set_Str_To_Name_Buffer
(
Name_Buffer
(
1
..
Name_Len
));
Include_Dir
:=
Name_Find
;
else
Include_Dir
:=
No_Name
;
Write_Str
(
"VPATH = ../.."
);
if
Scenario_Dir
/=
null
then
Write_Str
(
":"
&
Scenario_Dir
.
all
);
end
if
;
Write_Eol
;
Write_Eol
;
-- Generic rule for compiling C files
Write_Line
(
"%.o : %.c"
);
Write_Char
(
ASCII
.
HT
);
Write_Str
(
"$(CC) -c $(INCLUDE) $(CFLAGS) "
&
"-I$(RUNTIME_PATH)/include "
);
if
Include_Dir
/=
No_Name
then
Write_Str
(
"-I"
);
Write_Str
(
"'"
);
Write_Name
(
Include_Dir
);
Write_Str
(
"'"
);
if
Scenario_Dir
/=
null
then
Write_Str
(
"-I"
&
Scenario_Dir
.
all
&
" "
);
end
if
;
Write_Str
(
" '"
);
Write_Name
(
C_Sources
.
Table
(
J
));
Write_Str
(
"' -o "
);
Write_Name
(
O_File
);
Write_Line
(
" $< -o $@"
);
Write_Eol
;
end
;
end
loop
;
end
if
;
-- compile-c-files rule, simply biuld $(USER_OBJS)
Write_Line
(
"compile-c-files: $(USER_OBJS) $(C_OBJECTS)"
);
end
Compile_C_Files
;
-----------------------
...
...
@@ -2061,7 +2050,13 @@ package body Ocarina.Backends.Build_Utils is
Include_Dir
:
Name_Id
;
begin
Get_Name_String
(
CPP_Sources
.
Table
(
J
));
if
Name_Buffer
(
Name_Len
-
2
..
Name_Len
)
=
"cpp"
then
Name_Buffer
(
Name_Len
-
2
..
Name_Len
)
:=
"o "
;
elsif
Name_Buffer
(
Name_Len
-
1
..
Name_Len
)
=
"cc"
then
Name_Buffer
(
Name_Len
-
1
..
Name_Len
)
:=
"o "
;
end
if
;
Set_Str_To_Name_Buffer
(
Base_Name
(
Name_Buffer
(
1
..
Name_Len
)));
O_File
:=
Name_Find
;
...
...
src/backends/ocarina-backends-execution_tests.ads
View file @
b983b8f2
...
...
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 2009 Telecom ParisTech, 2010-20
15
ESA & ISAE. --
-- Copyright (C) 2009 Telecom ParisTech, 2010-20
20
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -168,9 +168,6 @@ package Ocarina.Backends.Execution_Tests is
Command_Name_Path
:
String_Ptr
;
-- The command name path
Scenario_Dir
:
String_Ptr
;
-- Path to scenario directory
Create_Referencial
:
Boolean
:=
False
;
-- Decides if we make a regression test or if we write a referencial
-- file
...
...
src/backends/ocarina-backends.ads
View file @
b983b8f2
...
...
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 2008-2009 Telecom ParisTech, 2010-20
18
ESA & ISAE. --
-- Copyright (C) 2008-2009 Telecom ParisTech, 2010-20
20
ESA & ISAE. --
-- --
-- Ocarina is free software; you can redistribute it and/or modify under --
-- terms of the GNU General Public License as published by the Free Soft- --
...
...
@@ -112,6 +112,9 @@ package Ocarina.Backends is
Generated_Sources_Directory
:
Name_Id
:=
No_Name
;
-- Generated code will be in this directory
Scenario_Dir
:
String_Ptr
;
-- Path to scenario directory, required to get source path to user code
Compile_Generated_Sources
:
aliased
Boolean
:=
False
;
Remove_Generated_Sources
:
aliased
Boolean
:=
False
;
Do_Coverage_Test
:
aliased
Boolean
:=
False
;
...
...
src/backends/po_hi_c/ocarina-backends-po_hi_c.adb
View file @
b983b8f2
...
...
@@ -289,6 +289,12 @@ package body Ocarina.Backends.PO_HI_C is
Write_Line
(
"RUNTIME_PATH=$(BUILD_DIR)/../polyorb-hi-c"
);
Write_Str
(
"USER_SOURCES_DIRS="
);
if
Scenario_Dir
/=
null
then
Write_Space
;
Write_Str
(
"
""
-I"
&
Scenario_Dir
.
all
&
"
""
"
);
end
if
;
if
Length
(
User_Source_Dirs
)
>
0
then
for
J
in
Name_Tables
.
First
..
Name_Tables
.
Last
(
User_Source_Dirs
)
loop
Write_Space
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment