-- This is a project file used to rebuild the GNAT run-time for debug -- or instrumentation purposes. -- -- Here is how to use this project file: -- -- 1. Create a new directory (e.g. "rts-debug"), then copy the adainclude -- directory from the reference runtime that you want to rebuild. -- You can find the relevant adainclude directory by running the command -- gprls -v [--target=] [--RTS=] and using the adainclude -- directory listed. For example: -- $ cd -- $ mkdir rts-debug -- $ cd rts-debug -- $ cp -a `gprls -v \ -- [--target=] --RTS=native | grep adainclude` . -- $ cd adainclude -- -- or under Windows: -- -- $ mkdir adainclude -- $ xcopy /s /path/to/adainclude adainclude -- $ cd adainclude -- -- 2. If needed (e.g for pragma Normalize_Scalars), create a file called -- gnat.adc in the adainclude directory containing the configuration pragmas -- you want to use to build the library, e.g. -- -- $ echo "pragma Normalize_Scalars;" > gnat.adc -- -- Note that this step is usually not needed, and most pragmas are not -- relevant to the GNAT run time. -- -- 3. Determine the values of the following variables -- CFLAGS (back end compilation flags such as -g -O2) -- ADAFLAGS (front end compilation flags such as -gnatn) -- -- 4. Run gprbuild on libada.gpr, e.g: -- $ gprbuild -p -Plibada -j0 -XCFLAGS="-O2 -g" -XADAFLAGS="-gnatn" -- -- or for a cross target: -- -- $ gprbuild --target=powerpc-elf -p -Plibada -j0 [...] -- -- if you created a gnat.adc file at step 2, add "-XCONFIG_FILE=gnat.adc" to -- the gprbuild switches. -- -- The above command will build libgnat.a and libgnarl.a with the given -- switches. -- -- 4b. In order to generate shared libraries instead, add -- "-XLIBRARY_KIND=dynamic" to the gprbuild switches, and if you want to -- build both shared and static libraries, you can run gprbuild twice in -- a row, e.g: -- -- $ gprbuild -p -Plibada -j0 -XLIBRARY_KIND=dynamic [...] -- $ gprbuild -p -Plibada -j0 -XLIBRARY_KIND=static [...] -- -- 5. Once the above gprbuild command is successful, you can use this new -- runtime directory by specifying it either via the --RTS= switch on the -- command line or via the attribute Runtime ("Ada") in the main project -- file: -- $ gprbuild --RTS=.../rts-debug ... -- or -- for Runtime ("Ada") use ".../rts-debug"; aggregate project Libada is for Project_Files use ("libgnat.gpr", "libgnarl.gpr"); Config_File := External ("CONFIG_FILE", ""); package Builder is case Config_File is when "" => null; when others => for Global_Configuration_Pragmas use Config_File; end case; end Builder; end Libada;