-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
72 lines (49 loc) · 2.26 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
#CFLAGS=-Wextra -Wall -Wno-unused -std=gnu99 -g3
CFLAGS=-Wextra -Wall -Wno-unused -std=gnu99 -DNDEBUG -O3
#CFLAGS=-Wextra -Wall -Wno-unused -std=gnu99 -DNDEBUG -g3 -pg -fprofile-arcs -ftest-coverage -static
LFLAGS=
MAJOR=2
MINOR=0
VERSION=$(MAJOR).$(MINOR)
TARGETS:=qratpreplus_main.o libqratpreplus.a
UNAME:=$(shell uname)
ifeq ($(UNAME), Darwin)
# Mac OS X
SONAME=-install_name
TARGETS+=libqratpreplus.$(VERSION).dylib
else
SONAME=-soname
TARGETS+=libqratpreplus.so.$(VERSION)
endif
.SUFFIXES: .c .o .fpico
.c.fpico:
$(CC) $(CFLAGS) -fPIC -c $< -o $@
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
qratpre+: $(TARGETS)
$(CC) $(CFLAGS) qratpreplus_main.o -L. -lqratpreplus -o qratpre+
qratpreplus_main.o: qratpreplus_main.c qratpreplus.h
mem.o: mem.c mem.h
mem.fpico: mem.c mem.h
parse.o: parse.c parse.h util.h qratpreplus_internals.h qratpreplus.h
parse.fpico: parse.c parse.h util.h qratpreplus_internals.h qratpreplus.h
qbce_qrat_plus.o: qbce_qrat_plus.c qbce_qrat_plus.h qratpreplus.h stack.h qratpreplus_internals.h qbcp.h util.h
qbce_qrat_plus.fpico: qbce_qrat_plus.c qbce_qrat_plus.h qratpreplus.h stack.h qratpreplus_internals.h qbcp.h util.h
qbcp.o: qbcp.c qbcp.h util.h qratpreplus_internals.h
qbcp.fpico: qbcp.c qbcp.h util.h qratpreplus_internals.h
qratpreplus.o: qratpreplus.c qratpreplus.h qratpreplus_internals.h qbce_qrat_plus.h parse.h util.h mem.h stack.h
qratpreplus.fpico: qratpreplus.c qratpreplus.h qratpreplus_internals.h qbce_qrat_plus.h parse.h util.h mem.h stack.h
qratpreplus_main.o: qratpreplus_main.c qratpreplus.h
qratpreplus_main.fpico: qratpreplus_main.c qratpreplus.h
util.o: util.c util.h qratpreplus_internals.h
util.fpico: util.c util.h qratpreplus_internals.h
#################
libqratpreplus.a: qratpreplus.o qbce_qrat_plus.o parse.o util.o mem.o qbcp.o
ar rc $@ $^
ranlib $@
libqratpreplus.so.$(VERSION): qratpreplus.fpico qbce_qrat_plus.fpico parse.fpico util.fpico mem.fpico qbcp.fpico
$(CC) $(LFLAGS) -shared -Wl,$(SONAME),libqratpreplus.so.$(MAJOR) $^ -o $@
libqratpreplus.$(VERSION).dylib: qratpreplus.fpico qbce_qrat_plus.fpico parse.fpico util.fpico mem.fpico qbcp.fpico
$(CC) $(LFLAGS) -shared -Wl,$(SONAME),libqratpreplus.$(MAJOR).dylib $^ -o $@
clean:
rm -f *.so.$(VERSION) *.dylib *.fpico *.a *.o *.gcno *.gcda *.gcov *~ gmon.out qratpre+