summaryrefslogtreecommitdiffstats
path: root/04_exercise/Makefile
blob: 064ec4b77a56a0d656e9734e8d5f38f5e06eacaa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/make
.SUFFIXES:
.PHONY: all run pack clean

SRC = $(wildcard *.c)
OBJ = $(SRC:%.c=%.o)
TAR = threadpool
PCK = lab-4.zip

CFLAGS = -std=gnu11 -c -g -Os -Wall -MMD -MP
LFLAGS = -pthread

DEP = $(OBJ:%.o=%.d)
-include $(DEP)

%.o: %.c
	$(CC) $(CFLAGS) $< -o $@

$(TAR): $(filter-out quicksort.o,$(OBJ))
	$(CC) $(LFLAGS) -o $@ $^

all: $(TAR)

bench: $(filter-out main.o,$(OBJ))
	$(CC) $(LFLAGS) -o $@ $^

run: all
	./$(TAR)

pack: clean
	zip $(PCK) $(SRC) $(wildcard *.h) $(wildcard *.pdf) $(wildcard *.txt) Makefile

clean:
	$(RM) $(RMFILES) $(OBJ) $(TAR) bench $(DEP) $(PCK)