Makefile 914 Bytes
Newer Older
Adam Blank's avatar
Adam Blank committed
1
2
3
4
#
# Makefile for the malloc lab driver
#

Caleb C. Sander's avatar
Fix #2    
Caleb C. Sander committed
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CLEAN_COMMAND = rm -f out/* bin/*
ifdef DEBUG
  CC = clang-with-asan
  CFLAGS = -Werror -Wall -Wextra
  ifeq ($(wildcard .debug),)
    $(shell $(CLEAN_COMMAND))
    $(shell touch .debug)
  endif
else
  CC = clang
  CFLAGS = -Werror -Wall -Wextra -O3 -g
  ifneq ($(wildcard .debug),)
    $(shell $(CLEAN_COMMAND) .debug)
  endif
endif
Adam Blank's avatar
Adam Blank committed
20

Caleb C. Sander's avatar
Fix #2    
Caleb C. Sander committed
21
all: bin/mdriver-implicit bin/mdriver-explicit
Adam Blank's avatar
Adam Blank committed
22

Caleb C. Sander's avatar
Fix #2    
Caleb C. Sander committed
23
bin/mdriver-%: out/mdriver-%.o out/mm-%.o out/memlib.o out/fsecs.o out/fcyc.o out/clock.o
Adam Blank's avatar
Adam Blank committed
24
25
26
27
28
	$(CC) $(CFLAGS) $^ -o $@

out/mdriver-implicit.o: driver/mdriver.c
	$(CC) $(CFLAGS) -c -DSTAGE0 $^ -o $@

Caleb C. Sander's avatar
Caleb C. Sander committed
29
out/mdriver-explicit.o: driver/mdriver.c
Adam Blank's avatar
Adam Blank committed
30
31
32
33
34
35
36
37
38
	$(CC) $(CFLAGS) -c -DSTAGE1 $^ -o $@

out/%.o: src/%.c
	$(CC) $(CFLAGS) -Iinclude -c $^ -o $@

out/%.o: driver/%.c
	$(CC) $(CFLAGS) -c $^ -o $@

clean:
Caleb C. Sander's avatar
Fix #2    
Caleb C. Sander committed
39
40
41
	$(CLEAN_COMMAND)

.PRECIOUS: bin/mdriver-% out/mdriver-implicit.o out/mdriver-explicit.o out/%.o