make

make automatiseert het bouwproces van software — voert commando's uit op basis van een Makefile.

Basisgebruik

make              # Standaard doel uitvoeren
make install      # Doel 'install' uitvoeren
make clean        # Bouwbestanden opruimen
make -j4          # Parallel met 4 threads

Makefile-structuur

doel: afhankelijkheden
	commando

app: main.o utils.o
	gcc -o app main.o utils.o

main.o: main.c
	gcc -c main.c

clean:
	rm -f *.o app

Let op: het inspringen moet met een tab, niet spaties.

Veelgebruikte opties

OptieBetekenis
-j nParallel uitvoeren met n threads
-C mapVoer make uit in andere map
-f bestandAnder Makefile-bestand gebruiken
-nDroogloop — toon wat er zou gebeuren
-BAlles opnieuw bouwen

Klassieke installatieprocedure

./configure
make -j$(nproc)
sudo make install

Make als taakrunner

make wordt ook gebruikt buiten C/C++ als algemene taakautomatisering:

test:
	pytest tests/

lint:
	ruff check .

deploy:
	rsync -av dist/ server:/var/www/

Tip

make -j$(nproc) benut alle CPU-kernen voor compilatie — maakt grote projecten aanzienlijk sneller.

ontwikkelingautomatisering