Autotools

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. január 27-én felülvizsgált verziótól ; az ellenőrzések 13 szerkesztést igényelnek .

Az Autotools ( MFA [ ˈ ɔ ː t ə ʊ t u ː l z ];  angolul  -  "autotools") a GNU projektépítő rendszere , olyan szoftvereszközök készlete , amelyek célja a programforráskód hordozhatósága UNIX-szerű rendszerek között [ 1 ] .

A kód portolása egyik rendszerről a másikra ijesztő feladat lehet. A C fordító különböző megvalósításai jelentősen eltérhetnek: előfordulhat, hogy egyes nyelvi függvények hiányoznak, más a neve, vagy különböző könyvtárakban találhatók. A programozó megoldhatja ezt a problémát makrók és előfeldolgozó direktívák, például #if, #ifdefés mások segítségével. De ebben az esetben a programot a rendszerén lefordító felhasználónak meg kell határoznia ezeket a makrókat, ami nem is olyan egyszerű, mivel sokféle disztribúció és rendszerváltozat létezik. Az Autotools parancsok sorozata hívja meg, ./configure && make && make installés automatikusan megoldja ezeket a problémákat.

A GNU Autotools build rendszer a GNU eszközlánc része, és széles körben használják számos nyílt forráskódú projektben . A build eszközöket a GNU General Public License alatt terjesztik, és kereskedelmi projektekben használhatók [3] .

A GNU Autotools összetevői

Az összeállító eszközök közé tartozik az Autoconf , az Automake és a Libtool [4] . A GNU Autotools-szal használt egyéb eszközök a make , gettext , pkg-config és természetesen a GCC és a binutils .

Az Autoconf beolvassa a fájlt configure.ac(vagy egy régebbi fájlt configure.in ), és létrehoz egy konfigurációs parancsfájlt configure. Az Autoconf az m4 makrónyelv GNU implementációját használja a fájlok feldolgozásához .

A generált konfigurációs parancsfájlt a felhasználó futtatja. .inA szkript például beolvassa a " " kiterjesztésű fájlokat Makefile.in, feldolgozza azokat (kiderítse a rendszer összes jellemzőjét), és megkapja a végeredményt - Makefile.

Az Autoconf néhány segédprogramot használ, amelyeket azért írtak, hogy megkönnyítsék a dolgokat. Az Autoheader például fejlécfájlokkal működik, az automatikus keresés megvizsgálja a kódot a tipikus hordozhatósági problémák miatt, és létrehozza a kezdeti fájlt configure.ac.

GNU Automake

Az Automake beolvassa a fájlokat Makefile.am, és létrehoz egy hordozható Makefile, azaz hordozható fájlt Makefile.in, amely a konfigurációs parancsfájl általi feldolgozása után a makeMakefile segédprogram lesz, és azt használja .

GNU libtool

A Libtool kezeli a statikus és dinamikus könyvtárak létrehozását különböző UNIX-szerű operációs rendszereken.

Gnulib

A Gnulib leegyszerűsíti a hordozható programok létrehozásának folyamatát az Autoconf és az Automake segítségével.

A GNU build eszközök korlátai

Az összeállítási eszközök sh szkripteket használnak a testreszabáshoz az összeállítás során.

Az összeállítási eszközök egyaránt használhatók programok létrehozására ugyanahhoz az architektúrához, amelyre épül, és keresztfordításra egy másik architektúrához. [1] . Lehetőség van arra is, hogy beállítson egy összeállítást a Windows rendszeren történő fordításhoz a MinGW használatával, vagy a Cygwin vagy az MSYS telepítésével a Windows tetejére, hogy biztosítsa a konfigurációs szkript futtatásához szükséges kompatibilitási szintet .

Az összeállítási eszközök és a beállító szkript általában lassúak, mert sokszor meghívnak különböző programokat, például a C fordítót, hogy ellenőrizze a különféle könyvtárak, fejlécfájlok és nyelvi jellemzők jelenlétét.

Lásd még

Lábjegyzetek

  1. GNU Build System dokumentáció . Hozzáférés dátuma: 2011. január 9. Az eredetiből archiválva : 2010. december 23.
  2. libtool HACKING archiválva 2011. július 21-én a Wayback Machine -nél, beleértve az összes vonatkozó licenc kivételt
  3. A GNU fejlesztői eszközök elsajátítása: Előszó . Letöltve: 2010. november 6. Az eredetiből archiválva : 2010. december 1..

Külső linkek