0

How do I adapt the scons-gnat and scons-ada builder to work with ads-files that don't have a corresponding .adb file? I ask because gnatbind asks for ali-files corresponding to .ads files when no corresponding .adb is present.

I need this because in our organisation some modules are delivered in binary format (.ads, .ali and .o only). I've also heard something about making the .ali files readonly to make the gnat suite happier.

If you help out with this I could finally convince the leaders in my IT-organisation to make the switch from Make to Scons. This will gives enormous increase of compilation speed and iterative development joy thanks to all the cool features of SCons including shared caching, explicit environment handling etc.

Alexis Wilke
  • 19,179
  • 10
  • 84
  • 156
Nordlöw
  • 11,838
  • 10
  • 52
  • 99
  • 3
    Is this the `scons-gnat` posted on Github by terazini? I wish they had first imported the original `scons-ada` source and then made their changes! Anyway, (a) yes, you should make the `.ali` files read-only, (b) `.adb` files are needed sometimes - for example, for generics, (c) `scons-gnat` is seriously misconceived; the GNAT compilation process is much too complex for a sensible person to try to second-guess `gnatmake -c`. – Simon Wright Oct 06 '13 at 07:43
  • If then I wonder...should the ali files corresponding to the single .ads files be put under version control or not? If not SCons needs to generate these...and from what I've seen so far scons-ada doesn't not do this (yet). – Nordlöw Oct 07 '13 at 08:00
  • Could you give some clues as to where to add functionality in scons-ada for building single `.ads` files to `.ali` and `.o` files? I believe this is a bit tricky to express in the current form of Builders right? Because the scons builder api is not flexible enough for this behaviour: Only build an .ads if it to does not have a corresponding adb file. You can't express this with traditional wildcard matchers. Is an SCons `Emitter` the solution? – Nordlöw Oct 07 '13 at 08:04
  • @SimonWright. I'm using `scons-ada`, btw. The `scons-gnat` didn't work me. – Nordlöw Oct 07 '13 at 08:10
  • Is that the `scons-ada` posted on code.google.com by rotinom? (and when you say `scons-add` in your question, do you actually mean `scons-ada`? Anyway, I don't know `scons` (being quite happy with `make`), so at the moment I can't "help" further ... – Simon Wright Oct 07 '13 at 17:49
  • I meant scons-ada. Sorry for the typo. – Nordlöw Oct 07 '13 at 19:33

0 Answers0