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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,df13d4f4aa9842dc X-Google-Attributes: gid103376,public From: victor.giddings@ois.com (Victor Giddings) Subject: Re: Green Hills Ada library question Date: 1998/09/29 Message-ID: #1/1 X-Deja-AN: 396199180 References: <6tjgph$661$1@nnrp1.dejanews.com> <6tlrfh$udi$1@nnrp1.dejanews.com> X-Complaints-To: newsabuse@supernews.com X-Trace: 907122485 VRL06/YYI57C2CF20C usenet58.supernews.com Organization: Objective Interface Systems Newsgroups: comp.lang.ada Date: 1998-09-29T00:00:00+00:00 List-Id: In article <6tlrfh$udi$1@nnrp1.dejanews.com>, dennison@telepath.com wrote: > In article , > stt@houdini.camb.inmet.com (Tucker Taft) wrote: > > dennison@telepath.com wrote: > > > > : Green Hills tech support claims their system has no automatic build process, > > : and I will have to go into their IDE and *manually* add all 371 files to a > > : build file. That file will also have to be *manually* maintained. (Can you > > : say "error prone"?). > > > > Is the feature that is missing a directory-oriented build, > > as opposed to a file-oriented build? It is a little unclear > > what you mean by "manual" add/maintain. Presumably you will > > "manually" need to identify the directories of interest in any system. > > Yes, you could call it that. I have no problem listing directories. I just > don't want to have to list all 371 files! > > Every other compiler system I have worked with had one command, or more > typically a combination of two, that could be used to compile an entire > system from scratch without having to type in every unit or source file. For > Aonix it would be "adareg -all" followed by "adamake". For gnat I believe one > "gnatmake" does the trick (assuming everything is named properly). > > On large projects maintaining an Ada library by manual processes is not > acceptable. With an error here and there it quickly becomes a mess. An > automatic system build process, particularly something that can be run batch, > is required. > > With the tools that I have with AdaMulti, I can't do it. It looks like I have > to do one of two things: > > o Use "adareg -all" to register all files with the library. Then do an > "adaopts -l -s" to list every file it found. Then invoke the compiler once on > *each* source file listed. > > o Start up the GUI and create a new "build file". Then manually add each and > every file with the mouse. Right now for us that amounts to 371 source files > in 42 directories (but this is just our prototype!). Then invoke the AdaMulti > builder. BTW, the GUI "add" field accepts wild cards. > > Neither activity sounds like much fun to do once, let alone once a day. If > anyone out there disagrees, contact me. We may just have an opening for you. > Of course you'd have to sign a carpel-tunnel waiver. :-) > > Our only recourse seems to be to use the TCL that came with the AdaMulti to > write a script to perform the manually intensive part for us. I'm not afraid > to do that, just shocked that I have to. I must have missed something. > > -- > T.E.D. > > -----== Posted via Deja News, The Leader in Internet Discussion ==----- > http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum We have found it relatively easy to build the "build file" from a shell script (actually within a make file). Then it is a matter of using the "build" command or the GUI to make everything. The only trick is to delete the appropriate build file when its membership should change, or to maintain it through the GUI. Admittedly this is suboptimal, however it is relatively obvious when a new file has not been made part of the build, but is withed by a file that is part of the project. For example, here is the ada and default.bld target from one of our Makefiles: ada: default.bld build -ignore ##---------------------------------------------------------------------- default.bld: @echo "#!build" > default.bld; \ echo "default:" >> default.bld; \ echo " nobuild" >> default.bld; \ echo " :debuglevel=multi" >> default.bld; \ echo " :target=$(GHS_TARGET)" >> default.bld; obj_list=`eval 'ls *.ad?'`; \ for obj in $$obj_list; \ do \ echo "$$obj" >> default.bld; \ echo " Ada" >> default.bld; \ done; adareg *.ad? I realize this is not quite you are looking for. -- Victor Giddings vtg@ois.com Objective Interface Systems