So many changes. Broken.
[invirt/third/libt4.git] / Makefile
1 CLANGXX ?= clang++
2 GXX ?= g++
3 USE_CLANG ?= 1
4 CC = $(CXX)
5
6 OPTFLAGS = -O3
7 CXXFLAGS = -ggdb3 -MMD -I. -std=c++1y $(STDLIB) $(PEDANTRY) $(OPTFLAGS)
8 LDFLAGS = -std=c++1y $(STDLIB) $(OPTFLAGS)
9
10 POSTBUILD ?=
11
12 PRODUCTS = lock_server lock_tester rsm_tester rpc/rpctest
13
14 ifeq "$(USE_CLANG)" "1"
15
16 PEDANTRY = -Werror -Weverything -Wall -Wextra -pedantic-errors -pedantic \
17                    -Wno-c++98-compat-pedantic -Wno-padded -Weffc++ \
18                    -Wno-non-virtual-dtor -Wno-weak-vtables
19 STDLIB = -stdlib=libc++
20 CXX = $(CLANGXX)
21
22 else
23
24 PEDANTRY = -pedantic -Wall -Wextra -fno-default-inline -Werror
25 STDLIB = -pthread
26 CXX = $(GXX)
27
28 endif
29
30 all: $(PRODUCTS) $(POSTBUILD)
31
32 LIBRPC_OBJECTS = rpc/rpc.o rpc/connection.o rpc/poll_mgr.o rpc/thread_pool.o
33
34 rpc/librpc.a: $(foreach x,$(LIBRPC_OBJECTS),rpc/librpc.a($(x)))
35
36 rpc/rpctest: rpc/rpctest.o debug.o rpc/librpc.a t4.o
37
38 lock_tester : lock_tester.o lock_client.o debug.o rsm_client.o rpc/librpc.a t4.o
39
40 lock_server : lock_smain.o debug.o rsm.o paxos.o config.o log.o lock_server.o rpc/librpc.a t4.o
41
42 rsm_tester: rsm_tester.o rsmtest_client.o debug.o rpc/librpc.a t4.o
43
44 -include *.d
45 -include rpc/*.d
46
47 clean_files=rpc/rpctest rpc/*.o *.d rpc/*.d rpc/librpc.a *.o config *.log lock_server lock_tester rsm_tester
48 .PHONY: clean $(EXTRA_TARGETS)
49 clean:
50         -rm -rf $(clean_files)