Advertisement
Guest User

3DS_MAKEFILE_2.0

a guest
Jul 24th, 2014
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.50 KB | None | 0 0
  1. PROJECT = ${shell basename "$(CURDIR)"}
  2. CXX = arm-none-eabi-g++
  3. LD = arm-none-eabi-ld
  4. OBJCOPY = arm-none-eabi-objcopy
  5.  
  6. CTRULIB = ../libctru
  7. GCCLIB = ../libgcc
  8.  
  9. CPP_SOURCE = $(wildcard source/*.cpp)
  10. C_SOURCE = $(wildcard source/*.c)
  11. S_SOURCE = $(wildcard source/*.s)
  12. INCLUDE = -I$(CTRULIB)/include -I$(DEVKITARM)/arm-none-eabi/include/c++
  13. INCLUDE += -L$(DEVKITARM)/arm-none-eabi/lib -L$(CTRULIB)/lib -L$(GCCLIB)
  14. D_FILES = $(CPP_SOURCE:source/*.cpp=build/*.d)
  15. D_FILES += $(C_SOURCE:source/*.c=build/*.d)
  16. D_FILES += $(S_SOURCE:source/*.s=build/*.d)
  17.  
  18. CXXFLAGS = -g -Wall -pedantic $(INCLUDE) -std=c++11 -march=armv6 -O3 -fno-rtti -fno-exceptions
  19. LIBS = --start-group -lctru -lc -lgcc --end-group
  20. LDFLAGS = -T ctr_hb_script.ld $(INCLUDE)
  21. OBJECTS = $(CPP_SOURCE:source/*.cpp=build/*.o)
  22. OBJECTS += $(C_SOURCE:source/*.c=build/*.o)
  23. OBJECTS += $(S_SOURCE:source/*.s=build/*.o)
  24.  
  25. .PHONY:=all dir
  26.  
  27. all: dir $(PROJECT).bin
  28.  
  29. dir:
  30.     @mkdir -p build
  31.  
  32. $(PROJECT).bin: $(PROJECT).elf
  33.     $(OBJCOPY) -O binary $< $@
  34.     @rm $<
  35.  
  36. $(PROJECT).elf: $(OBJECTS)
  37.     $(LD) $(LDFLAGS) -o $(PROJECT).elf $(filter-out build/crt0.o, $(OBJECTS)) $(LIBS)
  38.  
  39. clean:
  40.     @rm -rf build
  41.     @rm -f $(PROJECT).elf $(PROJECT).bin
  42.     @cls
  43.     @echo "Successfully cleaned."
  44.  
  45. -include $(D_FILES)
  46.  
  47. build/%.o: source/*.s
  48.     $(CXX) $(CXXFLAGS) -c $< -o %@
  49.     $(CXX) -MM $< > build/$*.d
  50.  
  51. build/%.o: source/*.cpp
  52.     $(CXX) $(CXXFLAGS) -c $< -o %@
  53.     $(CXX) -MM $< > build/$*.d
  54.    
  55. build/%.o: source/*.c
  56.     $(CXX) $(CXXFLAGS) -c $< -o %@
  57.     $(CXX) -MM $< > build/$*.d
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement