Advertisement
Guest User

Makefile (3ds, c++)

a guest
Jul 23rd, 2014
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. CC = arm-none-eabi-g++
  2. LINK = arm-none-eabi-g++
  3. OBJCOPY = arm-none-eabi-objcopy
  4. CTRULIB = e:/git/ctrulib/libctru
  5. CFLAGS += -g -Wall -march=armv6 -O3 -std=c++11 -fno-rtti -fno-exceptions -I"$(CTRULIB)/include" -I$(DEVKITPRO)/libnds/include
  6. LDFLAGS += -T ccd00.ld -L"$(DEVKITARM)/arm-none-eabi/lib" -L"$(CTRULIB)/lib"
  7.  
  8. SOURCE = .
  9. BUILD = build
  10.  
  11. CFILES = $(wildcard $(SOURCE)/*.c)
  12. CPPFILES = $(wildcard $(SOURCE)/*.cpp)
  13. OFILES = $(CFILES:$(SOURCE)/%.c=$(BUILD)/%.o)
  14. OFILES += $(CPPFILES:$(SOURCE)/%.cpp=$(BUILD)/%.o)
  15. DFILES = $(CFILES:$(SOURCE)/%.c=$(BUILD)/%.d)
  16. SFILES = $(wildcard $(SOURCE)/*.s)
  17. OFILES += $(SFILES:$(SOURCE)/%.s=$(BUILD)/%.o)
  18. PROJECTNAME = ${shell basename "$(CURDIR)"}
  19.  
  20. .PHONY:=all dir
  21.  
  22. all: dir $(PROJECTNAME).3ds
  23.  
  24. dir:
  25. @mkdir -p $(BUILD)
  26.  
  27. #$(PROJECTNAME).bin: $(PROJECTNAME).elf
  28. # $(OBJCOPY) -O binary $< $@
  29.  
  30. $(PROJECTNAME).3ds: $(PROJECTNAME).elf
  31. @make -f make3ds TARGET=$(PROJECTNAME)
  32.  
  33. $(PROJECTNAME).elf: $(OFILES)
  34. $(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out $(BUILD)/crt0.o, $(OFILES)) -lctru -lc -nostartfiles
  35.  
  36. clean:
  37. @rm -f $(BUILD)/*.o $(BUILD)/*.d
  38. @rm -f $(PROJECTNAME).elf $(PROJECTNAME).3ds
  39. @echo "all cleaned up !"
  40.  
  41. -include $(DFILES)
  42.  
  43. $(BUILD)/%.o: $(SOURCE)/%.c
  44. $(CC) $(CFLAGS) -c $< -o $@
  45. @$(CC) -MM $< > $(BUILD)/$*.d
  46.  
  47. $(BUILD)/%.o: $(SOURCE)/%.cpp
  48. $(CC) $(CFLAGS) -c $< -o $@
  49. @$(CC) -MM $< > $(BUILD)/$*.d
  50.  
  51. $(BUILD)/%.o: $(SOURCE)/%.s
  52. $(CC) $(CFLAGS) -c $< -o $@
  53. @$(CC) -MM $< > $(BUILD)/$*.d
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement