make, makefile og mkmf er hjælpeprogrammer til software-udvikling, som er tilgængelig på alle maskiner.
Kort beskrivelse:
make er et program, som holder styr på hvilke filer som (ikke) er oversat i et større programkomplex.
Makefile er en hjælpefile til make, hvor det er defineret hvilke filer, som er er afhængige af hinanden. Makefile'en bliver som regel genereret vha programmet mkmf. Mkmf står for make-makefile.
Eksempel på programafvikling: Det følgende eksempel viser brugen af make. fil_1.c includerer <math.h>, mens fil_2.c og fil_3.c inkluderer myheader.h. Desuden skal det hele linkes sammen med imsl-biblioteket.
vip:/usv2/nn $ mkdir prgk <CR> vip:/usv2/nn $ mv fil_1.c fil_2.c fil_3.c myheader.h prgk <CR> vip:/usv2/nn $ cd prgk <CR>
vip:/usv2/nn $ mkmf <CR>
mkmf undersøger filerne i kataloget og afgør, hvorledes de er afhængige af hinanden. Afhængighed vil i dette tilfælde bl.a. sige at fil_2.c og fil_3.c skal oversættes på ny hvis man retter i myheader.h.
-limslib -lm
i den linje hvor der står ''LDFLAGS = ''.
Desuden kan man fx tilføje -O i den linje med CFLAGS = , og rette a.out til noget andet i linjen med PROGRAM = . Hvis hovedprogrammet er skrevet i pascal skal man rette LD = cc til LD = pc og tilsvarende for fortran LD = fc.
vip:/usv2/nn $ make <CR>
Hvis man nu retter i en af filerne og derefter skriver make, vil kun denne fil og alle de filer, som er afhængige af den, blive oversat til objektkode igen, og derefter bliver de linket sammen med de andre objektfiler.
I en Makefile er der mange muligheder for at få udført forskellige ting, f.eks.
make, mkmf og Makefile anvendes også sammen med pascal og fortran programmer.