-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
78 lines (43 loc) · 2.11 KB
/
Makefile
File metadata and controls
78 lines (43 loc) · 2.11 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
LOCKS=TAS_LOCK CAS_LOCK MUTEX_LOCK PTHREAD_MUTEX_LOCK PTHREAD_ADAPTIVE_MUTEX_LOCK PTHREAD_SPINLOCK_LOCK\
QUEUED_SPINLOCK_LOCK MUTLOCK_LOCK NOFIFO_MUTLOCK_LOCK NOFIFO_SKIPWAIT_MUTLOCK_LOCK\
ONEVENT_H_MUTLOCK_LOCK ONEVENT_H_NOFIFO_MUTLOCK_LOCK ONEVENT_H_NOFIFO_SKIPWAIT_MUTLOCK_LOCK\
PROB_SAMPLED_H_MUTLOCK_LOCK QUEUED_MUTLOCK_LOCK HEURISTIC_MUTLOCK_LOCK SEM_HEURISTIC_MUTLOCK_LOCK\
SEM_ONEVENT_H_NOFIFO_MUTLOCK_LOCK NSS_MUTLOCK_LOCK THC1_MUTLOCK_LOCK NSS2_MUTLOCK_LOCK THC12_MUTLOCK_LOCK\
SEM_NSS_MUTLOCK_LOCK SEM_THC1_MUTLOCK_LOCK SEM_NSS2_MUTLOCK_LOCK SEM_THC12_MUTLOCK_LOCK FREQ_MUTLOCK_LOCK
LOCKS=QUEUED_SPINLOCK_LOCK PTHREAD_MUTEX_LOCK PTHREAD_ADAPTIVE_MUTEX_LOCK PTHREAD_SPINLOCK_LOCK\
NSS_MUTLOCK_LOCK THC1_MUTLOCK_LOCK NSS2_MUTLOCK_LOCK THC12_MUTLOCK_LOCK\
SEM_NSS_MUTLOCK_LOCK SEM_THC1_MUTLOCK_LOCK SEM_NSS2_MUTLOCK_LOCK SEM_THC12_MUTLOCK_LOCK FREQ_MUTLOCK_LOCK SEM_FREQ_MUTLOCK_LOCK TCP_MUTLOCK_LOCK SEM_TCP_MUTLOCK_LOCK SEM_TCP2_MUTLOCK_LOCK
#LOCKS=FREQ_MUTLOCK_LOCK
PWD:=$(shell pwd)
# COMPILER
CXX:=gcc -std=gnu99 #-pthread
# SHARED OBJECTS
LIBS:=-lpthread -lmutlock
SO_LIB_PATH:=$(PWD)/libs
SO_INC_PATH:=$(PWD)/include
SUBDIRS:=src
#this is a temporary solution
LOCK_DIR:=libmutlock
OPT:= -O0
LPATH:=-L$(SO_LIB_PATH)
RPATH:=-Wl,-rpath=$(SO_LIB_PATH)
INCLUDES:= -I$(SO_INC_PATH) $(addprefix -I,$(SUBDIRS))
TARGETS:=$(addprefix bin/test-,$(LOCKS))
DEPS=$(TARGETS)
DEPS:=$(addsuffix .d,$(DEPS))
DEBUG:= -g3
WARNINGS:= -Wall -Wno-discarded-qualifiers #-Wno-unused-value
all: deps $(TARGETS)
deps:
echo "Cloning list of dependencies..";
cd script; ./clone_modules.sh $(PWD); cd ..
cd $(LOCK_DIR) && make; make install INSTALL_SO_PATH=$(SO_LIB_PATH) INSTALL_INC_PATH=$(SO_INC_PATH); cd $(PWD);
-include $(DEPS)
$(TARGETS): src/test.c
@mkdir -p bin
@echo "---- Generating target $@ ----"
$(CXX) $(RPATH) $(LPATH) $(WARNINGS) $(DEBUG) $(MACROS) $(OPT) $(INCLUDES) -D$(subst bin/test-,,$@) src/test.c -o $@ $(LIBS) -MMD -MP -MF"$@.d" -MT"$@"
@echo "---- Target successfully generated ----"
clean:
-rm -rf bin $(SO_LIB_PATH) $(SO_INC_PATH)
.PHONY: all clean deps