From 3b908f5dc16aa42c94d6917190108022349307b6 Mon Sep 17 00:00:00 2001 From: yoogx Date: Mon, 3 Mar 2014 09:08:32 +0100 Subject: [PATCH] * Reorganize Python subpart --- configure.ac | 4 +++- projects/Makefile.am | 2 ++ projects/ocarina-config.gpr | 7 +++---- projects/ocarina-main.gpr | 6 ++++-- projects/ocarina-python.gpr | 18 +++++++++++++----- projects/ocarina.gpr.in | 3 ++- src/Makefile.am | 4 +--- .../ocarina-configuration.adb.in | 0 src/{main => config}/ocarina-configuration.ads | 0 src/main/ocarina_cmd.adb | 4 ++-- src/{main => python}/ocarina-python.adb | 0 src/{main => python}/ocarina-python.ads | 0 src/{main => python}/ocarina-python_cmd.adb | 7 +++++-- src/{main => python}/ocarina-python_cmd.ads | 2 +- src/{main => python}/ocarina-utils.adb | 0 src/{main => python}/ocarina-utils.ads | 0 16 files changed, 36 insertions(+), 21 deletions(-) rename src/{main => config}/ocarina-configuration.adb.in (100%) rename src/{main => config}/ocarina-configuration.ads (100%) rename src/{main => python}/ocarina-python.adb (100%) rename src/{main => python}/ocarina-python.ads (100%) rename src/{main => python}/ocarina-python_cmd.adb (96%) rename src/{main => python}/ocarina-python_cmd.ads (88%) rename src/{main => python}/ocarina-utils.adb (100%) rename src/{main => python}/ocarina-utils.ads (100%) diff --git a/configure.ac b/configure.ac index 147dcece..3cf25d63 100644 --- a/configure.ac +++ b/configure.ac @@ -410,11 +410,13 @@ AC_OUTPUT([ resources/runtime/aadl_xml/Makefile projects/ocarina.gpr src/main/Makefile - src/main/ocarina-configuration.adb + src/config/ocarina-configuration.adb src/frontends/Makefile + src/config/Makefile src/core/Makefile src/transfo/Makefile src/backends/Makefile + src/python/Makefile src/Makefile support/Makefile support/strip_wrapper.sh diff --git a/projects/Makefile.am b/projects/Makefile.am index da5aa872..97b5dc2b 100644 --- a/projects/Makefile.am +++ b/projects/Makefile.am @@ -36,6 +36,7 @@ OBJECT_DIRS = $(top_builddir)/src/core/objects \ $(top_builddir)/src/backends/objects \ $(top_builddir)/src/transfo/objects \ $(top_builddir)/src/main/objects \ + $(top_builddir)/src/python/objects \ $(top_builddir)/src/config/objects # Library directories (*.ali, *.a) @@ -45,6 +46,7 @@ LIB_DIRS = $(top_builddir)/src/core/libs \ $(top_builddir)/src/backends/libs \ $(top_builddir)/src/transfo/libs \ $(top_builddir)/src/config/libs \ + $(top_builddir)/src/python/libs \ $(top_builddir)/src/main/libs # All directories used for the build process. If the configure is diff --git a/projects/ocarina-config.gpr b/projects/ocarina-config.gpr index bd643089..0e8f95a7 100644 --- a/projects/ocarina-config.gpr +++ b/projects/ocarina-config.gpr @@ -38,13 +38,12 @@ with "ocarina-backends"; with "ocarina-transfo"; project Ocarina.Config is - Src_Dir := Ocarina.Top_Src_Dir & "/main"; - Src_Dir_2 := Ocarina.Top_Build_Dir & "/main"; + Src_Dir := Ocarina.Top_Src_Dir & "/config"; Build_Dir := Ocarina.Top_Build_Dir & "/config"; - for Source_Dirs use (Src_Dir, Src_Dir_2, Build_Dir); - for Source_Files use ("ocarina-configuration.adb", "ocarina-configuration.ads"); + for Source_Dirs use (Src_Dir, Build_Dir); for Object_Dir use Build_Dir & "/objects"; + for Library_Dir use Build_Dir & "/libs"; for Library_Name use "ocarina-config"; for Library_Kind use Ocarina.Lib_Type; diff --git a/projects/ocarina-main.gpr b/projects/ocarina-main.gpr index 314f4b47..8cde6efe 100644 --- a/projects/ocarina-main.gpr +++ b/projects/ocarina-main.gpr @@ -33,16 +33,17 @@ with "ocarina"; with "ocarina-core"; +with "ocarina-config"; with "ocarina-frontends"; with "ocarina-backends"; with "ocarina-transfo"; -with "gnatcoll_python"; project Ocarina.Main is Src_Dir := Ocarina.Top_Src_Dir & "/main"; + Src_Dir_2 := Ocarina.Top_Src_Dir & "/python"; Build_Dir := Ocarina.Top_Build_Dir & "/main"; - for Source_Dirs use (Src_Dir, Build_Dir); + for Source_Dirs use (Src_Dir, Build_Dir, src_dir_2); for Object_Dir use Build_Dir & "/objects"; for Library_Dir use Build_Dir & "/libs"; for Exec_Dir use Build_Dir; @@ -51,6 +52,7 @@ project Ocarina.Main is package Compiler renames Ocarina.Compiler; package Binder renames Ocarina.Binder; package Linker renames Ocarina.Linker; + package Builder is for Executable ("ocarina_cmd") use "ocarina"; for Default_Switches ("Ada") use diff --git a/projects/ocarina-python.gpr b/projects/ocarina-python.gpr index b29f885b..82b8b516 100644 --- a/projects/ocarina-python.gpr +++ b/projects/ocarina-python.gpr @@ -32,25 +32,33 @@ ------------------------------------------------------------------------------ with "ocarina"; +with "ocarina-config"; with "ocarina-core"; with "ocarina-frontends"; with "ocarina-backends"; with "ocarina-transfo"; + with "gnatcoll_python"; project Ocarina.Python is - Src_Dir := Ocarina.Top_Src_Dir & "/main"; - Build_Dir := Ocarina.Top_Build_Dir & "/main"; + Src_Dir := Ocarina.Top_Src_Dir & "/python"; + Build_Dir := Ocarina.Top_Build_Dir & "/python"; for Source_Dirs use (Src_Dir, Build_Dir); for Object_Dir use Build_Dir & "/objects"; for Library_Dir use Build_Dir & "/libs"; - for Library_Name use "ocarina-python"; + for Library_Name use "ocarina_python"; for Library_Kind use Ocarina.Lib_Type; + for Library_Version use "libocarina_python.so"; + + for Library_Interface use ("ocarina.python_cmd"); + for Library_Standalone use "standard"; +-- for Library_Standalone use "encapsulated"; + package Compiler renames Ocarina.Compiler; - package Binder renames Ocarina.Binder; - package Builder renames Ocarina.Builder; + package Binder renames Ocarina.Binder; + package Builder renames Ocarina.Builder; end Ocarina.Python; diff --git a/projects/ocarina.gpr.in b/projects/ocarina.gpr.in index 157ffb3b..e0f566bb 100644 --- a/projects/ocarina.gpr.in +++ b/projects/ocarina.gpr.in @@ -59,6 +59,7 @@ project Ocarina is "-gnatoa", "-fstack-check", "-gnaty", + "-gnatwl", "-gnatyu", -- not in -gnaty: check multiple blank lines "-gnatys", -- not in -gnatx: check useless parentheses @GCOV@"-fprofile-arcs", @@ -80,7 +81,7 @@ project Ocarina is package Binder is case Build is when "debug" => - for Default_Switches ("Ada") use ("-E", "-t", "-static"); + for Default_Switches ("Ada") use ("-E", "-t"); when "release" => for Default_Switches ("Ada") use ("-t", "-static"); end case; diff --git a/src/Makefile.am b/src/Makefile.am index 3ce4c444..6d7f4cfd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,3 +1 @@ -SUBDIRS = core frontends backends main transfo - - +SUBDIRS = core frontends backends main transfo python config diff --git a/src/main/ocarina-configuration.adb.in b/src/config/ocarina-configuration.adb.in similarity index 100% rename from src/main/ocarina-configuration.adb.in rename to src/config/ocarina-configuration.adb.in diff --git a/src/main/ocarina-configuration.ads b/src/config/ocarina-configuration.ads similarity index 100% rename from src/main/ocarina-configuration.ads rename to src/config/ocarina-configuration.ads diff --git a/src/main/ocarina_cmd.adb b/src/main/ocarina_cmd.adb index eeaf36a1..182feb3e 100644 --- a/src/main/ocarina_cmd.adb +++ b/src/main/ocarina_cmd.adb @@ -69,7 +69,7 @@ with Ocarina.FE_AADL.Parser; use Ocarina.FE_AADL.Parser; with Ocarina.ME_REAL.Tokens; with Ocarina.Scripts; use Ocarina.Scripts; with Ocarina.Utils; use Ocarina.Utils; -with Ocarina.Python; use Ocarina.Python; +-- with Ocarina.Python; use Ocarina.Python; with Ocarina.ME_AADL.AADL_Instances.Nodes; procedure Ocarina_Cmd is @@ -867,7 +867,7 @@ begin OS_Exit (0); when Python_Shell => - Run_Python; + -- Run_Python; OS_Exit (0); when Parse_Scenario_Files_First => diff --git a/src/main/ocarina-python.adb b/src/python/ocarina-python.adb similarity index 100% rename from src/main/ocarina-python.adb rename to src/python/ocarina-python.adb diff --git a/src/main/ocarina-python.ads b/src/python/ocarina-python.ads similarity index 100% rename from src/main/ocarina-python.ads rename to src/python/ocarina-python.ads diff --git a/src/main/ocarina-python_cmd.adb b/src/python/ocarina-python_cmd.adb similarity index 96% rename from src/main/ocarina-python_cmd.adb rename to src/python/ocarina-python_cmd.adb index 85eae72f..b806da3b 100644 --- a/src/main/ocarina-python_cmd.adb +++ b/src/python/ocarina-python_cmd.adb @@ -111,7 +111,9 @@ package body Ocarina.Python_Cmd is -- register those you intend to support Repo := new Scripts_Repository_Record; - Register_Python_Scripting (Repo, "ocarina"); + Register_Python_Scripting (Repo, "libocarina_python"); + -- Note: it must match the name of the library generated + Register_Standard_Classes (Repo, "Console"); -- Register our custom functions @@ -152,7 +154,7 @@ package body Ocarina.Python_Cmd is procedure Initialize_Lib is procedure Adainit; - pragma Import (C, Adainit, "adainit"); + pragma Import (C, Adainit, "ocarina_pythoninit"); begin -- Initialize Ada runtime @@ -166,6 +168,7 @@ package body Ocarina.Python_Cmd is -- Initialize Python bindings Repo := Register_Scripts_And_Functions; + end Initialize_Lib; ---------------- diff --git a/src/main/ocarina-python_cmd.ads b/src/python/ocarina-python_cmd.ads similarity index 88% rename from src/main/ocarina-python_cmd.ads rename to src/python/ocarina-python_cmd.ads index c87a7282..30661089 100644 --- a/src/main/ocarina-python_cmd.ads +++ b/src/python/ocarina-python_cmd.ads @@ -11,7 +11,7 @@ package Ocarina.Python_Cmd is -- export procedure Initialize_Lib; - pragma Export (C, Initialize_Lib, "initocarina"); + pragma Export (C, Initialize_Lib, "initlibocarina_python"); procedure Initialize; diff --git a/src/main/ocarina-utils.adb b/src/python/ocarina-utils.adb similarity index 100% rename from src/main/ocarina-utils.adb rename to src/python/ocarina-utils.adb diff --git a/src/main/ocarina-utils.ads b/src/python/ocarina-utils.ads similarity index 100% rename from src/main/ocarina-utils.ads rename to src/python/ocarina-utils.ads -- GitLab