Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PROJECT = ${shell basename "$(CURDIR)"}
- CXX = arm-none-eabi-g++
- LD = arm-none-eabi-ld
- OBJCOPY = arm-none-eabi-objcopy
- CTRULIB = ../libctru
- GCCLIB = ../libgcc
- CPP_SOURCE = $(wildcard source/*.cpp)
- C_SOURCE = $(wildcard source/*.c)
- S_SOURCE = $(wildcard source/*.s)
- INCLUDE = -I$(CTRULIB)/include -I$(DEVKITARM)/arm-none-eabi/include/c++
- INCLUDE += -L$(DEVKITARM)/arm-none-eabi/lib -L$(CTRULIB)/lib -L$(GCCLIB)
- D_FILES = $(CPP_SOURCE:source/*.cpp=build/*.d)
- D_FILES += $(C_SOURCE:source/*.c=build/*.d)
- D_FILES += $(S_SOURCE:source/*.s=build/*.d)
- CXXFLAGS = -g -Wall -pedantic $(INCLUDE) -std=c++11 -march=armv6 -O3 -fno-rtti -fno-exceptions
- LIBS = --start-group -lctru -lc -lgcc --end-group
- LDFLAGS = -T ctr_hb_script.ld $(INCLUDE)
- OBJECTS = $(CPP_SOURCE:source/*.cpp=build/*.o)
- OBJECTS += $(C_SOURCE:source/*.c=build/*.o)
- OBJECTS += $(S_SOURCE:source/*.s=build/*.o)
- .PHONY:=all dir
- all: dir $(PROJECT).bin
- dir:
- @mkdir -p build
- $(PROJECT).bin: $(PROJECT).elf
- $(OBJCOPY) -O binary $< $@
- @rm $<
- $(PROJECT).elf: $(OBJECTS)
- $(LD) $(LDFLAGS) -o $(PROJECT).elf $(filter-out build/crt0.o, $(OBJECTS)) $(LIBS)
- clean:
- @rm -rf build
- @rm -f $(PROJECT).elf $(PROJECT).bin
- @cls
- @echo "Successfully cleaned."
- -include $(D_FILES)
- build/%.o: source/*.s
- $(CXX) $(CXXFLAGS) -c $< -o %@
- $(CXX) -MM $< > build/$*.d
- build/%.o: source/*.cpp
- $(CXX) $(CXXFLAGS) -c $< -o %@
- $(CXX) -MM $< > build/$*.d
- build/%.o: source/*.c
- $(CXX) $(CXXFLAGS) -c $< -o %@
- $(CXX) -MM $< > build/$*.d
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement