-
Notifications
You must be signed in to change notification settings - Fork 0
/
makefile
76 lines (51 loc) · 1.86 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
70
71
72
73
74
75
76
#******************************************************************************#
#* MACCHINA ASTRATTA *#
#******************************************************************************#
# Directory con eseguibili (targets):
TARGETDIR = bin
# Eseguibili:
MACCHINA_ASTRATTA = ${TARGETDIR}/macchina-astratta
# Targets set
TARGETS = $(MACCHINA_ASTRATTA)
# File di configurazione per doxygen:
DOXYFILE = doxyfile
# Directory con documentazione:
DIRDOC = doc
# Compilatore C++:
CC = g++
# Opzioni compilatore:
CPPFLAGS = -W -Wall
# Comando mkdir con opzioni:
MKDIR = mkdir -p
# Comando rm con opzioni:
RM = rm -rf
#* TARGETS ********************************************************************#
all: $(TARGETS)
$(MACCHINA_ASTRATTA): macchina-astratta.o esecutore.o ProgramArea.o \
GlobalVariablesArea.o ActivationRecord.o
$(MKDIR) $(TARGETDIR)/
$(CC) $(CPPFLAGS) macchina-astratta.o esecutore.o ProgramArea.o \
GlobalVariablesArea.o ActivationRecord.o -o $(MACCHINA_ASTRATTA)
# MACCHINA_ASTRATTA
macchina-astratta.o: macchina-astratta.cc ProgramArea.h GlobalVariablesArea.h \
SystemStack.h ActivationRecord.h
$(CC) $(CPPFLAGS) -c macchina-astratta.cc
# ESECUTORE
esecutore.o: esecutore.cc ProgramArea.h GlobalVariablesArea.h SystemStack.h
$(CC) $(CPPFLAGS) -c esecutore.cc
# PROGRAM_AREA
ProgramArea.o: ProgramArea.h ProgramArea.cc
$(CC) $(CPPFLAGS) -c ProgramArea.cc
# GLOBAL_VARIABLES_AREA
GlobalVariablesArea.o: GlobalVariablesArea.h GlobalVariablesArea.cc
$(CC) $(CPPFLAGS) -c GlobalVariablesArea.cc
# ACTIVATION_RECORD
ActivationRecord.o: ActivationRecord.h ActivationRecord.cc
$(CC) $(CPPFLAGS) -c ActivationRecord.cc
# Documentazione
$(DIRDOC): $(TARGETS)
doxygen $(DOXYFILE)
cd ./$(DIRDOC)/latex/ ; make ;
# Pulisci
clean:
$(RM) *.o $(TARGETS) $(DIRDOC) $(TARGETDIR)