Linux (for data Scientists)
HOGENT toegepaste
informatica
Thomas Parmentier, Andy Van Maele, Bert Van Vreckem
2024-2025
make
= deel van basis toolset voor
software-ontwikkeling op Unix
doel
: naam v/te creëren bestandbronnen
: naam van bestanden die daarvoor nodig
zijnrecept
: commando(’s) die nodig zijn om
doel
te creëren uit bronnen
@cmd
uitgevoerde commando wordt niet
getoondMakefile
:
hello.c
:
make [DOEL]
make hello
hello
$ make
gcc -o hello hello.c
$ ./hello
Hello World
$ make hello
make: 'hello' is up to date.
Make voert enkel recept uit als bron veranderd is!
(false.c: analoog)
# Makefile
.PHONY: all clean
all: true false
true: true.c booleans.h
gcc -o true true.c
false: false.c booleans.h
gcc -o false false.c
clean:
rm -vf true false
all
make
(zonder
args)true
én false
uitvoerenclean
.PHONY
= geen “echt” recept, moet altijd
uitgevoerd worden# Makefile - part 1
sources := $(wildcard *.c)
objects := $(patsubst %.c,%.o,$(sources))
executables := true false
CC := gcc
CFLAGS := -Wall -O
:=
$(variabele)
wildcard
- lijst v/bestanden die matchen met
globbing-patroon
true.c false.c
patsubsts
- zoeken & vervangen
true.o false.o
%
= “Pattern rule”
%
matcht met true
en
false
$<
= Automatische
variabele
$@
= target van deze regel (hier: true
of
false
)wordt vertaald naar:
$ make mrproper
rm -vf *.o
rm -vf true false
removed 'true'
removed 'false'
$ make all
gcc -Wall -O -c false.c
gcc -Wall -O -o false false.o
gcc -Wall -O -c true.c
gcc -Wall -O -o true true.o
rm false.o true.o
Voeg .SECONDARY:
toe om .o
-bestanden te
bewaren:
Begin Makefile met:
.POSIX
: Makefile werkt beter op andere platformen
.SUFFIXES
: ingebouwde regels (voor C-compilatie)
wissen.PHONY
is een GNU make uitbreiding, werkt misschien
niet op andere platformen