-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (41 loc) · 1.28 KB
/
Makefile
File metadata and controls
59 lines (41 loc) · 1.28 KB
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
CC = gcc
#C flags, test C flags
CFLAGS = -Wall -pedantic -std=c99 -g -Wfatal-errors
TCFLAGS = $(CFLAGS) -Wno-discarded-qualifiers -Ilibs/munit -I$(SDIR) -I$(TSDIR)
#-WError -pedantic
#Source Directory
SDIR = src
#Test source directory
TSDIR = src\testcases
SRC = assembler.c fileIO.c library.c parser.c preprocessor.c tokenizer.c
ODIR = build
OBJ = $(SRC:.c=.o)
EXEC = main validation
.DEFAULT: all
#==== EXECUTABLE FILES ====#
main: $(OBJ)
$(CC) $(SDIR)\main.c -o assembler $(CFLAGS) $(ODIR)/**.o
validation: parser_tests.o
#We discard const qualifiers, so suppress that warning
$(CC) $(SDIR)\validation.c -o validation $(TCFLAGS) $(ODIR)/**.o
#==== VALIDATION TEST OBJECT FILES ====#
parser_tests.o:
$(CC) -c $(TSDIR)\parser_tests.c $(TCFLAGS) -o $(ODIR)/$@
#==== ASSEMBLER OBJECT FILES ====#
assembler.o:
$(CC) -c $(SDIR)\assembler.c $(CFLAGS) -o $(ODIR)/$@
fileIO.o:
$(CC) -c $(SDIR)\fileIO.c $(CFLAGS) -o $(ODIR)/$@
library.o:
$(CC) -c $(SDIR)\library.c $(CFLAGS) -o $(ODIR)/$@
parser.o:
$(CC) -c $(SDIR)\parser.c $(CFLAGS) -o $(ODIR)/$@
preprocessor.o:
$(CC) -c $(SDIR)\preprocessor.c $(CFLAGS) -o $(ODIR)/$@
tokenizer.o:
$(CC) -c $(SDIR)\tokenizer.c $(CFLAGS) -o $(ODIR)/$@
all: $(EXEC)
## $(EXEC): $(OBJ)
## $(CC) $(LDFLAGS) -o $@ $(OBJ) $(LBLIBS)
clean:
rm -rf $(ODIR)/**.o