From 90082bd6e19121cae87be17fdd9c01916bd24cbe Mon Sep 17 00:00:00 2001 From: Ian C Date: Tue, 14 Nov 2006 00:57:41 +0000 Subject: Project modified so that seperate ARM7 and ARM9 bits can be compiled. Intended for wifi access. --- Makefile | 147 +++++++++++++-------------------------------------------------- 1 file changed, 29 insertions(+), 118 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 00d7675..3fcc3c8 100644 --- a/Makefile +++ b/Makefile @@ -1,137 +1,48 @@ -# This is a generic DS makefile, as taken from the libnds example programs. -# - -#------------------------------------------------------------------------------- +#--------------------------------------------------------------------------------- .SUFFIXES: -#------------------------------------------------------------------------------- - +#--------------------------------------------------------------------------------- ifeq ($(strip $(DEVKITARM)),) -$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM") +$(error "Please set DEVKITARM in your environment. export DEVKITARM=devkitARM) endif include $(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 := build -SOURCES := source gbagfx -DATA := data -INCLUDES := include gbagfx - -#------------------------------------------------------------------------------- -# 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) \ - $(ADDITIONAL_CFLAGS) +export TARGET := $(shell basename $(CURDIR)) +export TOPDIR := $(CURDIR) -CFLAGS += $(INCLUDE) -DARM9 -CXXFLAGS := $(CFLAGS) -ASFLAGS := -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 := -lfat -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)) \ - $(foreach dir,$(DATA),$(CURDIR)/$(dir)) +#--------------------------------------------------------------------------------- +# path to tools - this can be deleted if you set the path in windows +#--------------------------------------------------------------------------------- +export PATH := $(DEVKITARM)/bin:$(PATH) -export DEPSDIR := $(CURDIR)/$(BUILD) +.PHONY: $(TARGET).arm7 $(TARGET).arm9 -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,$(DATA),$(notdir $(wildcard $(dir)/*.*))) - #--------------------------------------------------------------------------------- -# use CXX for linking C++ projects, CC for standard C -#--------------------------------------------------------------------------------- -ifeq ($(strip $(CPPFILES)),) +# main targets #--------------------------------------------------------------------------------- - export LD := $(CC) +all: $(TARGET).ds.gba + +$(TARGET).ds.gba : $(TARGET).nds + #--------------------------------------------------------------------------------- -else +$(TARGET).nds : $(TARGET).arm7 $(TARGET).arm9 + ndstool -c $(TARGET).nds -7 $(TARGET).arm7 -9 $(TARGET).arm9 + #--------------------------------------------------------------------------------- - export LD := $(CXX) +$(TARGET).arm7 : arm7/$(TARGET).elf +$(TARGET).arm9 : arm9/$(TARGET).elf + #--------------------------------------------------------------------------------- -endif +arm7/$(TARGET).elf: + $(MAKE) -C arm7 + #--------------------------------------------------------------------------------- +arm9/$(TARGET).elf: + $(MAKE) -C arm9 -export OFILES := $(addsuffix .o,$(BINFILES)) \ - $(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).ds.gba : $(OUTPUT).nds -$(OUTPUT).nds : $(OUTPUT).arm9 -$(OUTPUT).arm9 : $(OUTPUT).elf -$(OUTPUT).elf : $(OFILES) - -#--------------------------------------------------------------------------------- -%.bin.o : %.bin -#--------------------------------------------------------------------------------- - @echo $(notdir $<) - @$(bin2o) - - --include $(DEPENDS) - -#--------------------------------------------------------------------------------------- -endif -#--------------------------------------------------------------------------------------- + $(MAKE) -C arm9 clean + $(MAKE) -C arm7 clean + rm -f $(TARGET).ds.gba $(TARGET).nds $(TARGET).arm7 $(TARGET).arm9 -- cgit v1.2.3