edit
[c11concurrency-benchmarks.git] / iris / Makefile
1 #sources
2 IRIS_SRC = src/base_logger.cpp src/buffered_writer.cpp src/file_writer.cpp src/level_logger.cpp src/notifier.cpp src/stream_writer.cpp src/utils.cpp
3 IRIS_TEST_SRC = $(IRIS_SRC) tests/test_lfringbuffer.cpp
4 IRIS_TEST2_SRC = $(IRIS_SRC) src/main.cpp
5 #object files
6 IRIS_OBJS = base_logger.o buffered_writer.o file_writer.o level_logger.o notifier.o stream_writer.o utils.o
7 IRIS_TEST_OBJS = $(IRIS_OBJS) test_lfringbuffer.o
8 IRIS_TEST2_OBJS = $(IRIS_OBJS) test2.o
9 #executable
10 PROGRAM = libiris.so
11 #PROGRAM = main
12 #compiler
13 CC = ../clang++
14
15 CACHELINE_SIZE =
16 OS := $(shell uname)
17 ifeq ($(OS), Darwin)
18 CACHELINE_SIZE = $(shell sysctl -n hw.cachelinesize)
19 else
20 CACHELINE_SIZE = $(shell getconf LEVEL1_DCACHE_LINESIZE)
21 endif
22
23 #includes
24 INCLUDE = -Iinclude
25 #linker params
26 LINKPARAMS = -fpic -lpthread -shared
27 #linker params for tests
28 LINKPARAMS_TEST = -fpic -lpthread
29 #options for development
30 CFLAGS = --std=c++11 -g -O3 -Wall  -fpic -DIRIS_CACHELINE_SIZE=$(CACHELINE_SIZE)  # removed flags -Werror -Wno-unused-private-field
31 #options for release
32 #CFLAGS = --std=c++11 -g -O2 -Wall -Werror -fpic -shared
33
34 $(PROGRAM): $(IRIS_OBJS)
35         $(CC) -o $(PROGRAM) $(IRIS_OBJS) $(CFLAGS) $(LINKPARAMS)
36
37 base_logger.o: src/base_logger.cpp include/base_logger.h
38         $(CC) -c src/base_logger.cpp -o base_logger.o $(CFLAGS) $(INCLUDE)
39
40 buffered_writer.o: src/buffered_writer.cpp include/buffered_writer.h
41         $(CC) -c src/buffered_writer.cpp -o buffered_writer.o $(CFLAGS) $(INCLUDE)
42
43 file_writer.o: src/file_writer.cpp include/file_writer.h
44         $(CC) -c src/file_writer.cpp -o file_writer.o $(CFLAGS) $(INCLUDE)
45
46 stream_writer.o: src/stream_writer.cpp include/stream_writer.h
47         $(CC) -c src/stream_writer.cpp -o stream_writer.o $(CFLAGS) $(INCLUDE)
48
49 level_logger.o: src/level_logger.cpp include/level_logger.h
50         $(CC) -c src/level_logger.cpp -o level_logger.o $(CFLAGS) $(INCLUDE)
51
52 utils.o: src/utils.cpp include/utils.h
53         $(CC) -c src/utils.cpp -o utils.o $(CFLAGS) $(INCLUDE)
54
55 notifier.o: src/notifier.cpp include/notifier.h
56         $(CC) -c src/notifier.cpp -o notifier.o $(CFLAGS) $(INCLUDE)
57
58 test: test_lfringbuffer
59
60 test_lfringbuffer: $(IRIS_TEST_OBJS)
61         $(CC) -o test_lfringbuffer $(IRIS_TEST_OBJS) $(CFLAGS) $(LINKPARAMS_TEST)
62         $(CC) -o test2 $(IRIS_TEST2_OBJS) $(CFLAGS) $(LINKPARAMS_TEST)
63
64 test_lfringbuffer.o: tests/test_lfringbuffer.cpp   src/main.cpp
65         $(CC) -c tests/test_lfringbuffer.cpp -o test_lfringbuffer.o $(CFLAGS) $(INCLUDE)
66         $(CC) -c src/main.cpp -o test2.o $(CFLAGS) $(INCLUDE)
67
68
69 clean:
70         rm -rf *.o
71         rm -rf $(PROGRAM) test_lfringbuffer
72         rm -rf $(PROGRAM) test2
73
74 install:
75         mkdir -p /usr/local/include/iris
76         cp include/* /usr/local/include/iris
77         cp $(PROGRAM) /usr/local/lib
78 .PHONY: clean test