mirror of
https://github.com/encounter/cpp3ds.git
synced 2026-03-30 11:04:22 -07:00
79 lines
2.5 KiB
Makefile
79 lines
2.5 KiB
Makefile
PROJECT = libcpp3ds
|
|
|
|
INCLUDES = -Iinclude/ -I../tween-engine/include
|
|
|
|
CXX = arm-none-eabi-g++
|
|
AR = arm-none-eabi-ar
|
|
CXXFLAGS = -g -Wall -pedantic -std=c++11 -march=armv5te -fno-rtti -fno-exceptions
|
|
SOURCES = $(wildcard src/*.cpp) $(wildcard src/*/*.cpp) $(wildcard src/*.S)
|
|
OBJECTS = $(SOURCES:src/%.cpp=build/arm/%.o) $(SOURCES:src/%.S=build/arm/%.o)
|
|
|
|
TEST_CXX = g++
|
|
TEST_AR = ar
|
|
TEST_CXXFLAGS = -g -Wall -pedantic -std=c++11 -fno-rtti -fno-exceptions -DTESTING
|
|
TEST_SOURCES = $(wildcard src/*.cpp) $(wildcard src/*/*.cpp)
|
|
TEST_OBJECTS = $(TEST_SOURCES:src/%.cpp=build/test/%.o)
|
|
|
|
SIM_CXX = g++
|
|
SIM_AR = ar
|
|
SIM_CXXFLAGS = -g -Wall -pedantic -std=c++11 -DSIMULATION `pkg-config gtkmm-3.0 gmodule-2.0 --cflags --libs`
|
|
SIM_SOURCES = $(wildcard sim/*.cpp) $(wildcard sim/*/*.cpp) $(wildcard src/*.cpp) $(wildcard src/*/*.cpp) sim/res.cpp
|
|
SIM_OBJECTS = $(SIM_SOURCES:sim/%.cpp=build/sim/%.o) $(SIM_SOURCES:src/%.cpp=build/sim/%.o)
|
|
|
|
GLIB_COMPILE_RESOURCES = `pkg-config --variable glib_compile_resources gio-2.0`
|
|
|
|
.PHONY: all dir clean lib test sim
|
|
|
|
all: lib test sim
|
|
|
|
lib: dir $(PROJECT).a
|
|
test: dir $(PROJECT)-test.a
|
|
sim: dir include/sim3ds/res.h $(PROJECT)-sim.a
|
|
|
|
dir:
|
|
@mkdir -p build/arm/actors
|
|
@mkdir -p build/test/actors
|
|
@mkdir -p build/sim/actors
|
|
@mkdir -p lib
|
|
|
|
clean:
|
|
@rm -rf build
|
|
@rm -rf lib
|
|
@rm -f sim/res.cpp
|
|
@rm -f include/sim3ds/res.h
|
|
@rm -f $(PROJECT)
|
|
@echo "Successfully cleaned."
|
|
|
|
$(PROJECT).a: $(OBJECTS)
|
|
$(AR) rvs lib/$@ $^
|
|
$(PROJECT)-test.a: $(TEST_OBJECTS)
|
|
$(TEST_AR) rvs lib/$@ $^
|
|
$(PROJECT)-sim.a: $(SIM_OBJECTS)
|
|
$(SIM_AR) rvs lib/$@ $^
|
|
|
|
build/arm/%.o: src/%.cpp
|
|
$(CXX) $(INCLUDES) $(CXXFLAGS) -c $< -o $@
|
|
$(CXX) -MM $< > build/arm/$*.d
|
|
build/arm/%.o: src/%.S
|
|
$(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
|
|
|
|
build/sim/%.o: sim/%.cpp
|
|
$(SIM_CXX) $(INCLUDES) $(SIM_CXXFLAGS) -c $< -o $@
|
|
$(SIM_CXX) -MM $< > build/sim/$*.d
|
|
build/sim/%.o: src/%.cpp
|
|
$(SIM_CXX) $(INCLUDES) $(SIM_CXXFLAGS) -c $< -o $@
|
|
$(SIM_CXX) -MM $< > build/sim/$*.d
|
|
|
|
# Resource building
|
|
include/sim3ds/res.h: res/sim/simulator.gresource.xml
|
|
$(GLIB_COMPILE_RESOURCES) --sourcedir res/sim --generate-header $< --target=$@
|
|
sim/res.cpp: res/sim/simulator.gresource.xml
|
|
$(GLIB_COMPILE_RESOURCES) --sourcedir res/sim --generate-source $< --target=$@
|
|
sim/res.cpp include/sim3ds/res.h: \
|
|
res/sim/simulator.gresource.xml \
|
|
$(shell $(GLIB_COMPILE_RESOURCES) --sourcedir res/sim --generate-dependencies res/sim/simulator.gresource.xml) |