comp.lang.ada
 help / color / mirror / Atom feed
From: "Nick Roberts" <nick.roberts@acm.org>
Subject: Re: Conditional compilation in Ada?
Date: Tue, 16 Nov 2004 20:41:18 -0000
Date: 2004-11-16T20:41:18+00:00	[thread overview]
Message-ID: <2vv6vfF2q17krU1@uni-berlin.de> (raw)
In-Reply-To: mailman.103.1100630792.10401.comp.lang.ada@ada-france.org

"Marius Amado Alves" <amado.alves@netcabo.pt> wrote in message 
news:mailman.103.1100630792.10401.comp.lang.ada@ada-france.org...
>> Any hints?
>
> Gnatprep.

In a little more detail, declare the things that differ (types, associated 
operations) in two separate packages, say Stuff_For_Playstation and 
Stuff_For_XBox, then put something like this:

Compile_Target := XBox

into a text file called "targspec.txt" (say), and then something like this 
in the appropriate places in your source files:

   with Stuff_For_$Compile_Target;
   ...
   package Target_Specific renames Stuff_For_$Compile_Target;
   ...
      Target_Specific.Reset_Joystick; -- or whatever

and rename every so doctored source file myfile.ads to myfile.adsp (and 
myfile.adb to myfile.adbp) and then run:

   gnatprep myfile.adsp myfile.ads targspec.txt -c -r

for each such source file, and then compile as normal. Documentation for 
gnatprep is in the GNAT User's Guide.

Obviously, you change "Compile_Target := XBox" to "Compile_Target := 
Playstation" to recompile for a different target.

The idea is to minimise the number of times you use a $ macro or #if in your 
source files, within reason, and put as much as possible into the different 
specific packages. Things tend to be easier to debug this way. You may find 
that you do not have to use gnatprep at all, but instead you could just have 
a separate file "target_specific.ads" which contains the two lines:

   with Stuff_For_XBox;
   package Target_Specific renames Stuff_For_XBox;

which you simply change to:


   with Stuff_For_Playstation;
   package Target_Specific renames Stuff_For_Playstation;

in order to recompile for a different target.

-- 
HTH
Nick Roberts





  reply	other threads:[~2004-11-16 20:41 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-16 18:30 Conditional compilation in Ada? jtg
2004-11-16 18:45 ` Marius Amado Alves
2004-11-16 20:41   ` Nick Roberts [this message]
2004-11-17  8:36     ` Alex R. Mosteo
2004-11-16 19:03 ` Jeffrey Carter
2004-11-16 19:13   ` Hyman Rosen
2004-11-16 19:41     ` Björn Lundin
2004-11-16 20:08     ` tmoran
2004-11-16 20:27       ` Hyman Rosen
2004-11-16 23:49         ` Jim Rogers
2004-11-16 20:43     ` Martin Dowie
2004-11-16 19:06 ` tmoran
2004-11-17  9:39   ` Adrien Plisson
2004-11-17 16:39     ` Jacob Sparre Andersen
2004-11-17  2:44 ` Steve
2004-11-17 20:30   ` Jeffrey Carter
2004-11-18  4:09     ` Steve
2004-11-18  6:49       ` Martin Dowie
2004-11-18 15:17         ` Georg Bauhaus
2004-11-18 19:12           ` Martin Dowie
2004-11-18 17:34         ` Jeffrey Carter
2004-11-18 17:44       ` Jeffrey Carter
2004-11-18 18:03         ` Alex R. Mosteo
2004-11-19  3:00           ` Steve
2004-11-19 21:35             ` Simon Wright
2004-11-20  2:56               ` Steve
2004-11-20 16:57                 ` Simon Wright
2004-11-17  9:28 ` Martin Krischik
2004-11-17 13:39   ` Stephen Leake
2004-11-17 10:02 ` Frank Piron
2004-11-17 12:32   ` Georg Bauhaus
2004-11-17 14:44     ` Dmitry A. Kazakov
2004-11-18 15:23       ` Georg Bauhaus
2004-11-18 22:10         ` Brian May
2004-11-19  9:03           ` Martin Krischik
2004-11-20 17:31             ` Georg Bauhaus
2004-11-21  9:14               ` Martin Krischik
2004-12-12  0:36               ` Lionel Draghi
2004-12-12  0:17             ` How to switch off those damm warnings about unknows pragma Lionel Draghi
2004-12-13 11:10               ` Georg Bauhaus
2004-12-13 15:07               ` Peter Amey
2004-11-20  1:05         ` Conditional compilation in Ada? Dr. Adrian Wrigley
2004-11-20 17:25           ` Georg Bauhaus
2004-11-23  1:15           ` Arthur Schwarz
2004-11-23 15:42             ` skidmarks
2004-11-17 12:27 ` Marin David Condic
  -- strict thread matches above, loose matches on Subject: below --
2004-11-19  9:13 Christoph Karl Walter Grein
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox