📄 makefile
字号:
#---------------------------------------------------------------------------------# Clear the implicit built in rules#---------------------------------------------------------------------------------.SUFFIXES:#---------------------------------------------------------------------------------ifeq ($(strip $(DEVKITPPC)),)$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC)endifinclude $(DEVKITPPC)/wii_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 := wiifuse_serverBUILD := buildSOURCES := sourceDATA := data INCLUDES :=#---------------------------------------------------------------------------------# options for code generation#---------------------------------------------------------------------------------CFLAGS = -g -O2 -Wall $(MACHDEP) $(INCLUDE)CXXFLAGS = $(CFLAGS)LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map#---------------------------------------------------------------------------------# any extra libraries we wish to link with the project#---------------------------------------------------------------------------------LIBS := -logc#---------------------------------------------------------------------------------# list of directories containing libraries, this must be the top level containing# include and lib#---------------------------------------------------------------------------------LIBDIRS :=#---------------------------------------------------------------------------------# 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)) \ $(foreach dir,$(DATA),$(CURDIR)/$(dir))export DEPSDIR := $(CURDIR)/$(BUILD)#---------------------------------------------------------------------------------# automatically build a list of object files for our project#---------------------------------------------------------------------------------CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))#---------------------------------------------------------------------------------# use CXX for linking C++ projects, CC for standard C#---------------------------------------------------------------------------------ifeq ($(strip $(CPPFILES)),) export LD := $(CC)else export LD := $(CXX)endifexport OFILES := $(addsuffix .o,$(BINFILES)) \ $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \ $(sFILES:.s=.o) $(SFILES:.S=.o)#---------------------------------------------------------------------------------# build a list of include paths#---------------------------------------------------------------------------------export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ -I$(CURDIR)/$(BUILD) \ -I$(LIBOGC_INC)#---------------------------------------------------------------------------------# build a list of library paths#---------------------------------------------------------------------------------export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \ -L$(LIBOGC_LIB)export OUTPUT := $(CURDIR)/$(TARGET).PHONY: $(BUILD) clean#---------------------------------------------------------------------------------$(BUILD): @[ -d $@ ] || mkdir -p $@ @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile#---------------------------------------------------------------------------------clean: @echo clean ... @rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol#---------------------------------------------------------------------------------upload: $(DEVKITPPC)/bin/geckoupload $(TARGET).dol#---------------------------------------------------------------------------------elseDEPENDS := $(OFILES:.o=.d)#---------------------------------------------------------------------------------# main targets#---------------------------------------------------------------------------------$(OUTPUT).dol: $(OUTPUT).elf$(OUTPUT).elf: $(OFILES)#----------------------------------------------------------------------------------include $(DEPENDS)#---------------------------------------------------------------------------------endif#---------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -