Return to BSD News archive
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.mira.net.au!news.vbc.net!alpha.sky.net!winternet.com!mr.net!newshub.tc.umn.edu!spool.mu.edu!howland.reston.ans.net!agate!agate!usenet From: hodges@plato.ds.boeing.com (Bill Hodges) Newsgroups: comp.unix.bsd.netbsd.announce Subject: Announcing GNAT-3.03 (Object Oriented Ada95) to NetBSD Followup-To: poster Date: 27 Apr 1996 13:05:05 -0700 Organization: University of California, Berkeley Lines: 303 Sender: cgd@agate.berkeley.edu Approved: netbsd-announce-request@agate.berkeley.edu Message-ID: <9604260340.AA13428@plato.ds.boeing.com> NNTP-Posting-Host: agate.berkeley.edu Status: RO Gnat-3.03 for NetBSD-1.1/i386 Jesus M. Gonzalez Barahona jgb@gsyc.inf.uc3m.es April 24, 1996 1 What's this stuff This is the README file for the port of GNAT to NetBSD-1.1/i386. GNAT is an Ada front-end for GCC, which supports the Ada95 standard. The binary package for NetBSD is in fact and Ada and C compiler, based on gcc-2.7.2. Important note: This is not a `supported version' built by the GNAT core team. So, any noise relating to the port should be addressed directly to the `porter' _see title for e-mail address. Beggining with port of gnat-3.03, NetBSD does also have Ada tasking, based in MIT (Provenzano's) pthreads. It has been tested, and most things work. There are some bugs, though. If you want to help to find them, just drop me a line. This file tells you: - Section 2: How to install the binary package for NetBSD (and where to get it). - Section 4: How this port has been made, compiling the GNAT source. - Section 3: Where to look for documentation. I just hope you find it useful... 2 Installing gnat-3.03 from binaries This is for binaries of gnat-3.03 for NetBSD/i386-1.1. You can get the tared, compressed file from: - ftp://cs.nyu.edu /pub/gnat/gnat-3.03-i386-unknown-netbsd1.1.tar.gz - ftp://ftp.gsyc.inf.uc3m.es/ pub/NetBSD/ports/gnat-3.03-i386-unknown-netbsd1.1.tar.gz The following recipe assumes you have the tar.gz file as /mix/share/distrib/gnat/gnat- 3.03-i386-unknown-netbsd1.0.tar.gz ). 1. cd / 2. tar xvzf /mix/share/distrib/gnat/gnat-3.03-i386-unknown-netbsd1.1.tar.gz Once you have done that, you have gnat installed. Now, before using it, you have to set paths and the like. To do so, just source the proper env-vals (from a csh): 1 % source /usr/local/install/gnat-3.03/env-vals If you want to install gnat in other place, different from /usr/local/install/gnat-3.03, you'll have to figure out how to set a proper env-vals. Have a look at the one provided. 3 Where to find documentation Try out the doc directory in the binary distribution. There you can find: - gnatinfo.txt: How to use gnat, and some rationale about it. - gnatdoc1.ps: Well, the name says almost everything: : : - features: What does current version of gnat do. You can also browse ftp://cs.nyu.edu/pub/gnat, where there is info not only about Gnat use and development, but also about Ada95 and related topics. A lot of info about Ada is also available on the Web. Try out http://lglwww.epfl.ch/Ada. 4 Building up the thing from sources 4.1 Tools and sources These is where you can get the tools and sources mentioned here: - gnat-3.01 for NetBSD from ftp://ftp.gsyc.inf.uc3m.es/pub/NetBSD/ports/gnat- 3.01-i386-netbsd1.0.tar.gz - gnat-3.03 sources from ftp://cs.nyu.edu/pub/gnat/gnat-3.03-src.tar.gz - Patches for gnat-3.03 to compile in NetBSD-1.1/i386 from ftp://ftp.gsyc.inf.uc3m.es/pub/NetBS* *D/ports/gnat- 3.03-src-netbsd.dif - gcc-2.7.2 from ftp://prep.ai.mit.edu/pub/gnu/gcc-2.7.2.tar.gz - pthreads-1_60_beta5 for NetBSD from ftp://ftp.gsyc.inf.uc3m.es/pub/NetBSD/ports/pthreads-1_60* *_beta5-i386-unknown-netbsd1.1.tar.gz - GNU make from ftp://prep.ai.mit.edu/pub/gnu/make 2 4.2 Building the whole thing First of all, I install gnat-3.01, and set up some variables. If you have the various packages isntalled in other dirs, just setup the proper variables fo ryour evironment: setenv GCC gcc-2.7.2 setenv OLD_GNAT gnat-3.01 setenv NEW_GNAT gnat-3.03 setenv NEW_GNAT_VERS $NEW_GNAT setenv DIR_TEST /usr/local/test/gnat setenv DIR_INSTALL /usr/local/install setenv DIR_DISTRIB /mix/share/distrib/gnat setenv OLD_GNAT_INSTALL $DIR_INSTALL/$OLD_GNAT setenv NEW_GNAT_INSTALL $DIR_INSTALL/$NEW_GNAT_VERS setenv NEW_GNAT_TEST $DIR_TEST/$NEW_GNAT_VERS setenv NEW_GNAT_SRC $DIR_TEST/$NEW_GNAT-src setenv NEW_GCC_DISTRIB " $DIR_DISTRIB/$GCC.tar.gz setenv NEW_GNAT_DISTRIB " $DIR_DISTRIB/$NEW_GNAT/$NEW_GNAT-src.tar.gz setenv NEW_GNAT_PKG /usr/local/test/pkg_dir/$NEW_GNAT_VERS source $OLD_GNAT_INSTALL/env-vals setenv LOG_FILE /var/tmp/$NEW_GNAT.log unlimit setenv PTHREADS pthreads-1_60_beta5 Also, it is assumed that you can call the "pthreaded" gcc as "pgcc" (that is, it's called "pgcc" and it in your path). I untar both GCCandNEW_GNAT: mkdir $NEW_GNAT_PKG mkdir $DIR_TEST cd $DIR_TEST tar xvzf $NEW_GCC_DISTRIB >>&! $LOG_FILE mv $GCC $NEW_GNAT_VERS tar xvzf $NEW_GNAT_DISTRIB >>&! $LOG_FILE patch -p0 < $DIR_DISTRIB/gnat-3.03-src-netbsd.dif cd $NEW_GNAT_TEST patch -N -p0 < $NEW_GNAT_SRC/src/gcc-272.dif Then, I copy the ada directory of $NEW_GNAT into the gcc distribution, and touch some files: cp -rf $NEW_GNAT_SRC/src/ada $NEW_GNAT_TEST/ cd $NEW_GNAT_TEST/ada touch treeprs.ads a-[es]info.h nmake.ad[bs] Now, configure and make: 3 cd $NEW_GNAT_TEST ./configure --prefix=$NEW_GNAT_INSTALL " --target=i386-unknown-netbsd1.1 --host=i386-unknown-netbsd1.1 make CC=gcc LANGUAGES="c ada" >>&! $LOG_FILE make CC=gcc gnatboot >>&! $LOG_FILE make CC=gcc gnatlib_and_tools >>&! $LOG_FILE mkdir $NEW_GNAT_INSTALL make CC=gcc LANGUAGES="c ada" install >>&! $LOG_FILE Let's put some useful files in the install directory (GNU's make-3.70, a proper gcc, a file for helping with configuration, etc.): cp ./xgcc $NEW_GNAT_INSTALL/bin/gcc cp $OLD_GNAT_INSTALL/bin/make $NEW_GNAT_INSTALL/bin/make cat >! $NEW_GNAT_INSTALL/env-vals # to be run from a csh as "source env-vals" before using GNAT # unlimit setenv PATH /usr/local/install/gnat-3.03/bin:$PATH setenv GCC_EXEC_PREFIX /usr/local/install/gnat-3.03/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2/ setenv ADA_INCLUDE_PATH /usr/local/install/gnat-3.03/adainclude setenv ADA_OBJECTS_PATH /usr/local/install/gnat-3.03/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2/ada* *lib setenv LIBRARY_PATH /usr/local/install/gnat-3.03/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2/adalib setenv C_INCLUDE_PATH /usr/local/install/gnat-3.03/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2/inclu* *de ^D We need a proper version of pthread library: cp $DIR_INSTALL/$PTHREADS/lib/libpthread.a $NEW_GNAT_INSTALL/lib/gcc-lib/i386-unknown-netbsd1.1/2* *.7.2/adalib/libpthread.a Also, let's make leaner software cd $NEW_GNAT_INSTALL/bin strip gcc gnatbind gnatbl gnatchp gnatf gnatk8 gnatmake cd $NEW_GNAT_INSTALL/lib/gcc-lib/i386-unknown-netbsd1.1/2.7.2 strip cc1 cpp gnat1 I also copy some examples: mkdir $NEW_GNAT_INSTALL/examples cp $NEW_GNAT_SRC/examples/* $NEW_GNAT_INSTALL/examples And some documentation: cd $NEW_GNAT_PKG/doc dvi2tty -w100 -o gnat-3.03-i386-unknown-netbsd1.1-README " gnat-3.03-i386-unknown-netbsd1.1-README.dvi dvips -t a4 -O 0cm,0cm -o gnat-3.03-i386-unknown-netbsd1.1-README.ps " gnat-3.03-i386-unknown-netbsd1.1-README.dvi mkdir $NEW_GNAT_INSTALL/doc cp $NEW_GNAT_PKG/doc/gnat-3.03-i386-unknown-netbsd1.1-README.ps " $NEW_GNAT_INSTALL/doc 4 cp $NEW_GNAT_PKG/doc/gnat-3.03-i386-unknown-netbsd1.1-README " $NEW_GNAT_INSTALL/doc cp $NEW_GNAT_PKG/doc/gnat-3.03-i386-unknown-netbsd1.1-README.dvi " $NEW_GNAT_INSTALL/doc cp $NEW_GNAT_SRC/gnatdoc1.tex $NEW_GNAT_INSTALL/doc cp $NEW_GNAT_SRC/gnatinfo.txt $NEW_GNAT_INSTALL/doc cp $NEW_GNAT_SRC/features $NEW_GNAT_INSTALL/doc And let's package everithing together: cd $NEW_GNAT_PKG tar -C /usr/local/install -cvzf " $NEW_GNAT_PKG/$NEW_GNAT-i386-unknown-netbsd1.1.tar.gz $NEW_GNAT/ 5 5 Comments, etc. If you have any coment, question, etc. about the port of gnat to NetBSD- 1.1/i386, please let me know. My address is in the title of this file. 6