clang makefile
This commit is contained in:
		
							
								
								
									
										56
									
								
								build/gcc/makefile.clang
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								build/gcc/makefile.clang
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user