-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
69 lines (55 loc) · 1.63 KB
/
makefile
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Compilatore da usare
CC = gcc
# Aggiungo alcuni flags di compilazione
CFLAGS += -std=c99 -Wall -pedantic -g -D_DEFAULT_SOURCE
# Directory includes
INCL_DIR = ./includes
# Flag inclusione
INCLUDES = -I ${INCL_DIR}
# Libreria per compilazione
LIBS = -pthread
# OBJECTS DEPENDENCIES
FARM_OBJS = objs/MasterWorker.o objs/Master.o objs/Worker.o objs/Collector.o objs/threadpool.o objs/list.o
GENERAFILE_OBJ = objs/generafile.o
# BIN
FARM_BIN = farm
GENERAFILE_BIN = generafile
# TARGETS
TARGETS = $(FARM_BIN) \
$(GENERAFILE_BIN) \
# PHONY
.PHONY: all test cleantest cleanall
.SUFFIXES: .c .h
# Regola di default
all : $(TARGETS)
# Eseguibile farm
${FARM_BIN}: $(FARM_OBJS)
$(CC) $(CFLAGS) $(INCLUDES) $(LDFLAGS) -o $@ $(FARM_OBJS) $(LIBS)
# Eseguibile generafile
${GENERAFILE_BIN}: $(GENERAFILE_OBJ)
$(CC) $(CFLAGS) -o $@ $(GENERAFILE_OBJ)
objs/generafile.o: src/test/generafile.c
$(CC) $(CFLAGS) $< -c -fPIC -o $@
objs/%.o: src/strutture/%.c $(INCL_DIR)/%.h
$(CC) $(CFLAGS) $(INCLUDES) $< -c -fPIC -o $@
objs/%.o: src/masterworker/%.c $(INCL_DIR)/%.h
$(CC) $(CFLAGS) $(INCLUDES) $< -c -fPIC -o $@
objs/%.o: src/collector/%.c $(INCL_DIR)/%.h
$(CC) $(CFLAGS) $(INCLUDES) $< -c -fPIC -o $@
# Esecuzione dello script per testare
test:
bash test.sh
# Per rimuovere i file generati dal test
cleantest:
rm -f -r file*
rm -f -r testdir
rm -f -r expected.txt
# Per rimuovere tutti gli eseguibili e gli oggetti
cleanall:
rm -f -r farm
rm -f -r objs/*.o
rm -f -r collector
rm -f -r generafile
rm -f -r file*
rm -f -r testdir
rm -f -r expected.txt