You could use: -gnateD on your command line or GPS options list -gnateD? Define or redefine preprocessing symbol, e.g. -gnateDsym=val Where use could set a variable to the architecture path you wish to use such as for a 32-bit arch gnat make -gnateDArchLib="/usr/lib/' then for the 64 bit arch use gnat make -gnateDArchLib="/usr/lib64/' -- -- ArchLib is define in commnd line options. if not present an error -- will be generated. -- Libs_Path : String := ArchLib ; ... open ( File => LibFlile, Name => Libs_Path & FileName, Mode => In_File ) ; In <75l5ceF18samiU1@mid.individual.net>, =?ISO-8859-1?Q?Bj=F6rn?= Persson writes: >When I write GNAT project files for shared libraries I find that I have to >hardcode the paths to some architecture-specific directories. 32-bit >libraries are in /usr/lib/ while 64-bit libraries are in /usr/lib64/, and I >would like to have a single project file that works for both cases. > >The way to find out the architecture of a Unix-like system appears to be to >invoke uname, but GNAT project files don't seem to have a shell-out >feature. As far as I can see in the manual the only ways they can get input >is by environment variables and command line parameters. I don't suppose >Gnatmake provides some variable to project files that shows what the >architecture is? > >I could define an environment variable in the systemwide profile, but that's >not really a good solution. That variable would contain the host >architecture but it's the target architecture I really need to test for. I >also don't like polluting the environment. > >Does anyone have a better idea? > >-- >Bj�rn Persson >PGP key A88682FD