Efter næsten tre års udvikling, GNU Make 4.4 byggesystemet blev frigivet, I denne nye version kan det udover at rette fejl ses, at der er tilføjet forbedringer, samt at kravene til kompileringsmiljøet er blevet øget.
For de af jer, der er nye til GNU Make, bør I vide, at dette er et udviklingsværktøj utrolig populær, der organiserer kompileringen af softwareprojekter. Make bruges ofte til at styre GCC-kompilersættet, men kan bruges til enhver softwareudvikling eller pakkeopgave.
Da oprettelse af store C/C++-programmer ofte involverer flere trin, er et værktøj som Make nødvendig for at sikre, at alle kildefiler er kompileret og sammenkædet. Make giver også udvikleren mulighed for at kontrollere, hvordan understøttende filer, såsom dokumentation, man-sider, systemprofiler, opstartsscripts og konfigurationsskabeloner, pakkes og installeres.
Make er ikke begrænset til sprog som C/C++. Webudviklere kan bruge GNU Make til at udføre gentagne opgaver som minificering af CSS og JS, og systemadministratorer kan automatisere vedligeholdelsesopgaver.
Derudover kan slutbrugere bruge Make til at kompilere og installere software uden at være programmør eller ekspert i den software, de installerer.
De vigtigste nye funktioner i GNU Make 4.4
I denne nye version, der præsenteres, OS/2 (EMX), AmigaOS, Xenix og Cray platforme er blevet forældet, plus understøttelse af disse systemer vil blive fjernet i den næste version af GNU Make.
En anden ændring, der præsenteres i den nye version, er det øgede byggemiljøkrav, for at kompilere GNU Gnulib skal du nu have en compiler, der understøtter elementer fra C99-standarden.
Udover det, et .WAIT build-mål er blevet tilføjet En speciel funktion, der giver dig mulighed for at sætte opbygningen af bestemte mål på pause, indtil opbygningen af andre mål er færdig.
Mens .NOTPARALLEL, muligheden for at specificere forudsætninger er implementeret (filer nødvendige for at oprette målet) for sekventielt at starte de mål, der er knyttet til dem (som om ".WAIT" var blevet indstillet mellem hver forudsætning).
På den anden side blev .NOTINTERMEDIATE tilføjet, hvilket deaktiverer adfærden forbundet med brugen af mellemliggende mål (.INTERMEDIATE) for specifikke filer, filer, der matcher masken, eller hele makefilen.
På systemer, der er kompatible med mkfifo, en ny metode til at interagere med jobserveren under parallel eksekvering er tilvejebragt af job baseret på brugen af navngivne rør, plus muligheden "–jobserver-style=pipe" blev tilføjet for at returnere den gamle metode baseret på unavngivne rør.
Det bemærkes også, at brugen af midlertidige filer i arbejdsprocessen er blevet udvidet (der kan opstå problemer, når byggesystemet indstiller en alternativ mappe til midlertidige filer (TMPDIR) og fjerner indholdet af TMPDIR under kompilering).
Af de andre ændringer der skiller sig ud fra denne nye version:
- Implementerede $(let...)-funktionen, som giver dig mulighed for at definere lokale variabler i brugerdefinerede funktioner.
- Implementerede $(intcmp…)-funktionen til at sammenligne tal.
- Når du bruger "-l" (–load-average) muligheden, tager antallet af job, der skal startes, nu dataene i /proc/loadavg-filen om belastningen på systemet i betragtning.
- Tilføjet "–shuffle"-mulighed for at blande forudsætninger, hvilket tillader ikke-deterministisk adfærd i paralleliserede builds (for eksempel for at fuzz-teste rigtigheden af forudsætningsdefinitionen i en makefil).
Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne I det følgende link.
Hvordan installeres GNU Make på Linux?
For dem der er interesseret i at kunne installere dette værktøj, kan de gøre det ved at køre en af følgende kommandoer:
For dem, der er brugere af Debian/Ubuntu eller en anden afledt af disse:
sudo apt install make
For dem, der er brugere af Fedora/RHEL eller derivater:
yum install make
Mens for dem, der er brugere af Arch Linux og derivater:
sudo pacman -S make