Ero sivun ”GNU build system” versioiden välillä

Siirry navigaatioon Siirry hakuun
Teksturi (keskustelu | muokkaukset)
p ==Aiheesta muualla==
p ja luo
 
(13 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Autotools on [[GNU]]-projektin laajalti käytetty ja tuettu työkalupaketti ohjelmien kääntämiseen ja siihen liittyviin toimenpiteisiin.
{{Ohjelma
| nimi          = GNU build system (Autotools)
| logo          =
| kuva          =
| kuvateksti    =
| tekijä        =
| kehittäjä      = GNU Project
| moottori      = [[make]]
| ensijulkaisu  = 1990-luvun alku
| vakaaversio    =
| vakaapvm      =
| kehitysversio  =
| kehityspvm    =
| ohjelmoitu    = [[Shell]], [[Perl]]
| käyttöliittymä = Komentorivi (CLI)
| tyyppi        = Rakennusjärjestelmäkokonaisuus (Build System Suite)
| lisenssi      = [[GNU GPL]]
| kotisivu      = [https://www.gnu.org/software/autoconf/ gnu.org/software/autoconf/]
| lähdekoodi    =
}}


Autotools-paketin osia ovat
'''GNU build system''' (tunnetaan myös nimellä''' Autotools''') on [[GNU]]-projektin laajalti käytetty ja tuettu työkalupaketti ohjelmien kääntämiseen ja siihen liittyviin toimenpiteisiin.
*[[Autoconf]]
 
*[[Automake]]
== GNU Build System (Autotools) ==
*[[Autoreconf]]
Autotools on kokoelma ohjelmointityökaluja, jotka on suunniteltu helpottamaan lähdekoodin kääntämistä ja asentamista eri alustoille. Sen ensisijainen tavoite on tehdä ohjelmistoprojekteista siirrettäviä (portable) siten, että käyttäjän tarvitsee vain suorittaa tutut kolme vaihetta:
*[[Aclocal]]
 
./configure
 
make
 
make install
 
== Työkalupaketin osa-alueet ==
GNU Build System koostuu useista erillisistä työkaluista, jotka toimivat yhdessä luodakseen siirrettävyyden mahdollistavat rakennustiedostot:
{| class="wikitable"
|+ GNU build system-paketin osia ovat
|-
! Työkalu !! Kuvaus !! Rooli
|-
| [[Autoconf]] || Luo skriptin nimeltä configure || Tarkistaa alustan ominaisuudet. Etsii järjestelmästä tarvittavat kirjastot, otsikkotiedostot ja ohjelmat.
|-
| [[Automake]] || Luo kannettavan Makefile.in-tiedoston Makefile.am-syötetiedostosta. || Luo kääntämiseen tarvittavat Make-tiedostot. Määrittää säännöt lähdekoodin kääntämiselle.
|-
| [[Aclocal]] || Auttaa luomaan aclocal.m4-tiedoston, joka sisältää Autoconf-makroja ulkoisille ohjelmille ja kirjastoille. || Makrojen kerääminen (auttaa erityisesti, kun projekti tarvitsee kolmannen osapuolen kirjastoja).
|-
| [[Libtool]] || Skripti, joka helpottaa siirrettävien kirjastojen (jaettujen/dynaamisten kirjastojen) luomista eri järjestelmissä. || SSiirrettävien kirjastojen luominen (käsittelee eroja DLL:ien ja SO-tiedostojen välillä eri alustoilla).
|-
| [[Autoreconf]] || Ajaa kaikki edellä mainitut työkalut (Autoconf, Automake, Aclocal) automaattisesti oikeassa järjestyksessä. || Kätevöittää kehittäjän työnkulkua luomalla tarvittavat konfiguraatiotiedostot projektin juuresta.
|-
| [[make]] || Ei ole osa Autotools-pakettia, mutta on välttämätön rakennustyökalu. || Suorittaa varsinaisen käännösprosessin käyttämällä Automaken luomia sääntöjä.
|}
 
== Työnkulku ==
Autotoolsin työnkulku voidaan jakaa selkeästi kahteen vaiheeseen: kehittäjän työhön, jolla luodaan jakeluvalmis lähdepaketti ja loppukäyttäjän työhön, jolla paketti käännetään omassa ympäristössä.
* '''1. Kehittäjän työ:''' Kehittäjä kirjoittaa lähdekoodin lisäksi ''configure.ac'' (Autoconfille) ja ''Makefile.am'' (Automakelle) tiedostot, joista Autotools luo lopulliset lähdejulkaisun tiedostot (esim. configure-skripti, Makefile.in-tiedostot), jotka jaetaan loppukäyttäjille.
* '''2. Loppukäyttäjän työ:''' Loppukäyttäjä suorittaa yksinkertaisen kolmen vaiheen prosessin, joka käyttää Autotoolsin generoimia skriptejä:
 
./configure    # Suorittaa järjestelmätestit Autoconf-skriptillä ja luo lopullisen Makefile-tiedoston lähdejärjestelmän mukaan.
make            # Kääntää lähdekoodin
make install    # Asentaa ohjelman


==Katso myös==
==Katso myös==
*[[Kääntäminen]]
*[[GCC]]
*[[GCC]]
*[[Make]]
*[[Make]]
*[[SCons]]


==Aiheesta muualla==
==Aiheesta muualla==
*[[wikipedia:autotools|Autotools englanninkielisessä Wikipediassa]]
*[[wikipedia:GNU build system|GNU build system englanninkielisessä Wikipediassa]]


{{GNU build system}}
[[Luokka:Kehitystyökalut]]
[[Luokka:Kehitystyökalut]]