makefile.clang 1.32 KB
Newer Older
gabime's avatar
gabime committed
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
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