paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [5617] add the possibility to choose the directory n


From: Gautier Hattenberger
Subject: [paparazzi-commits] [5617] add the possibility to choose the directory name independent of the module name
Date: Mon, 23 Aug 2010 14:52:16 +0000

Revision: 5617
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=5617
Author:   gautier
Date:     2010-08-23 14:52:16 +0000 (Mon, 23 Aug 2010)
Log Message:
-----------
add the possibility to choose the directory name independent of the module name
only the directory "modules" is included now

Modified Paths:
--------------
    paparazzi3/trunk/conf/modules/module.dtd
    paparazzi3/trunk/conf/modules/sys_mon.xml
    paparazzi3/trunk/sw/tools/gen_aircraft.ml
    paparazzi3/trunk/sw/tools/gen_modules.ml

Modified: paparazzi3/trunk/conf/modules/module.dtd
===================================================================
--- paparazzi3/trunk/conf/modules/module.dtd    2010-08-23 14:49:09 UTC (rev 
5616)
+++ paparazzi3/trunk/conf/modules/module.dtd    2010-08-23 14:52:16 UTC (rev 
5617)
@@ -8,14 +8,16 @@
 <!ELEMENT event (handler*)>
 <!ELEMENT handler EMPTY>
 <!ELEMENT datalink EMPTY>
-<!ELEMENT makefile (flag|file|define|raw)*>
+<!ELEMENT makefile (flag|file|file_hw|define|raw)*>
 <!ELEMENT flag EMPTY>
 <!ELEMENT file EMPTY>
+<!ELEMENT file_hw EMPTY>
 <!ELEMENT define EMPTY>
 <!ELEMENT raw (#PCDATA)>
 
 <!ATTLIST module
-name CDATA #REQUIRED>
+name CDATA #REQUIRED
+dir CDATA #IMPLIED>
 
 <!ATTLIST depend
 require CDATA #IMPLIED
@@ -56,6 +58,9 @@
 <!ATTLIST file
 name CDATA #REQUIRED>
 
+<!ATTLIST file_hw
+name CDATA #REQUIRED>
+
 <!ATTLIST define
 name CDATA #REQUIRED
 value CDATA #REQUIRED>

Modified: paparazzi3/trunk/conf/modules/sys_mon.xml
===================================================================
--- paparazzi3/trunk/conf/modules/sys_mon.xml   2010-08-23 14:49:09 UTC (rev 
5616)
+++ paparazzi3/trunk/conf/modules/sys_mon.xml   2010-08-23 14:52:16 UTC (rev 
5617)
@@ -1,6 +1,6 @@
 <!DOCTYPE module SYSTEM "module.dtd">
 
-<module name="core">
+<module name="sys_mon" dir="core">
   <header>
     <file name="sys_mon.h"/>
   </header>

Modified: paparazzi3/trunk/sw/tools/gen_aircraft.ml
===================================================================
--- paparazzi3/trunk/sw/tools/gen_aircraft.ml   2010-08-23 14:49:09 UTC (rev 
5616)
+++ paparazzi3/trunk/sw/tools/gen_aircraft.ml   2010-08-23 14:52:16 UTC (rev 
5617)
@@ -86,15 +86,32 @@
       let modules_names =List.map (get_modules modules_dir) (Xml.children x) in
       List.iter (fun name -> files := name :: !files) modules_names;
       let modules_list = List.map Xml.parse_file modules_names in
+      (* Print modules directories and includes for all targets *)
+      fprintf f "\n# include modules directory for all targets\n";
+      let target_list = ref [] in
+      let dir_list = ref [] in
+      List.iter (fun m -> 
+        let dir = try Xml.attrib m "dir" with _ -> ExtXml.attrib m "name" in
+        dir_list := List.merge String.compare !dir_list [dir];
+        List.iter (fun l ->
+          if ExtXml.tag_is l "makefile" then
+            target_list := List.merge String.compare !target_list 
(targets_of_field l);
+        ) (Xml.children m)
+      ) modules_list;
+      List.iter (fun target -> fprintf f "%s.CFLAGS += -I modules\n" target) 
!target_list;
+      List.iter (fun dir -> let dir_name = (String.uppercase dir)^"_DIR" in 
fprintf f "%s = modules/%s\n" dir_name dir) !dir_list;
+      (* Parse each makefile *)
       List.iter (fun modul ->
         let name = ExtXml.attrib modul "name" in
-        let dir_name = (String.uppercase name)^"_DIR" in
+        let dir = try Xml.attrib modul "dir" with _ -> name in
+        let dir_name = (String.uppercase dir)^"_DIR" in
         fprintf f "\n# makefile for module %s\n" name;
-        fprintf f "%s = modules/%s\n" dir_name name;
+        (*fprintf f "%s = modules/%s\n" dir_name name;*)
         List.iter (fun l ->
           if ExtXml.tag_is l "makefile" then begin
             let targets = targets_of_field l in
-            List.iter (fun t -> fprintf f "%s.CFLAGS += -I $(%s)\n" t dir_name 
) targets;
+            (* build the list of all the targets *)
+            (*List.iter (fun t -> fprintf f "%s.CFLAGS += -I $(%s)\n" t 
dir_name ) targets;*)
             List.iter (fun field ->
               match String.lowercase (Xml.tag field) with
                 "flag" -> 
@@ -111,6 +128,9 @@
               | "file" -> 
                   let name = Xml.attrib field "name" in
                   List.iter (fun target -> fprintf f "%s.srcs += $(%s)/%s\n" 
target dir_name name) targets
+              | "file_hw" -> 
+                  let name = Xml.attrib field "name" in
+                  List.iter (fun target -> fprintf f "%s.srcs += 
arch/$(ARCH)/$(%s)/%s\n" target dir_name name) targets
               | "define" -> 
                   let value = Xml.attrib field "value"
                   and name = Xml.attrib field "name" in
@@ -122,10 +142,10 @@
                   end
               | _ -> ()
                      )
-              (Xml.children l)
+          (Xml.children l)
           end)
-          (Xml.children modul))
-       modules_list)
+        (Xml.children modul))
+      modules_list)
     (Xml.children xml);
   !files
 

Modified: paparazzi3/trunk/sw/tools/gen_modules.ml
===================================================================
--- paparazzi3/trunk/sw/tools/gen_modules.ml    2010-08-23 14:49:09 UTC (rev 
5616)
+++ paparazzi3/trunk/sw/tools/gen_modules.ml    2010-08-23 14:52:16 UTC (rev 
5617)
@@ -46,10 +46,11 @@
 let print_headers = fun modules ->
   lprintf out_h  "#include \"std.h\"\n";
   List.iter (fun m ->
+    let dir_name = try Xml.attrib m "dir" with _ -> Xml.attrib m "name" in
     try
       let headers = ExtXml.child m "header" in
       List.iter (fun h ->
-        lprintf out_h "#include \"%s\"\n" (Xml.attrib h "name"))
+        lprintf out_h "#include \"%s/%s\"\n" dir_name (Xml.attrib h "name"))
       (Xml.children headers)
     with _ -> ())
   modules




reply via email to

[Prev in Thread] Current Thread [Next in Thread]