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
|