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
 |