AROS ohjelmien kääntö Linux-ympäristössä

Esittely

Jutussa kerrotaan ainoastaan i386-AROS ohjelmien luonnista x86 Linux:lla ja oletetaan että perus UNIX-komennot ovat tuttuja. Ensin käännetään pieni hello-aros ohjelma ja jälkimmäisenä Zune/MUI ohjelma zune-hello.

Linux testiympäristön pystyttäminen

Helpoimmalla pääsee kun asentaa ensin i386-linux-system paketin. Sillä voi käyttää AROS ohjelmia x86 Linux:n päällä. Edellä mainittu paketti löytyy AROS:in download osiosta. Asenna paketti johonkin hyvään paikkaan esimerkiksi koti hakemistoon ja testaa että se toimii. Ohjeet aseentamiseen löytyvät AROS:n kotisivuilta suomeksi.

Debian Sargea käyttäessäni ongelmia ilmaantui i386-linux-system:n ja XFree86:n kanssa koska Sarge:n X11:stä ei löytynyt tarvittavia kirjastoja. Olen siirtynyt XOrg:ia käyttävään Ubuntu Dapper:iin, eikä vastaavaa ongelmaa enää ole. Ongelmaan olisi voinut löytyä helppokin ratkaisu, mutta en jaksanut paneutua asiaan sen kummemmin.

AROS kääntäjän asentaminen

Linux:iin pitää olla asennettuna gcc ja binutils, jotka tuottavat i386-elf tiedostoja. Varsinaista kääntäjää siis ei tarvitse edes asentaa, kun kääntö tapahtuu Linux:n natiivilla kääntäjällä script:n avulla. Eli seuraavaksi kun puhutaan AROS-kääntäjästä puhutaan oikeasti scripteistä jotka hoitavat AROS:n hienoudet. Jos haluaa tuottaa esimerkiksi i386-aros binäärejä PowerPC:llä tarvitsee rakentaa PPC:lle ensin x86 ristiinkääntö ympäristö. Ja sitten asentaa AROS-SDK, jolle antaa cross-compiler:n kääntäjäksi.

AROS-Kääntäjään tarvitaan paketti i386-all-sdk AROS:n download osiosta. Kannattaa valita itselleen sopivin paketti. En tiedä onko vaihtoehdoilla mitään eroa. Pura se ja siirry purettuun hakemistoon ja aja asennnus komennolla ./AROS-SDK-Install.

Kääntäjän testaus

Vasta asennettu kääntäjä toimii siis Linux:n puolelta, eikä AROS:sta. Kannattaa muistaa pistää PATH ympäristömuuttuja kuntoon.

Loin hello-aros.c ohjelman, jolla ensin testasin kääntämistä. Käänsin ohjelman Linux:n konsolissa komennolla i386-aros-gcc -o hello-aros hello-aros.c ja siirsin hello-aros ohjelman samaan hakemistoon kuin Linux-host:ed aros. käynnistin AROS:in ja tuplaklikkasin juuri kääntämääni ohjelmaa ja siinä se oli, Hello AROS!! tulostui AROS:n avaamaan ikkunaan.

Zune/MUI ohjelman kääntö

Yksinkertaisen ohjelman käännön jälkeen tuli mieleeni, että voisin kääntää jotain Amigamaisempaa tavaraa. Voisin vaikka avata jonkin oman ikkunan ja sulkea sen. Päädyin ZUNE/MUI-sovellukseen.

Siitä on kauan aikaa kun olen yhdenkään MUI-ohjelman sorsiin koskenut joten ajattelin etsiä sopivan esimerkin. Sopiva testiohjelma löytyi tietenkin AROS-projektin sivulta ja vieläpä suomennettuna. Zune ohjelmistokehitysopas. Kopioin esimerkkiohjelman sinällään ja koitin kääntää sitä.

Ohjelman kääntö ei tietenkään onnistunut heti käyttäen komentoa i386-aros-gcc zune-test.c -lmui. Seuraavassa listassa olevat asiat korjaavat asian.

Tietenkin jos tietää tarvitsevansa zune/mui ja intuition kirjastoja koko ajan helpommin käy kun lisää ne muiden joukkoon specs-tiedostoon, joka löytyy i386-aros/lib/gcc-lib/-hakemistosta. Sama pätee muihinkin kirjastoihin.

Erona Amiga-ohjelmointiin on että kirjastojen avaamista ja sulkemista ei tarvitse toteuttaa. Kääntäjien kanssa on aina jonkinlaisia ongelmia ja eroavaisuuksia.

Asiat helpommaksi Make:lla

Aina on helpompaa kääntää asiat make:lla, joten tässä simppeli Makefile. Jos kaikki on ihan ok, niin ohjelmien kääntö käy käskyllä make, pelkkä hello-aros komennolla make hello-aros ja pelkkä zune-hello komennolla make zune-hello. Hakemiston siivous käy komennolla make clean. Makefile:ssä $^ ottaa edelliseltä riviltä ennen :-merkkiä olevat ja $@ kyseisen merkin jälkeen tulevat sanat.

Käytettävyys

Mielestäni systeemi toimi hyvin ja kelpaa varmasti ainakin ohjelmien testaukseen. En ole vielä ehtinyt testaamaan tuotosten toimivuutta natiivissa AROS-ympäristössä, mutta uskoisin että se ei muuta asiaa mitenkään.

Linkit


Joni dot Valtanen at kapsi dot fi
Last modified: Mon Jul 3 08:34:16 EEST 2006