Edit

kc3-lang/zlib/nintendods/Makefile

Branch :

  • Show log

    Commit

  • Author : Mark Adler
    Date : 2011-09-09 23:26:49
    Hash : d004b047
    Message : zlib 1.2.3.5

  • nintendods/Makefile
  • #---------------------------------------------------------------------------------
    .SUFFIXES:
    #---------------------------------------------------------------------------------
    
    ifeq ($(strip $(DEVKITARM)),)
    $(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>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
    # DATA is a list of directories containing data files
    # INCLUDES is a list of directories containing header files
    #---------------------------------------------------------------------------------
    TARGET		:=	$(shell basename $(CURDIR))
    BUILD		:=	build
    SOURCES		:=	../../
    DATA		:=	data
    INCLUDES	:=	include
    
    #---------------------------------------------------------------------------------
    # options for code generation
    #---------------------------------------------------------------------------------
    ARCH	:=	-mthumb -mthumb-interwork
    
    CFLAGS	:=	-Wall -O2\
    		-march=armv5te -mtune=arm946e-s \
    		-fomit-frame-pointer -ffast-math \
    		$(ARCH)
    
    CFLAGS	+=	$(INCLUDE) -DARM9
    CXXFLAGS	:= $(CFLAGS) -fno-rtti -fno-exceptions
    
    ASFLAGS	:=	$(ARCH) -march=armv5te -mtune=arm946e-s
    LDFLAGS	=	-specs=ds_arm9.specs -g $(ARCH) -Wl,-Map,$(notdir $*.map)
    
    #---------------------------------------------------------------------------------
    # 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)/lib/libz.a
    
    export VPATH	:=	$(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
    			$(foreach dir,$(DATA),$(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,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
    
    #---------------------------------------------------------------------------------
    # use CXX for linking C++ projects, CC for standard C
    #---------------------------------------------------------------------------------
    ifeq ($(strip $(CPPFILES)),)
    #---------------------------------------------------------------------------------
    	export LD	:=	$(CC)
    #---------------------------------------------------------------------------------
    else
    #---------------------------------------------------------------------------------
    	export LD	:=	$(CXX)
    #---------------------------------------------------------------------------------
    endif
    #---------------------------------------------------------------------------------
    
    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) \
    			-I$(CURDIR)/$(BUILD)
    
    .PHONY: $(BUILD) clean all
    
    #---------------------------------------------------------------------------------
    all: $(BUILD)
    	@[ -d $@ ] || mkdir -p include
    	@cp ../../*.h include
    
    lib:
    	@[ -d $@ ] || mkdir -p $@
    	
    $(BUILD): lib
    	@[ -d $@ ] || mkdir -p $@
    	@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
    
    #---------------------------------------------------------------------------------
    clean:
    	@echo clean ...
    	@rm -fr $(BUILD) lib
    
    #---------------------------------------------------------------------------------
    else
    
    DEPENDS	:=	$(OFILES:.o=.d)
    
    #---------------------------------------------------------------------------------
    # main targets
    #---------------------------------------------------------------------------------
    $(OUTPUT)	:	$(OFILES)
    
    #---------------------------------------------------------------------------------
    %.bin.o	:	%.bin
    #---------------------------------------------------------------------------------
    	@echo $(notdir $<)
    	@$(bin2o)
    
    
    -include $(DEPENDS)
    
    #---------------------------------------------------------------------------------------
    endif
    #---------------------------------------------------------------------------------------