Opened 15 years ago

Closed 15 years ago

#16 closed enhancement (fixed)

interface header file management tool

Reported by: ludovic.lhours@… Owned by: Nicolas Pouillon
Priority: minor Component: soclib-cc
Keywords: Cc:

Description

soclib-cc is great at managing the compilation of the hardware part of a platform, but not software components. Header files describing hardware/software interface of a specific component (vci_tty, vci_dma, etc.) should be handle in the same modular way as hardware component.

The current patch add a new utility to help building include search path from component metadatas.

Attachments (5)

soclib_soft.patch (1.6 KB) - added by ludovic.lhours@… 15 years ago.
soclib_soft_metadata.diff (10.1 KB) - added by Nicolas Pouillon 15 years ago.
Metadata updates
soclib_soft_2.diff (1.8 KB) - added by Nicolas Pouillon 15 years ago.
soclib-cc-cflags.patch (1.8 KB) - added by ludovic.lhours@… 15 years ago.
iteration2.diff (13.1 KB) - added by Nicolas Pouillon 15 years ago.

Download all attachments as: .zip

Change History (14)

Changed 15 years ago by ludovic.lhours@…

Attachment: soclib_soft.patch added

comment:1 Changed 15 years ago by Nicolas Pouillon

Owner: changed from somebody to Nicolas Pouillon
Status: newassigned

I quite like it, we could finally remove the headers/ hack !

A few remarks though:

  • The way of finding soclib is not good: SOCLIB environment variable is not required to be set. The only thing we can count on is soclib-cc --getpath.
  • soclib-soft is not explicit enough, it should be replaced by soclib-module-flags or like...

Here is an updated patch.

Are you okay with it ?

Changed 15 years ago by Nicolas Pouillon

Attachment: soclib_soft_metadata.diff added

Metadata updates

comment:2 Changed 15 years ago by Nicolas Pouillon

Component: component1soclib-cc

Changed 15 years ago by Nicolas Pouillon

Attachment: soclib_soft_2.diff added

comment:3 Changed 15 years ago by Nicolas Pouillon

I'm wondering at all:

Why not integrate this in soclib-cc-main.py ? It already does all the hard work...

comment:4 Changed 15 years ago by Nicolas Pouillon

We could even use the platform_desc file to list the involved modules...

comment:5 in reply to:  4 Changed 15 years ago by ludovic.lhours@…

Replying to nipo:

We could even use the platform_desc file to list the involved modules...

yes, this feature should definitely be integrated into soclib-cc and could use platform_desc as input as even DSX can now generate platform descriptions.

Changed 15 years ago by ludovic.lhours@…

Attachment: soclib-cc-cflags.patch added

comment:6 Changed 15 years ago by ludovic.lhours@…

I attached a patch for soclib-cc which implements the ideas from our comments

Changed 15 years ago by Nicolas Pouillon

Attachment: iteration2.diff added

comment:7 Changed 15 years ago by Nicolas Pouillon

  • I prefer print is done in the upper level: I much prefer to have a return value (so that libs and such can also use it).
  • x.startswith('abc') is better than x[:3] == 'abc'
  • I prefer not to include paths to all headers, just interface files. We dont need C++ headers

How about attachment:iteration2.diff

comment:8 Changed 15 years ago by ludovic.lhours@…

Separating normal from interface headers is a good idea. 'interface_files' set should be added to 'header_files' set to keep the current behavior of soclib-cc.

comment:9 Changed 15 years ago by Nicolas Pouillon

Resolution: fixed
Status: assignedclosed

Existing software uses soclib/interface_file_name.h everywhere and this is good: is avoids collisions from legacy software. Nevertheless, this means we have to add a soclib/ directory in the path of all interface files.

Committed in [1085] with the soclib/ directory constraint in [1093]. Soclib-cc now checks for soclib/ in interface file paths

Note: See TracTickets for help on using tickets.