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
 |