45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|  | PROJECT = libtween | ||
|  | CXX = arm-none-eabi-g++ | ||
|  | AR = arm-none-eabi-ar | ||
|  | CXXFLAGS = -g -Wall -pedantic -std=c++11 -fno-rtti -fno-exceptions | ||
|  | 
 | ||
|  | INCLUDES = -Iinclude/ | ||
|  | SOURCES = $(wildcard src/*.cpp) $(wildcard src/*/*.cpp) | ||
|  | OBJECTS = $(SOURCES:src/%.cpp=build/arm/%.o) | ||
|  | 
 | ||
|  | TEST_CXX = g++ | ||
|  | TEST_AR = ar | ||
|  | TEST_CXXFLAGS = -g -Wall -pedantic -std=c++11 -fno-rtti -fno-exceptions -DTESTING | ||
|  | TEST_OBJECTS = $(SOURCES:src/%.cpp=build/test/%.o) | ||
|  | 
 | ||
|  | .PHONY: all dir clean test | ||
|  | 
 | ||
|  | all: dir $(PROJECT).a | ||
|  | 
 | ||
|  | test: dir $(PROJECT)-test.a | ||
|  | 
 | ||
|  | dir: | ||
|  | 	@mkdir -p build/arm/equations | ||
|  | 	@mkdir -p build/arm/paths | ||
|  | 	@mkdir -p build/test/equations | ||
|  | 	@mkdir -p build/test/paths | ||
|  | 	@mkdir -p lib | ||
|  | 
 | ||
|  | $(PROJECT).a: $(OBJECTS) | ||
|  | 	$(AR) rvs lib/$@ $^ | ||
|  | $(PROJECT)-test.a: $(TEST_OBJECTS) | ||
|  | 	$(TEST_AR) rvs lib/$@ $^ | ||
|  | 
 | ||
|  | clean: | ||
|  | 	@rm -rf build | ||
|  | 	@rm -rf lib | ||
|  | 	@echo "Successfully cleaned." | ||
|  | 
 | ||
|  | build/arm/%.o: src/%.cpp | ||
|  | 	$(CXX) $(INCLUDES) $(CXXFLAGS) -c $< -o $@ | ||
|  | 	$(CXX) -MM $< > build/arm/$*.d | ||
|  | 
 | ||
|  | build/test/%.o: src/%.cpp | ||
|  | 	$(TEST_CXX) $(INCLUDES) $(TEST_CXXFLAGS) -c $< -o $@ | ||
|  | 	$(TEST_CXX) -MM $< > build/test/$*.d |