Home | History | Annotate | Line # | Download | only in nintendods
Makefile revision 1.1.1.1.4.2
      1  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
      2  1.1.1.1.4.2  pgoyette .SUFFIXES:
      3  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
      4  1.1.1.1.4.2  pgoyette 
      5  1.1.1.1.4.2  pgoyette ifeq ($(strip $(DEVKITARM)),)
      6  1.1.1.1.4.2  pgoyette $(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
      7  1.1.1.1.4.2  pgoyette endif
      8  1.1.1.1.4.2  pgoyette 
      9  1.1.1.1.4.2  pgoyette include $(DEVKITARM)/ds_rules
     10  1.1.1.1.4.2  pgoyette 
     11  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     12  1.1.1.1.4.2  pgoyette # TARGET is the name of the output
     13  1.1.1.1.4.2  pgoyette # BUILD is the directory where object files & intermediate files will be placed
     14  1.1.1.1.4.2  pgoyette # SOURCES is a list of directories containing source code
     15  1.1.1.1.4.2  pgoyette # DATA is a list of directories containing data files
     16  1.1.1.1.4.2  pgoyette # INCLUDES is a list of directories containing header files
     17  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     18  1.1.1.1.4.2  pgoyette TARGET		:=	$(shell basename $(CURDIR))
     19  1.1.1.1.4.2  pgoyette BUILD		:=	build
     20  1.1.1.1.4.2  pgoyette SOURCES		:=	../../
     21  1.1.1.1.4.2  pgoyette DATA		:=	data
     22  1.1.1.1.4.2  pgoyette INCLUDES	:=	include
     23  1.1.1.1.4.2  pgoyette 
     24  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     25  1.1.1.1.4.2  pgoyette # options for code generation
     26  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     27  1.1.1.1.4.2  pgoyette ARCH	:=	-mthumb -mthumb-interwork
     28  1.1.1.1.4.2  pgoyette 
     29  1.1.1.1.4.2  pgoyette CFLAGS	:=	-Wall -O2\
     30  1.1.1.1.4.2  pgoyette 		-march=armv5te -mtune=arm946e-s \
     31  1.1.1.1.4.2  pgoyette 		-fomit-frame-pointer -ffast-math \
     32  1.1.1.1.4.2  pgoyette 		$(ARCH)
     33  1.1.1.1.4.2  pgoyette 
     34  1.1.1.1.4.2  pgoyette CFLAGS	+=	$(INCLUDE) -DARM9
     35  1.1.1.1.4.2  pgoyette CXXFLAGS	:= $(CFLAGS) -fno-rtti -fno-exceptions
     36  1.1.1.1.4.2  pgoyette 
     37  1.1.1.1.4.2  pgoyette ASFLAGS	:=	$(ARCH) -march=armv5te -mtune=arm946e-s
     38  1.1.1.1.4.2  pgoyette LDFLAGS	=	-specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
     39  1.1.1.1.4.2  pgoyette 
     40  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     41  1.1.1.1.4.2  pgoyette # list of directories containing libraries, this must be the top level containing
     42  1.1.1.1.4.2  pgoyette # include and lib
     43  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     44  1.1.1.1.4.2  pgoyette LIBDIRS	:=	$(LIBNDS)
     45  1.1.1.1.4.2  pgoyette 
     46  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     47  1.1.1.1.4.2  pgoyette # no real need to edit anything past this point unless you need to add additional
     48  1.1.1.1.4.2  pgoyette # rules for different file extensions
     49  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     50  1.1.1.1.4.2  pgoyette ifneq ($(BUILD),$(notdir $(CURDIR)))
     51  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     52  1.1.1.1.4.2  pgoyette 
     53  1.1.1.1.4.2  pgoyette export OUTPUT	:=	$(CURDIR)/lib/libz.a
     54  1.1.1.1.4.2  pgoyette 
     55  1.1.1.1.4.2  pgoyette export VPATH	:=	$(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
     56  1.1.1.1.4.2  pgoyette 			$(foreach dir,$(DATA),$(CURDIR)/$(dir))
     57  1.1.1.1.4.2  pgoyette 
     58  1.1.1.1.4.2  pgoyette export DEPSDIR	:=	$(CURDIR)/$(BUILD)
     59  1.1.1.1.4.2  pgoyette 
     60  1.1.1.1.4.2  pgoyette CFILES		:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
     61  1.1.1.1.4.2  pgoyette CPPFILES	:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
     62  1.1.1.1.4.2  pgoyette SFILES		:=	$(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
     63  1.1.1.1.4.2  pgoyette BINFILES	:=	$(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
     64  1.1.1.1.4.2  pgoyette 
     65  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     66  1.1.1.1.4.2  pgoyette # use CXX for linking C++ projects, CC for standard C
     67  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     68  1.1.1.1.4.2  pgoyette ifeq ($(strip $(CPPFILES)),)
     69  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     70  1.1.1.1.4.2  pgoyette 	export LD	:=	$(CC)
     71  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     72  1.1.1.1.4.2  pgoyette else
     73  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     74  1.1.1.1.4.2  pgoyette 	export LD	:=	$(CXX)
     75  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     76  1.1.1.1.4.2  pgoyette endif
     77  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     78  1.1.1.1.4.2  pgoyette 
     79  1.1.1.1.4.2  pgoyette export OFILES	:=	$(addsuffix .o,$(BINFILES)) \
     80  1.1.1.1.4.2  pgoyette 			$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
     81  1.1.1.1.4.2  pgoyette 
     82  1.1.1.1.4.2  pgoyette export INCLUDE	:=	$(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
     83  1.1.1.1.4.2  pgoyette 			$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
     84  1.1.1.1.4.2  pgoyette 			-I$(CURDIR)/$(BUILD)
     85  1.1.1.1.4.2  pgoyette 
     86  1.1.1.1.4.2  pgoyette .PHONY: $(BUILD) clean all
     87  1.1.1.1.4.2  pgoyette 
     88  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
     89  1.1.1.1.4.2  pgoyette all: $(BUILD)
     90  1.1.1.1.4.2  pgoyette 	@[ -d $@ ] || mkdir -p include
     91  1.1.1.1.4.2  pgoyette 	@cp ../../*.h include
     92  1.1.1.1.4.2  pgoyette 
     93  1.1.1.1.4.2  pgoyette lib:
     94  1.1.1.1.4.2  pgoyette 	@[ -d $@ ] || mkdir -p $@
     95  1.1.1.1.4.2  pgoyette 	
     96  1.1.1.1.4.2  pgoyette $(BUILD): lib
     97  1.1.1.1.4.2  pgoyette 	@[ -d $@ ] || mkdir -p $@
     98  1.1.1.1.4.2  pgoyette 	@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
     99  1.1.1.1.4.2  pgoyette 
    100  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
    101  1.1.1.1.4.2  pgoyette clean:
    102  1.1.1.1.4.2  pgoyette 	@echo clean ...
    103  1.1.1.1.4.2  pgoyette 	@rm -fr $(BUILD) lib
    104  1.1.1.1.4.2  pgoyette 
    105  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
    106  1.1.1.1.4.2  pgoyette else
    107  1.1.1.1.4.2  pgoyette 
    108  1.1.1.1.4.2  pgoyette DEPENDS	:=	$(OFILES:.o=.d)
    109  1.1.1.1.4.2  pgoyette 
    110  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
    111  1.1.1.1.4.2  pgoyette # main targets
    112  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
    113  1.1.1.1.4.2  pgoyette $(OUTPUT)	:	$(OFILES)
    114  1.1.1.1.4.2  pgoyette 
    115  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
    116  1.1.1.1.4.2  pgoyette %.bin.o	:	%.bin
    117  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------
    118  1.1.1.1.4.2  pgoyette 	@echo $(notdir $<)
    119  1.1.1.1.4.2  pgoyette 	@$(bin2o)
    120  1.1.1.1.4.2  pgoyette 
    121  1.1.1.1.4.2  pgoyette 
    122  1.1.1.1.4.2  pgoyette -include $(DEPENDS)
    123  1.1.1.1.4.2  pgoyette 
    124  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------------
    125  1.1.1.1.4.2  pgoyette endif
    126  1.1.1.1.4.2  pgoyette #---------------------------------------------------------------------------------------
    127