48 lines
		
	
	
		
			932 B
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			932 B
		
	
	
	
		
			Makefile
		
	
	
	
TARGET :=	klib.a
 | 
						|
TESTS :=	tlv_test dictionary_test
 | 
						|
HEADERS :=	$(wildcard *.h)
 | 
						|
SOURCES :=	$(wildcard *.cc)
 | 
						|
OBJS :=		Arena.o Dictionary.o TLV.o
 | 
						|
 | 
						|
CXX :=		clang++
 | 
						|
CXXFLAGS :=	-g -std=c++14 -Werror -Wall -DDESKTOP_BUILD
 | 
						|
 | 
						|
.PHONY: all 
 | 
						|
all: $(TARGET) $(TESTS) tags run-tests
 | 
						|
 | 
						|
tags: $(HEADERS) $(SOURCES)
 | 
						|
	ctags $(HEADERS) $(SOURCES)
 | 
						|
 | 
						|
$(TARGET): $(OBJS)
 | 
						|
	$(AR) rcs $@ $(OBJS)
 | 
						|
 | 
						|
tlv_test: tlvTest.o $(TARGET)
 | 
						|
	$(CXX) -o $@ $(CXXFLAGS) tlvTest.o $(TARGET)
 | 
						|
 | 
						|
dictionary_test: dictionaryTest.o $(TARGET)
 | 
						|
	$(CXX) -o $@ $(CXXFLAGS) dictionaryTest.o $(TARGET)
 | 
						|
 | 
						|
.PHONY: print-%
 | 
						|
print-%: ; @echo '$(subst ','\'',$*=$($*))'
 | 
						|
 | 
						|
klib.a: $(OBJS)
 | 
						|
 | 
						|
%.o: %.cc
 | 
						|
	$(CXX) -o $@ -c $(CXXFLAGS) $<
 | 
						|
 | 
						|
.PHONY: clean
 | 
						|
clean:
 | 
						|
	# build outputs
 | 
						|
	rm -f $(TARGET) $(TESTS) *.o 
 | 
						|
 | 
						|
	# test miscellaneous
 | 
						|
	rm -f core core.* tags arena_test.bin
 | 
						|
 | 
						|
.PHONY: run-tests
 | 
						|
run-tests: $(TESTS)
 | 
						|
	for testbin in $(TESTS); 		\
 | 
						|
	do	 				\
 | 
						|
		echo "./$${testbin}" ;		\
 | 
						|
		./$${testbin}; 			\
 | 
						|
	done
 |