📄 makefile
字号:
#---------------------------------------------------------------------------------.SUFFIXES:#---------------------------------------------------------------------------------ifeq ($(strip $(DEVKITARM)),)$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM)endifinclude $(DEVKITARM)/ds_rules#---------------------------------------------------------------------------------# TARGET is the name of the output# BUILD is the directory where object files & intermediate files will be placed# SOURCES is a list of directories containing source code# INCLUDES is a list of directories containing extra header files#---------------------------------------------------------------------------------TARGET := $(shell basename $(CURDIR))BUILD := buildSOURCES := gfx source data INCLUDES := include build#---------------------------------------------------------------------------------# options for code generation#---------------------------------------------------------------------------------ARCH := -mthumb -mthumb-interwork# note: arm9tdmi isn't the correct CPU arch, but anything newer and LD# *insists* it has a FPU or VFP, and it won't take no for an answer!CFLAGS := -g -Wall -O2\ -mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer\ -ffast-math \ $(ARCH)CFLAGS += $(INCLUDE) -DARM9CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptionsASFLAGS := -g $(ARCH)LDFLAGS = -specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map)#---------------------------------------------------------------------------------# any extra libraries we wish to link with the project#---------------------------------------------------------------------------------LIBS := -lnds9 #---------------------------------------------------------------------------------# list of directories containing libraries, this must be the top level containing# include and lib#---------------------------------------------------------------------------------LIBDIRS := $(LIBNDS) #---------------------------------------------------------------------------------# no real need to edit anything past this point unless you need to add additional# rules for different file extensions#---------------------------------------------------------------------------------ifneq ($(BUILD),$(notdir $(CURDIR)))#--------------------------------------------------------------------------------- export OUTPUT := $(CURDIR)/$(TARGET) export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir))export DEPSDIR := $(CURDIR)/$(BUILD)CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))BINFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.bin))) #---------------------------------------------------------------------------------# use CXX for linking C++ projects, CC for standard C#---------------------------------------------------------------------------------ifeq ($(strip $(CPPFILES)),)#--------------------------------------------------------------------------------- export LD := $(CC)#---------------------------------------------------------------------------------else#--------------------------------------------------------------------------------- export LD := $(CXX)#---------------------------------------------------------------------------------endif#---------------------------------------------------------------------------------export OFILES := $(BINFILES:.bin=.o) \ $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o) export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ -I$(CURDIR)/$(BUILD) export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) .PHONY: $(BUILD) clean #---------------------------------------------------------------------------------$(BUILD): @[ -d $@ ] || mkdir -p $@ @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile #---------------------------------------------------------------------------------clean: @echo clean ... @rm -fr $(BUILD) $(TARGET).elf $(TARGET).nds $(TARGET).arm9 $(TARGET).ds.gba #---------------------------------------------------------------------------------else DEPENDS := $(OFILES:.o=.d) #---------------------------------------------------------------------------------# main targets#---------------------------------------------------------------------------------$(OUTPUT).nds : $(OUTPUT).arm9$(OUTPUT).arm9 : $(OUTPUT).elf$(OUTPUT).elf : $(OFILES) #---------------------------------------------------------------------------------%.o : %.bin#--------------------------------------------------------------------------------- @echo $(notdir $<) $(bin2o) -include $(DEPENDS) #---------------------------------------------------------------------------------------endif#---------------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -