X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/02967a43024ce81912cd1ec96a800397457f8066..refs/heads/iannucci:/Makefile diff --git a/Makefile b/Makefile index 5dd06c5..e2c8d5e 100644 --- a/Makefile +++ b/Makefile @@ -1,31 +1,50 @@ -CXXFLAGS ?= -g -MMD -Werror -I. -std=c++1y -LDFLAGS ?= -CXX ?= g++ -CC ?= g++ -EXTRA_TARGETS ?= +CLANGXX ?= clang++ +GXX ?= g++ +USE_CLANG ?= 1 +CC = $(CXX) -all: lock_server lock_tester rsm_tester rpc/rpctest $(EXTRA_TARGETS) +OPTFLAGS = -O3 +CXXFLAGS = -ggdb3 -MMD -I. -std=c++1y $(STDLIB) $(PEDANTRY) $(OPTFLAGS) +LDFLAGS = -std=c++1y $(STDLIB) $(OPTFLAGS) -rpc/librpc.a: rpc/rpc.o rpc/connection.o rpc/poll_mgr.o rpc/thread_pool.o - rm -f $@ - ar cq $@ $^ - ranlib rpc/librpc.a +POSTBUILD ?= -rpc/rpctest: rpc/rpctest.o threaded_log.o rpc/librpc.a t4.o +PRODUCTS = lock_server lock_tester rsm_tester rpc/rpctest -lock_tester : lock_tester.o lock_client.o threaded_log.o rsm_client.o rpc/librpc.a t4.o +ifeq "$(USE_CLANG)" "1" -lock_server : lock_smain.o threaded_log.o rsm.o paxos.o config.o log.o lock_server.o rpc/librpc.a t4.o +PEDANTRY = -Werror -Weverything -Wall -Wextra -pedantic-errors -pedantic \ + -Wno-c++98-compat-pedantic -Wno-padded -Weffc++ \ + -Wno-non-virtual-dtor -Wno-weak-vtables +STDLIB = -stdlib=libc++ +CXX = $(CLANGXX) -rsm_tester: rsm_tester.o rsmtest_client.o threaded_log.o rpc/librpc.a t4.o +else -%.o: %.cc - $(CXX) $(CXXFLAGS) -c $< -o $@ +PEDANTRY = -pedantic -Wall -Wextra -fno-default-inline -Werror +STDLIB = -pthread +CXX = $(GXX) + +endif + +all: $(PRODUCTS) $(POSTBUILD) + +LIBRPC_OBJECTS = rpc/rpc.o rpc/connection.o rpc/poll_mgr.o rpc/thread_pool.o + +rpc/librpc.a: $(foreach x,$(LIBRPC_OBJECTS),rpc/librpc.a($(x))) + +rpc/rpctest: rpc/rpctest.o debug.o rpc/librpc.a t4.o + +lock_tester : lock_tester.o lock_client.o debug.o rsm_client.o rpc/librpc.a t4.o + +lock_server : lock_smain.o debug.o rsm.o paxos.o config.o log.o lock_server.o rpc/librpc.a t4.o + +rsm_tester: rsm_tester.o rsmtest_client.o debug.o rpc/librpc.a t4.o -include *.d -include rpc/*.d clean_files=rpc/rpctest rpc/*.o *.d rpc/*.d rpc/librpc.a *.o config *.log lock_server lock_tester rsm_tester .PHONY: clean $(EXTRA_TARGETS) -clean: - rm -rf $(clean_files) +clean: + -rm -rf $(clean_files)