-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
executable file
·50 lines (40 loc) · 1.09 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
# If you want C++ functionality, put g++ as LIBCC
LIBCC=gcc
#CFLAGS=-Wall -g3 -D_GNU_SOURCE -fno-omit-frame-pointer -O0 -c
CFLAGS=-Wall -Wextra -fsanitize=undefined -fsanitize=address -ggdb -gdwarf-5 -D_GNU_SOURCE -fno-omit-frame-pointer -Og -c
#CFLAGS=-Wall -Wextra -fno-inline -g3 -Werror=return-type -rdynamic -gdwarf-5 -D_GNU_SOURCE -fno-omit-frame-pointer -O0 -c
LIBS=
CC=$(LIBCC) $(CFLAGS)
ifeq ($(LIBCC), g++)
MYCPP=g++ $(CFLAGS)
else
MYCPP=
endif
TARGETS=libmmalloc.a generror
ifdef MYCPP
TARGETS+=cpperror
endif
all: $(TARGETS)
objects = mmalloc.o
libmmalloc.a: $(objects)
ar -r libmmalloc.a $(EXTRALIBS) mmalloc.o
generror: libmmalloc.a generror.o
gcc -o generror generror.o libmmalloc.a $(LIBS) -rdynamic -lasan -lubsan
ifdef MYCPP
cpperror: libmmalloc.a cpperror.o
gcc -o cpperror libmmalloc.a cpperror.o $(LIBS)
cpperror.o: %.o: %.cpp mmalloc.h mconfig.h
$(MYCPP) $< -o $@
endif
$(objects): %.o: %.c mmalloc.h mconfig.h
$(CC) $< -o $@
clean:
rm -rf *.o
rm -f generror
rm -f cpperror
rm -f core
rm -f libmmalloc.a
rm -f mmalloc.opt
rm -f mmalloc.ncb
rm -f mmalloc.plg
rm -rf Debug