From 8176f82de2d7e0a2602168c859a884cad0472d4c Mon Sep 17 00:00:00 2001 From: gabime Date: Thu, 13 Feb 2014 01:15:58 +0200 Subject: [PATCH] clang makefile --- build/gcc/makefile.clang | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 build/gcc/makefile.clang diff --git a/build/gcc/makefile.clang b/build/gcc/makefile.clang new file mode 100644 index 00000000..d9b25f3b --- /dev/null +++ b/build/gcc/makefile.clang @@ -0,0 +1,56 @@ +SRC_DIR=../../src + +_SOURCES = factory.cpp formatters.cpp os.cpp + +SOURCES = $(patsubst %,$(SRC_DIR)/%,$(_SOURCES)) +OBJS_RELEASE = $(patsubst %.cpp,release/%.o,$(_SOURCES)) +OBJS_DEBUG = $(patsubst %.cpp,debug/%.o,$(_SOURCES)) + + +CXX = clang++ +CXXFLAGS = -march=native -Wall -Wextra -Wshadow -pedantic -std=c++11 -pthread -I../../include +CXX_RELEASE_FLAGS = -O3 -flto +CXX_DEBUG_FLAGS= -g + +OUTLIB_RELEASE = libc11log.a +OUTLIB_DEBUG = libc11log-debug.a + +TEST_RELEASE = testme-clang +TEST_DEBUG = testme-debug-clang + +.PHONY: all mkdirs release debug build clean rebuild + +all: release + +release: CXXFLAGS += $(CXX_RELEASE_FLAGS) +release: mkdirs build-release + + +debug: CXXFLAGS += $(CXX_DEBUG_FLAGS) +debug: mkdirs build-debug + +mkdirs: + @mkdir -p release debug + +build-release: $(OBJS_RELEASE) + ar rs $(OUTLIB_RELEASE) $^ + $(CXX) $(SRC_DIR)/test.cpp $(OBJS_RELEASE) -o $(TEST_RELEASE) $(CXXFLAGS) -B/usr/lib/gold-ld/ + +build-debug: $(OBJS_DEBUG) + ar --plugin /usr/local/lib/LLVMgold.so rs $(OUTLIB_DEBUG) $^ + $(CXX) $(SRC_DIR)/test.cpp $(OBJS_RELEASE) -o $(TEST_DEBUG) $(CXXFLAGS) -B/usr/lib/gold-ld/ + + +release/%.o: $(SRC_DIR)/%.cpp + $(CXX) -c $< -o $@ $(CXXFLAGS) + + + +debug/%.o: $(SRC_DIR)/%.cpp + $(CXX) -c $< -o $@ $(CXXFLAGS) + +clean: + rm -rf release debug daily.* $(TEST_RELEASE) $(TEST_DEBUG) $(OUTLIB_RELEASE) $(OUTLIB_DEBUG) + +rebuild: clean all +