twl_wrapsdk/build/buildtools/modulerules
yutaka da430dcada add vpath for .cpp and .s files
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@50 4ee2a332-4b2b-5046-8439-1ba90f034370
2007-04-27 06:30:42 +00:00

699 lines
20 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#! make -f
#----------------------------------------------------------------------------
# Project: NitroSDK - modulerules - common rules for build system
# File: modulerules
#
# Copyright 2003-2005 Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Log: modulerules,v $
# Revision 1.93 2005/08/23 05:17:27 yasu
# make clobber 時に不要な削除を行なっていたことの修正
#
# Revision 1.92 2005/07/29 02:22:41 yasu
# EDIRT_CLOBBER/CLEAN の追加
#
# Revision 1.91 2005/07/21 11:55:21 yasu
# EDEPENDS_NEF/BIN を追加
#
# Revision 1.90 2005/07/14 08:57:14 yasu
# makebanner 関連のコマンドを NITRO_FORCE_BUILD のスコープ外に出す
#
# Revision 1.89 2005/07/14 07:58:45 yasu
# SDK_FORCE_BUILD で不要な比較をやめる
#
# Revision 1.88 2005/07/08 01:26:14 yasu
# full ビルド時に時間を出力するように修正
#
# Revision 1.87 2005/06/24 02:16:18 yasu
# add-ins の読み込み処理を追加
#
# Revision 1.86 2005/04/05 23:52:58 yosizaki
# fix copyright date.
#
# Revision 1.85 2005/04/05 11:29:45 yosizaki
# add NITRO_ROMSPEED.
#
# Revision 1.84 2004/12/27 01:34:46 yasu
# fix around NITRO_CODEGEN_ALL
#
# Revision 1.83 2004/10/08 06:01:58 yasu
# add full-install
#
# Revision 1.82 2004/09/17 09:37:22 yasu
# Add addbanner and makebanner-default
#
# Revision 1.81 2004/09/10 02:16:48 yasu
# Error fix in DO_INSTALL
#
# Revision 1.80 2004/09/10 01:24:57 yasu
# Add '+' mark to support 'make -n'
# Fix for building ferret
#
# Revision 1.79 2004/09/09 11:41:32 yasu
# Support NITRO_DIGEST
#
# Revision 1.78 2004/09/09 02:37:14 yasu
# Show $(MAKEFILE) if using non-default-Makefile
#
# Revision 1.77 2004/09/09 01:23:48 yasu
# Fix '-s/-w/-k' option searching method
#
# Revision 1.77 2004/09/09 00:53:08 yasu
# 文面修正
#
# Revision 1.76 2004/09/08 11:55:10 yasu
# fix around make full with $(AND)
#
# Revision 1.75 2004/09/08 00:12:34 yasu
# NITRO_STDOUT moves to commondefs
#
# Revision 1.74 2004/09/08 00:06:26 yasu
# Set NITRO_STDOUT to '> /dev/null' if -s option defined
#
# Revision 1.73 2004/09/04 01:25:06 yasu
# Support "make super-full-install"
#
# Revision 1.72 2004/09/01 09:09:31 miya
# add TARGET_SIGN_BIN
#
# Revision 1.71 2004/08/27 09:22:22 yasu
# Fix around NITRO_CODEGEN_ALL
#
# Revision 1.70 2004/07/19 02:50:34 yasu
# Support super-full and super-clobber to build on all platforms
#
# Revision 1.69 2004/07/19 00:45:04 yasu
# Fix build error on Mingw
# Always build TS version on make full
#
# Revision 1.68 2004/07/17 09:39:55 yasu
# Check modification time on install
#
# Revision 1.67 2004/07/17 07:51:54 yasu
# Rollback
#
# Revision 1.66 2004/07/17 07:21:42 yasu
# Check time stamp to skip installing
#
# Revision 1.65 2004/07/15 13:19:50 yasu
# Fix target 'makefull' again
#
# Revision 1.64 2004/07/15 06:46:10 yasu
# Fix target 'makefull'
#
# Revision 1.63 2004/07/14 11:53:34 yasu
# Support NITRO_CODEGEN=ALL
#
# Revision 1.62 2004/07/10 04:56:05 yasu
# Support USE_MY_RULE_BIN and Clean up around makerom
#
# Revision 1.61 2004/07/10 04:20:41 yasu
# Use response file to support overlay group.
# Support SRCS_AUTOLOAD
#
# Revision 1.60 2004/07/06 04:04:23 yasu
# Support makerom -F option
#
# Revision 1.59 2004/07/01 09:41:02 yasu
# add TARGET_ROM
#
# Revision 1.58 2004/07/01 02:19:09 yasu
# support srl making rules
#
# Revision 1.57 2004/06/28 10:49:40 yasu
# No exec makedir without newdir
#
# Revision 1.56 2004/06/25 11:41:52 yasu
# Exec linker whenever no SRCS defined
#
# Revision 1.55 2004/06/23 05:41:07 yasu
# Add more information when make full
#
# Revision 1.54 2004/06/23 01:32:40 terui
# make full 時にARM、THUMBの順にビルドするよう変更。
#
# Revision 1.53 2004/06/21 00:38:54 yasu
# In 'make full', change build order like as 1)finalrom, 2)release, 3)debug.
#
# Revision 1.52 2004/04/20 07:53:57 yasu
# Change build sequence like as RELEASE, DEBUG then FINALROM at 'make full'
#
# Revision 1.51 2004/04/20 03:49:38 yasu
# add LDEPENDS_BIN/NEF for dependancies
#
# Revision 1.50 2004/04/14 11:28:48 yasu
# support suffiex on MAKEROM_ARMx
#
# Revision 1.49 2004/04/09 11:04:43 yasu
# support MAKEROM_FLAGS
#
# Revision 1.48 2004/04/09 05:44:22 yasu
# Hide TS build rule
#
# Revision 1.47 2004/04/06 06:37:14 yasu
# add default options for makerom
#
# Revision 1.46 2004/04/06 04:55:53 yasu
# add more variables for default makerom option
#
# Revision 1.45 2004/04/03 06:35:42 yasu
# fix mistakes when merging with branch
#
# Revision 1.44 2004/04/03 06:31:26 yasu
# small change for MAKEROM
#
# Revision 1.43 2004/04/02 01:36:33 yasu
# guard against re-including
#
# Revision 1.42 2004/03/30 07:16:48 yasu
# fix autotest log sequence
#
# Revision 1.41 2004/03/26 13:12:15 yasu
# fully support makerom
#
# Revision 1.40 2004/03/10 12:26:56 yasu
# support SUBMAKES (Makefile recursive call) with directory
#
# Revision 1.39 2004/02/28 09:48:16 yasu
# append SUBMAKES
#
# Revision 1.38 2004/02/25 12:44:50 yasu
# Add dynamic dependancies rule instead of makefile.src
#
# Revision 1.37 2004/02/23 05:01:38 yasu
# axf->nef
#
# Revision 1.36 2004/02/19 02:01:57 yasu
# fix building Makefile.srcs
#
# Revision 1.35 2004/02/19 01:45:18 yasu
# fix condition of include Makefile.srcs
#
# Revision 1.34 2004/02/18 13:06:17 yasu
# rollback to 1.30
#
# Revision 1.33 2004/02/17 13:16:23 yasu
# Don't make run if no binary
#
# Revision 1.32 2004/02/17 12:55:30 yasu
# support wildcard for make install
#
# Revision 1.31 2004/02/17 09:25:46 yasu
# reduce recursive call of make command as possible
#
# Revision 1.30 2004/02/16 10:19:17 yasu
# fix in target full
#
# Revision 1.29 2004/02/16 01:24:24 yasu
# support file dependancies
#
# Revision 1.28 2004/02/14 06:44:21 yasu
# workaround ELFTOBIN
#
# Revision 1.27 2004/02/13 10:15:38 yasu
# support ARM7 build setting with elftobin
#
# Revision 1.26 2004/02/09 13:14:33 yasu
# fix for NITRO_CODEGEN
#
# Revision 1.25 2004/02/09 11:05:32 kitani_toshikazu
# Work around IS-IRIS-EMU => IS=NITRO-EMU.
#
# Revision 1.24 2004/02/06 12:41:52 yasu
# add do-autotest-test
#
# Revision 1.23 2004/02/06 11:55:00 kitani_toshikazu
# Remove the TARGET_BIN condition for enabling autoTest log file setting.
#
# Revision 1.22 2004/02/06 09:19:53 kitani_toshikazu
# Fix a bug around autoTest.
#
# Revision 1.21 2004/02/06 01:06:05 yasu
# add command for autotest
#
# Revision 1.20 2004/02/05 07:29:20 yasu
# rollback IS_NITRO_SDK -> IS_IRIS_SDK
#
# Revision 1.19 2004/02/05 07:09:01 yasu
# change SDK prefix iris -> nitro
#
# Revision 1.18 2004/02/03 10:46:21 yasu
# Workaround for SHELL=/bin/sh
#
# Revision 1.17 2004/02/03 07:37:04 yasu
# Add target "autotest"
#
# Revision 1.16 2004/01/30 13:29:11 yasu
# delete all installed target by 'make clobber'
#
# Revision 1.15 2004/01/19 06:52:54 yasu
# Add comments
#
# Revision 1.14 2004/01/15 10:49:31 yasu
# support overlay
#
# Revision 1.13 2003/12/29 01:37:16 yasu
# Support a target "make run"
#
# Revision 1.12 2003/12/10 23:57:30 yasu
# SRCS が定義されていないときは Makefile.srcs を作成しないようにした
#
# Revision 1.11 2003/12/10 05:12:48 yasu
# ソースファイル指定に xxxx/src.c の形式を使えるように変更
# Makefile.srcs の追加
# IS_NITRO_DIR が定義してある場合に IS Debugger ライブラリをリンクするよう修正
#
# Revision 1.10 2003/12/02 02:40:23 yasu
# IS-NITRO-EMULATOR 用ライブラリの定義追加
#
# Revision 1.9 2003/11/29 04:06:24 yasu
# make full の追加
#
# Revision 1.8 2003/11/05 09:57:12 yasu
# make の -k オプションを有効にした
# NITRO_INC_DIR -> NITRO_INCDIR の修正
#
# Revision 1.7 2003/11/05 08:42:37 yasu
# build が error で停止する様にした.
# make -i で error を無視する.
#
# Revision 1.6 2003/11/05 07:13:21 yasu
# SRCS の依存ルール追加
#
# Revision 1.5 2003/10/30 06:10:08 yasu
# SUFFIXES ルールの設定
#
# Revision 1.4 2003/10/30 05:51:00 yasu
# .PHONY: の追加
#
# Revision 1.3 2003/10/30 04:46:49 yasu
# do-build/do-install の追加とそれに伴う修正
#
# Revision 1.2 2003/10/29 13:25:40 yasu
# make の伝播のフレームワーク完成
# all/install/clean/clobber が使える
#
# Revision 1.1 2003/10/29 06:47:28 yasu
# Support "make clean/clobber" only
#
# $NoKeywords: $
#----------------------------------------------------------------------------
ifndef NITROSDK_MODULERULES_
#----------------------------------------------------------------------------
# Implicit RULES
#----------------------------------------------------------------------------
.SUFFIXES: # Delete all suffix rules
ifneq ($(NITRO_FORCE_BUILD),)
# yutaka
#VPATH = $(SRCDIR)
vpath %.c $(foreach dir,$(SRCDIR),$(shell cygpath -u $(dir)))
vpath %.cpp $(foreach dir,$(SRCDIR),$(shell cygpath -u $(dir)))
vpath %.s $(foreach dir,$(SRCDIR),$(shell cygpath -u $(dir)))
# ...CW style
#CYGDRV ?= $(shell cygpath -u c:)/..
#ASRCDIR = $(subst : ,,$(patsubst %:,$(CYGDRV)/%:,$(subst :,: ,$(SRCDIR))))
#vpath %c $(ASRCDIR)
SSRCFILES = $(addprefix $(OBJDIR)/,$(notdir $(SRCS)))
ASRCFILES = $(addprefix $(OBJDIR)/,$(notdir $(SRCS_AUTOLOAD)))
VSRCFILES = $(addprefix $(OBJDIR)/,$(notdir $(SRCS_OVERLAY)))
SOBJS_CC = $(filter %.o,$(SSRCFILES:.c=.o))
SOBJS_AS = $(filter %.o,$(SSRCFILES:.s=.o))
SOBJS_CXX = $(filter %.o,$(SSRCFILES:.cpp=.o))
AOBJS_CC = $(filter %.o,$(ASRCFILES:.c=.o))
AOBJS_AS = $(filter %.o,$(ASRCFILES:.s=.o))
AOBJS_CXX = $(filter %.o,$(ASRCFILES:.cpp=.o))
VOBJS_CC = $(filter %.o,$(VSRCFILES:.c=.o))
VOBJS_AS = $(filter %.o,$(VSRCFILES:.s=.o))
VOBJS_CXX = $(filter %.o,$(VSRCFILES:.cpp=.o))
OBJS_CC = $(SOBJS_CC) $(AOBJS_CC) $(VOBJS_CC)
OBJS_AS = $(SOBJS_AS) $(AOBJS_AS) $(VOBJS_AS)
OBJS_CXX = $(SOBJS_CXX) $(AOBJS_CXX) $(VOBJS_CXX)
OBJS_STATIC = $(SOBJS_CC) $(SOBJS_AS) $(SOBJS_CXX) $(EXT_OBJS)
OBJS_AUTOLOAD = $(AOBJS_CC) $(AOBJS_AS) $(AOBJS_CXX) $(EXT_OBJS_AUTOLOAD)
OBJS_OVERLAY = $(VOBJS_CC) $(VOBJS_AS) $(VOBJS_CXX) $(EXT_OBJS_OVERLAY)
OBJS = $(OBJS_STATIC) $(OBJS_AUTOLOAD) $(OBJS_OVERLAY)
# yutaka
#-include $(NITRO_BUILDTOOLSDIR)/modulerules.cctype.$(NITRO_CCTYPE)
-include $(TWL_BUILDTOOLSDIR)/modulerules.cctype.$(NITRO_CCTYPE)
# Common Rules
# .bin .srl
ifdef NITRO_MAKEROM
#
# MAKEROM
#
ROM_SPEC ?= $(DEFAULT_ROM_SPEC)
MAKEROM_ARM9 ?= $(DEFAULT_MAKEROM_ARM9)
MAKEROM_ARM7 ?= $(DEFAULT_MAKEROM_ARM7)
MAKEROM_ROMROOT ?= $(DEFAULT_MAKEROM_ROMROOT)
MAKEROM_ROMFILES ?= $(DEFAULT_MAKEROM_ROMFILES)
MAKEROM_ROMSPEED ?= $(DEFAULT_MAKEROM_ROMSPEED)
MAKEROM_FLAGS ?=
MAKEROM_FLAGS += $(if $(NITRO_FINALROM),,-F)
MAKEROM_DEFS = -DNITROSDK_ROOT='$(ROOT)' \
-DTARGET_NAME='$(TARGET_NAME)' \
-DMAKEROM_ROMROOT='$(MAKEROM_ROMROOT)' \
-DMAKEROM_ROMFILES='$(MAKEROM_ROMFILES)' \
-DMAKEROM_ROMSPEED='$(MAKEROM_ROMSPEED)' \
-DBINDIR='$(BINDIR)' \
-DCOMPDIR='$(NITRO_COMPONENTSDIR)' \
-DCOMPTYPE9='$(NITRO_BUILDTYPE_ARM9)' \
-DCOMPTYPE7='$(NITRO_BUILDTYPE_ARM7)' \
-DPROC='$(CODEGEN_PROC)' \
-DPLATFORM='$(NITRO_PLATFORM)' \
-DCODEGEN='$(CODEGEN_ARCH)' \
-DBUILD='$(NITRO_BUILD_DIR)' \
-DCOMPSUFFIX9='$(COMPSUFFIX)' \
-DCOMPSUFFIX7=''
TARGET_ROM = $(strip $(findstring .srl,$(TARGET_BIN)) \
$(findstring .bin,$(TARGET_BIN)))
ifneq ($(strip $(OBJS) $(LLIBRARIES)),) # any object?
ifeq ($(CODEGEN_PROC),ARM9)
SDEPENDS_BIN = $(BINDIR)/%.nef $(MAKEROM_ARM7)
MAKEROM_DEFS += -DMAKEROM_ARM9='$(basename $@)' \
-DMAKEROM_ARM7='$(basename $(MAKEROM_ARM7))'
else # !ARM9
SDEPENDS_BIN = $(BINDIR)/%.nef $(MAKEROM_ARM9)
MAKEROM_DEFS += -DMAKEROM_ARM9='$(basename $(MAKEROM_ARM9))' \
-DMAKEROM_ARM7='$(basename $@)'
endif # -ARM9
else # !OBJS !LLIBRARIES
SDEPENDS_BIN = $(MAKEROM_ARM9) $(MAKEROM_ARM7)
MAKEROM_DEFS += -DMAKEROM_ARM9='$(basename $(MAKEROM_ARM9))' \
-DMAKEROM_ARM7='$(basename $(MAKEROM_ARM7))'
endif # -OBJS -LLIBRARIES
ifndef USE_MY_RULE_BIN
$(BINDIR)/%.bin $(BINDIR)/%.srl: $(SDEPENDS_BIN) $(ROM_SPEC) $(LDEPENDS_BIN) $(EDEPENDS_BIN)
$(MAKEROM) $(MAKEROM_FLAGS) $(MAKEROM_DEFS) $(ROM_SPEC) $@
endif # -USE_MY_RULE_BIN
$(BINDIR)/$(TARGET_SIGN_BIN): $(BINDIR)/$(TARGET_BIN)
$(NITROSDK_ROOT)/tools/bin/attachsign.exe -D $(addprefix $(BINDIR)/,$(TARGET_BIN))
else # !NITRO_MAKEROM
#
# ELFTOBIN
#
ifndef USE_MY_RULE_BIN
ifeq ($(CODEGEN_PROC),ARM9)
$(BINDIR)/%.bin $(BINDIR)/%.srl: $(BINDIR)/%.nef $(LDEPENDS_BIN) $(EDEPENDS_BIN)
$(ELFTOBIN) $< $(ELFTOBIN_ARM7) $(ELFTOBIN_ROMHEADER) -o $@
else # !ARM9
$(BINDIR)/%.bin $(BINDIR)/%.srl: $(BINDIR)/%.nef $(LDEPENDS_BIN) $(EDEPENDS_BIN)
$(ELFTOBIN) $(ELFTOBIN_ARM9) $< $(ELFTOBIN_ROMHEADER) -o $@
endif # -ARM9
endif # -USE_MY_RULE_BIN
endif # -NITRO_MAKEROM
endif # -NITRO_FORCE_BUILD
# .bnr .bsf
%.bnr: %.bsf
$(MAKEBANNER) $(MAKEBANNER_FLAGS) $< $@
%.nbfc %.nbfp: %.bmp
$(NTEXCONV) -no -bg -bgb -bgnc $< >/dev/null
#----------------------------------------------------------------------------
# MAKE TARGETS
#----------------------------------------------------------------------------
.PHONY: all default build install clean clobber full super-full
BUILDCMDS = all default build
#----------------------------------------------------------------------------
SUBDIR_FLAGS += $(if $(NITRO_CODEGEN_ALL),NITRO_CODEGEN_ALL=False)
define MAKE_SUBDIR
+$(foreach DIR,$(SUBDIRS),$(MAKE) $(SUBDIR_FLAGS) -C $(DIR) $(MAKECMDGOALS) $(AND)) true
+$(foreach FILE,$(SUBMAKES),$(MAKE) $(SUBDIR_FLAGS) -C $(dir $(FILE)) -f $(notdir $(FILE)) $(MAKECMDGOALS) $(AND)) true
endef
ifeq ($(MAKEFILE),Makefile)
MAKEFILE_ =
else
MAKEFILE_ = /$(MAKEFILE)
endif
define ECHO_CURDIR
$(ECHO) "==== $(CURDIR)$(MAKEFILE_)";
endef
define DO_INSTALL_FILES
$(INSTALL) -d $(1) $(AND) \
$(foreach FILE, $(2), \
if [ ! -e $(1)/$(notdir $(FILE)) -o \
$(FILE) -nt $(1)/$(notdir $(FILE)) ]; \
then \
$(ECHO) " install: $(FILE) -> $(1)" $(AND) \
$(INSTALL) $(FILE) $(1)/$(notdir $(FILE)); \
fi $(AND) ) true
endef
DO_INSTALL = $(call DO_INSTALL_FILES,$(INSTALL_DIR),$(INSTALL_TARGETS))
INSTALL_INDEX_SRC = $(firstword $(INSTALL_TARGETS))
INSTALL_INDEX_DEST = $(INSTALL_DIR)/$(notdir $(INSTALL_INDEX_SRC))
define DO_INSTALL_WILDCARD
$(INSTALL) -d $(INSTALL_DIR) $(AND) \
if [ ! -e $(INSTALL_INDEX_DEST) -o \
$(INSTALL_INDEX_SRC) -nt $(INSTALL_INDEX_DEST) ]; \
then \
$(foreach FILE, $(INSTALL_TARGETS), \
$(ECHO) " install: $(FILE) -> $(INSTALL_DIR)" $(AND) \
$(INSTALL) $(FILE) $(INSTALL_DIR) $(AND) ) true; \
fi
endef
#----------------------------------------------------------------------------
# make parallelly
#----------------------------------------------------------------------------
SUBDIRS_PREFIX = make-subdir-p-
SUBDIRS_PARALLEL = $(addprefix $(SUBDIRS_PREFIX),$(SUBDIRS_P))
$(SUBDIRS_PARALLEL):$(SUBDIRS_PREFIX)%:
$(MAKE) -C $(*F) $(MAKECMDGOALS)
#----------------------------------------------------------------------------
# make build
#----------------------------------------------------------------------------
.PHONY: do-build
build:
@$(MAKE_SUBDIR)
@$(ECHO_CURDIR)
ifneq ($(strip $(NEWDIRS)),)
@$(MKDIRP) $(NEWDIRS)
endif
@+$(REMAKE) do-build
ifdef INSTALL_TARGETS
@$(DO_INSTALL)
endif
ifeq ($(NITRO_CODEGEN_ALL),True)
ifeq ($(NITRO_CODEGEN),ARM)
@+$(REMAKE) NITRO_CODEGEN_ALL=False NITRO_CODEGEN=THUMB build
endif
endif
#----------------------------------------------------------------------------
# make install
#----------------------------------------------------------------------------
install:
@$(MAKE_SUBDIR)
@$(ECHO_CURDIR)
ifdef INSTALL_TARGETS
@$(DO_INSTALL)
endif
ifeq ($(NITRO_CODEGEN_ALL),True)
ifeq ($(NITRO_CODEGEN),ARM)
@+$(REMAKE) NITRO_CODEGEN_ALL=False NITRO_CODEGEN=THUMB install
endif
endif
#----------------------------------------------------------------------------
# make full
#----------------------------------------------------------------------------
define makefull
@echo [[[ make full $(1) $(CURDIR) ]]]
@+unset NITRO_DEBUG NITRO_RELEASE NITRO_FINALROM NITRO_CODEGEN_ALL; \
$(foreach b,FINALROM RELEASE DEBUG, \
$(foreach a,ARM THUMB, \
date "+::: %Y/%m/%d %H:%M:%S $a-$b" $(AND) \
$(REMAKE) NITRO_$b=TRUE NITRO_CODEGEN=$a NITRO_CODEGEN_ALL=False $(1) $(AND) \
) \
) true
endef
full:
$(call makefull,build)
full-install:
$(call makefull,install)
#----------------------------------------------------------------------------
# make super-full
#----------------------------------------------------------------------------
define makesuperfull
@echo [[[ make super-full $(1) $(CURDIR) ]]]
@+unset NITRO_DEBUG NITRO_RELEASE NITRO_FINALROM NITRO_CODEGEN_ALL; \
$(foreach p,TS TEG, \
$(foreach b,FINALROM RELEASE DEBUG, \
$(foreach a,ARM THUMB, \
date "+::: %Y/%m/%d %H:%M:%S $a-$b" $(AND) \
$(REMAKE) NITRO_$b=TRUE NITRO_PLATFORM=$p NITRO_CODEGEN=$a NITRO_CODEGEN_ALL=False $(1) $(AND) \
)\
)\
) true
endef
super-full:
$(call makesuperfull,build)
super-full-install:
$(call makesuperfull,install)
#----------------------------------------------------------------------------
# Autotest using IS-NITRO-EMULATOR
#----------------------------------------------------------------------------
ifdef IS_NITRO_DIR
AUTOTESTLOG := $(ROOT)/autotest.log
.PHONY: autotest do-autotest do-autotest-test
autotest:
@+$(REMAKE) clobber
@+$(REMAKE) build NITRO_AUTOTEST=TRUE
@$(RM) $(AUTOTESTLOG)
@+$(REMAKE) do-autotest
@$(SED) -e 's/\r//g;s/$$/\r/g;' $(AUTOTESTLOG) > $(AUTOTESTLOG).tmp
@$(MV) $(AUTOTESTLOG).tmp $(AUTOTESTLOG)
do-autotest:
@$(MAKE_SUBDIR)
@$(ECHO_CURDIR)
ifneq ($(TARGET_ROM),)
@+$(REMAKE) test-run
endif
endif
#----------------------------------------------------------------------------
# make clobber & clean
#----------------------------------------------------------------------------
.PHONY: clobber-installed
clobber:
@$(MAKE_SUBDIR)
@$(ECHO_CURDIR)
-$(RM) $(GDIRT_CLEAN) $(LDIRT_CLEAN) $(EDIRT_CLEAN)
-$(RM) $(GDIRT_CLOBBER) $(LDIRT_CLOBBER) $(EDIRT_CLOBBER)
ifneq ($(GDIRT_INSTALLED),)
ifneq ($(NITRO_FORCE_BUILD),)
$(call makefull,clobber-installed)
else
@+$(REMAKE) clobber-installed
endif
endif
clobber-installed:
-$(RM) $(GDIRT_INSTALLED)
#----------------------------------------------------------------------------
super-clobber:
@$(MAKE_SUBDIR)
@$(ECHO_CURDIR)
-$(RM) $(GDIRT_CLEAN) $(LDIRT_CLEAN) $(EDIRT_CLEAN)
-$(RM) $(GDIRT_CLOBBER) $(LDIRT_CLOBBER) $(EDIRT_CLOBBER)
ifneq ($(GDIRT_INSTALLED),)
$(call makesuperfull,clobber-installed)
endif
#----------------------------------------------------------------------------
clean:
@$(MAKE_SUBDIR)
@$(ECHO_CURDIR)
-$(RM) $(GDIRT_CLEAN) $(LDIRT_CLEAN) $(EDIRT_CLEAN)
#----------------------------------------------------------------------------
# source file dependancies
#----------------------------------------------------------------------------
#
# dynamic dependancy generation
# like as $(OBJDIR)/main.o: main.c
#
DEP_SRCS_ALL = $(SRCS) $(SRCS_AUTOLOAD) $(SRCS_OVERLAY)
define RuleCtoObj
$$(OBJDIR)/$$(notdir $$(basename $(1))).o: $(1)
endef
endif # NITROSDK_MODULERULES_
# Put this sentance out of include-guard to avoid $(eval xxx) limitation
$(foreach FILE,$(DEP_SRCS_ALL),$(eval $(call RuleCtoObj,$(FILE))))
ifndef NITROSDK_MODULERULES_
#
# include dependancies file
#
ifeq ($(MAKECMDGOALS),do-build)
ifdef SRCS
-include $(DEPENDDIR)/*.d
endif
endif
#----------------------------------------------------------------------------
# for IS-NITRO-EMULATOR
#----------------------------------------------------------------------------
ifdef IS_NITRO_DIR
-include $(NITRO_BUILDTOOLSDIR)/modulerules.emtype.ISD
endif
#----------------------------------------------------------------------------
# Load add-ins' modulerules
#----------------------------------------------------------------------------
-include $(NITRO_BUILDTOOLSDIR)/modulerules.add-ins.*
# yutaka
-include $(TWL_BUILDTOOLSDIR)/modulerules.add-ins.*
#----------------------------------------------------------------------------
NITROSDK_MODULERULES_ = TRUE
endif # NITROSDK_MODULERULES_
#----- End of modulerules -----