Autoværktøjer
Autotools ( MFA [ ˈ ɔ ː t ə ʊ t u ː l z ]; fra engelsk - " autotools ") er GNU - projektbygningssystemet , et sæt softwareværktøjer designet til at understøtte portabilitet af programkildekode mellem UNIX-lignende systemer [ 1] .
Portering af kode fra et system til et andet kan være en skræmmende opgave. Forskellige implementeringer af C-kompileren kan variere betydeligt: nogle sprogfunktioner kan mangle, have et andet navn eller være i forskellige biblioteker. Programmøren kan løse dette problem ved at bruge makroer og præprocessor-direktiver, for eksempel #ifog #ifdefandre. Men i dette tilfælde skal brugeren, der kompilerer programmet på sit system, definere alle disse makroer, hvilket ikke er så nemt, da der er mange forskellige distributioner og systemvariationer. Autoværktøjer kaldes af en række kommandoer ./configure && make && make installog løser disse problemer automatisk.
GNU Autotools byggesystem er en del af GNU værktøjskæden og er meget brugt i mange open source projekter . Byggeværktøjerne distribueres under GNU General Public License og kan bruges i kommercielle projekter [2] [3] .
Komponenter af GNU Autotools
Byggeværktøjerne inkluderer Autoconf , Automake og Libtool [4] . Andre værktøjer, der bruges med GNU Autotools, er make , gettext , pkg-config og selvfølgelig GCC og binutils .
GNU Autoconf
Autoconf læser filen configure.ac(eller en ældre configure.in[5] ) og genererer et konfigurationsscript kaldet configure. Autoconf bruger GNU-implementeringen af m4 -makrosproget til at behandle filer .
Det genererede konfigurationsscript køres af brugeren. Scriptet læser filer med filtypenavnet " " .inf.eks Makefile.in. behandler dem (finder ud af alle funktionerne i systemet) og får det endelige resultat - Makefile.
Autoconf bruger nogle hjælpeprogrammer, der er skrevet for at gøre tingene lettere. For eksempel arbejder Autoheader med header-filer , autoscan undersøger koden for typiske portabilitetsproblemer og opretter initialen configure.ac.
GNU Automake
Automake læser filerne Makefile.amog opretter en bærbar Makefile, dvs. Makefile.in, som derefter, efter at være blevet behandlet af konfigurationsscriptet, bliver og bruges af makeMakefile -værktøjet .
GNU libtool
Libtool styrer oprettelsen af statiske og dynamiske biblioteker på forskellige UNIX-lignende operativsystemer.
Gnulib
Gnulib forenkler processen med at skabe bærbare programmer ved hjælp af Autoconf og Automake.
Begrænsninger af GNU byggeværktøjer
Byggeværktøjerne bruger sh- scripts til tilpasning på byggetidspunktet.
Byggeværktøjerne kan bruges både til at skabe programmer til den samme arkitektur, som der bygges på, og til at krydskompilere til en anden arkitektur. [1] . Det er også muligt at konfigurere en build til at kompilere på Windows ved hjælp af MinGW eller ved at installere Cygwin eller MSYS oven på Windows for at give det nødvendige niveau af kompatibilitet til at køre konfigurationsscriptet.
Byggeværktøjerne og opsætningsscriptet har en tendens til at være langsomme, fordi de kalder forskellige programmer, såsom C-kompileren, mange gange for at kontrollere tilstedeværelsen af forskellige biblioteker, header-filer og sprogfunktioner.
Se også
Fodnoter
- ↑ GNU Build System dokumentation . Dato for adgang: 9. januar 2011. Arkiveret fra originalen 23. december 2010.
- ↑ Undtagelse af Autoconf-licens . Hentet 6. november 2010. Arkiveret fra originalen 21. juli 2011.
- ↑ libtool HACKING Arkiveret 21. juli 2011 på Wayback Machine inklusive alle relevante licensundtagelser
- ↑ At lære GNU-udviklingsværktøjerne: Forord . Hentet 6. november 2010. Arkiveret fra originalen 1. december 2010.
- ↑ "Skriver configure.ac" . Hentet 6. november 2010. Arkiveret fra originalen 25. december 2010.
Eksterne links
- GNU-konfigurations- og byggesystemet Arkiveret 28. august 2007 på Wayback Machine
- Pkg -config Arkiveret 21. august 2008 på Wayback Machine -pakken
- automake manual
- GNU automake dokumentation Arkiveret 3. december 2010 på Wayback Machine
- GNU autoconf dokumentation (russisk)
- Autotools Tutorial Arkiveret 27. december 2010 på Wayback Machine
- GNU Autoconf, Automake og Libtool Arkiveret 20. december 2010 på Wayback Machine
- Autoværktøjer: en praktiserende guide til Autoconf , Automake og Libtool
- En serie artikler om GNU Autotools (russisk)
- Brug af GNU Autotools. Oprettelse af dit konfigurationsscript og makefil Arkiveret 22. marts 2018 på Wayback Machine (russisk)
- Gedebog Arkiveret 15. april 2017 på Wayback Machine
- Autotools Mythbuster (CreativeCommons-licens Attribution-NonCommercial-ShareAlike 3.0 Unported) Arkiveret 11. juni 2017 på Wayback Machine