From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED.fn3LatRFkm9/xzEj7F2/NQ.user.gioia.aioe.org!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Configurable Run Time without GPR Tools Date: Tue, 5 Nov 2019 09:28:49 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <81aba060-6f05-4a6d-a7cb-b896d7f70112@googlegroups.com> NNTP-Posting-Host: fn3LatRFkm9/xzEj7F2/NQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: en-US Xref: reader01.eternal-september.org comp.lang.ada:57479 Date: 2019-11-05T09:28:49+01:00 List-Id: On 2019-11-05 06:47, Daniel Way wrote: > I'm trying to write a motor control application running on an ARM Cortex-M0+. I've installed GNAT CE 2019 targeting arm-eabi and I can compile various test programs using the -I switch to specify a system.ads file. > > To create an executable, I believe I will need an installed run time, but I find the way these are handled in GNAT to be confusing. I'd like to package all library sources in a project subfolder to make sharing everything easier, however, the deeply nested library structure that comes with GNAT is overwhelming. Why? You need not to care about these libraries. > - I'd like to know how others prefer to package the library with application code Your third-party libraries you can place anywhere. It is not a good idea to mix them with the libraries that come with the cross-compiler tool chain. In out project we keep and maintain them separate, because the former come updated with the compiler wavefronts and the latter with our tinkering on the target. These are two completely independent cycles. > - are the GPR tools absolutely necessary for building a run time, or is there another way to compile standard library packages? They are not necessary. You can use gnatmake or even just gcc and gnatbind etc. Yet gprbuild saves a huge amount of time and work, especially for large projects. It is also quite powerful and safe when it comes to multiple targets within same project. It really pays off to learn it a bit. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de