mirror of
https://github.com/rvtr/twl_wrapsdk.git
synced 2025-10-31 06:11:10 -04:00
vpath周りの修正 (CWの-cオプションにが必ずフルパスになります)
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@21 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
parent
873c7cdb9b
commit
0a30f97eca
@ -111,7 +111,7 @@ TWL_TOOLSDIR := $(TWL_ROOT)/tools
|
||||
TWL_COMPONENTSDIR := $(TWL_ROOT)/components
|
||||
TWL_ADDINS ?= $(TWL_ROOT)/add-ins
|
||||
|
||||
TWL_NITROSDK_ROOT ?=$(shell cygpath -w $(NITROSDK_ROOT))
|
||||
TWL_NITROSDK_ROOT ?= $(subst $(SPACE),\ ,$(subst \,/,$(NITROSDK_ROOT)))
|
||||
|
||||
TWL_BUILDARCH ?= $(TWL_CODEGEN_PROC)-$(TWL_PLATFORM)$(TWL_CODEGEN_ARCH)
|
||||
TWL_BUILDARCH_ARM9 := ARM9-$(TWL_PLATFORM)$(TWL_CODEGEN_ARCH)
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
#! make -f
|
||||
#----------------------------------------------------------------------------
|
||||
# Project: TwlSDK - modulerules - common rules for build system
|
||||
# Project: NitroSDK - modulerules - common rules for build system
|
||||
# File: modulerules
|
||||
#
|
||||
# Copyright 2007 Nintendo. All rights reserved.
|
||||
# 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
|
||||
@ -11,30 +11,686 @@
|
||||
# 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: $
|
||||
# $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 TWLSDK_MODULERULES_
|
||||
ifndef NITROSDK_MODULERULES_
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
### NITRO-modulerules
|
||||
# Implicit RULES
|
||||
#----------------------------------------------------------------------------
|
||||
.SUFFIXES: # Delete all suffix rules
|
||||
|
||||
ifneq ($(NITRO_FORCE_BUILD),)
|
||||
|
||||
# yutaka
|
||||
#VPATH = $(SRCDIR)
|
||||
vpath %c $(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
|
||||
#
|
||||
include $(NITROSDK_ROOT)/build/buildtools/modulerules
|
||||
|
||||
.PHONY: twllib
|
||||
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)
|
||||
|
||||
twllib:
|
||||
@$(MAKE) -C $(TWLSDK_ROOT)/build/libraries
|
||||
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=''
|
||||
|
||||
# .axf
|
||||
$(BINDIR)/$(TARGET_BIN_BASENAME).axf: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF) $(EDEPENDS_NEF) $(ALIBRARIES) $(LDRES_FILE) $(CW_LIBCXX)
|
||||
ifeq ($(NITRO_CCTYPE),RVCT)
|
||||
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) -o $@ $(GLIBRARIES) $(OBJS)
|
||||
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
|
||||
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) @$(LDRES_FILE) $(LCFILE) -o $@
|
||||
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
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
TWLSDK_MODULERULES_ = TRUE
|
||||
endif # TWLSDK_MODULERULES_
|
||||
# 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 -----
|
||||
|
||||
36
build/buildtools/modulerules.add-ins.twl
Normal file
36
build/buildtools/modulerules.add-ins.twl
Normal file
@ -0,0 +1,36 @@
|
||||
#! make -f
|
||||
#----------------------------------------------------------------------------
|
||||
# Project: TwlSDK - modulerules - common rules for build system
|
||||
# File: modulerules
|
||||
#
|
||||
# Copyright 2007 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: $
|
||||
# $NoKeywords: $
|
||||
#----------------------------------------------------------------------------
|
||||
ifndef TWLSDK_MODULERULES_
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
.PHONY: twllib
|
||||
|
||||
twllib:
|
||||
@$(MAKE) -C $(TWLSDK_ROOT)/build/libraries
|
||||
|
||||
# .axf
|
||||
$(BINDIR)/$(TARGET_BIN_BASENAME).axf: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF) $(EDEPENDS_NEF) $(ALIBRARIES) $(LDRES_FILE) $(CW_LIBCXX)
|
||||
ifeq ($(NITRO_CCTYPE),RVCT)
|
||||
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) -o $@ $(GLIBRARIES) $(OBJS)
|
||||
else
|
||||
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) @$(LDRES_FILE) $(LCFILE) -o $@
|
||||
endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
TWLSDK_MODULERULES_ = TRUE
|
||||
endif # TWLSDK_MODULERULES_
|
||||
#----- End of modulerules -----
|
||||
549
build/buildtools/modulerules.cctype.CW
Normal file
549
build/buildtools/modulerules.cctype.CW
Normal file
@ -0,0 +1,549 @@
|
||||
#! make -f
|
||||
#----------------------------------------------------------------------------
|
||||
# Project: NitroSDK - buildtools - compiler dependant settings for CodeWarrior
|
||||
# File: modulerules.cctype.CW
|
||||
#
|
||||
# Copyright 2003-2006 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.cctype.CW,v $
|
||||
# Revision 1.71 2006/06/06 04:39:45 okubata_ryoma
|
||||
# CWのコンパイラとリンカのバージョン情報を追記
|
||||
#
|
||||
# Revision 1.70 2006/06/06 04:32:06 yasu
|
||||
# build バージョンで 2~3桁の場合は、100 倍する
|
||||
#
|
||||
# Revision 1.69 2006/06/06 01:02:28 yasu
|
||||
# build バージョンにおいて小数点以下の値を拾うように変更
|
||||
#
|
||||
# Revision 1.68 2006/05/10 02:07:35 yasu
|
||||
# makelcf の -V オプションの対応
|
||||
#
|
||||
# Revision 1.67 2006/05/01 01:15:43 okubata_ryoma
|
||||
# CWバージョン比較方法の変更にともなう変更
|
||||
#
|
||||
# Revision 1.66 2006/03/20 08:01:28 okubata_ryoma
|
||||
# sed コマンドのバージョンによるビルドエラーを防ぐための修正
|
||||
#
|
||||
# Revision 1.65 2006/02/21 00:11:15 okubata_ryoma
|
||||
# Copyright fix
|
||||
#
|
||||
# Revision 1.64 2006/02/13 08:32:39 okubata_ryoma
|
||||
# CW2.0betaへの対応
|
||||
#
|
||||
# Revision 1.63 2005/09/17 06:17:51 yasu
|
||||
# コンパイラのバージョン情報処理の修正
|
||||
#
|
||||
# Revision 1.62 2005/09/17 04:56:24 yasu
|
||||
# コンパイラのバージョン情報の更新
|
||||
#
|
||||
# Revision 1.61 2005/08/23 05:12:25 yasu
|
||||
# precompile ヘッダ作成時に SDK 関連でない -D オプションを排除する
|
||||
#
|
||||
# Revision 1.60 2005/08/08 00:06:56 yasu
|
||||
# mongoose のビルド対策のため TARGET_BIN_BASENAME を定義し、TARGET_NAME と使い分ける
|
||||
#
|
||||
# Revision 1.59 2005/08/07 13:15:48 yasu
|
||||
# ライブラリパスを vpath に設定
|
||||
#
|
||||
# Revision 1.58 2005/07/26 07:29:58 yasu
|
||||
# プリコンパイルヘッダのキャッシュ位置を変更した
|
||||
#
|
||||
# Revision 1.57 2005/07/26 00:40:56 seiki_masashi
|
||||
# プリコンパイルヘッダの作成時に -include をダミーに置換
|
||||
#
|
||||
# Revision 1.56 2005/07/25 05:02:02 yasu
|
||||
# PCH の削除のトリガを make clean から make clobber に変更
|
||||
#
|
||||
# Revision 1.55 2005/07/25 01:31:12 yasu
|
||||
# .pch -> .mch への変更
|
||||
#
|
||||
# Revision 1.54 2005/07/21 11:55:21 yasu
|
||||
# EDEPENDS_NEF/BIN を追加
|
||||
#
|
||||
# Revision 1.53 2005/07/14 05:11:49 yasu
|
||||
# プリコンパイルヘッダを C と C++ で分別する
|
||||
#
|
||||
# Revision 1.52 2005/07/14 02:27:36 yasu
|
||||
# NITRO_STD_PCHDR をモジュール毎に抑制できる仕組みの追加
|
||||
#
|
||||
# Revision 1.51 2005/07/11 06:12:37 yasu
|
||||
# pch ファイルの依存関係のチェックの追加
|
||||
#
|
||||
# Revision 1.50 2005/07/08 13:25:23 yasu
|
||||
# プリコンパイルヘッダのテストサポート
|
||||
#
|
||||
# Revision 1.49 2005/06/22 09:40:07 yasu
|
||||
# ELIBRARIES のサポート
|
||||
#
|
||||
# Revision 1.48 2005/06/02 00:10:41 seiki_masashi
|
||||
# copyright 表記の修正
|
||||
#
|
||||
# Revision 1.47 2005/06/01 07:33:30 seiki_masashi
|
||||
# #include のサーチパスの先頭に呼び出し元ファイルのあるディレクトリを追加
|
||||
#
|
||||
# Revision 1.46 2004/12/27 03:51:22 yasu
|
||||
# Change CC->MWCC , AS->MWAS, LD->MWLD and AR->MWAR
|
||||
#
|
||||
# Revision 1.45 2004/11/05 06:42:09 yasu
|
||||
# Add version info for CW NITRO V1.0
|
||||
#
|
||||
# Revision 1.44 2004/10/03 02:04:03 yasu
|
||||
# Support component file list for compstatic tool
|
||||
#
|
||||
# Revision 1.43 2004/09/17 03:35:34 yasu
|
||||
# Invalidate NITRO_COMPRESS for ARM7 build
|
||||
#
|
||||
# Revision 1.42 2004/09/09 11:41:32 yasu
|
||||
# Support NITRO_DIGEST
|
||||
#
|
||||
# Revision 1.41 2004/09/08 00:06:26 yasu
|
||||
# Set NITRO_STDOUT to '> /dev/null' if -s option defined
|
||||
#
|
||||
# Revision 1.40 2004/09/06 05:34:38 yasu
|
||||
# Add -a option on compstatic
|
||||
#
|
||||
# Revision 1.39 2004/09/06 01:08:41 yasu
|
||||
# Add -c option on compstatic
|
||||
#
|
||||
# Revision 1.38 2004/09/04 12:37:52 yasu
|
||||
# Add OverlayTable for compstatic tool
|
||||
#
|
||||
# Revision 1.37 2004/09/01 07:30:03 yasu
|
||||
# Support NITRO_COMPRESS
|
||||
#
|
||||
# Revision 1.36 2004/08/10 14:18:48 yasu
|
||||
# Add dependancies for makelcf
|
||||
#
|
||||
# Revision 1.35 2004/08/10 00:13:46 yasu
|
||||
# Support CodeWarrior 0.6.1
|
||||
#
|
||||
# Revision 1.34 2004/07/26 08:11:08 yasu
|
||||
# Rename ADDRESS_ARM7 -> ADDRESS_DTCM
|
||||
#
|
||||
# Revision 1.33 2004/07/26 04:59:02 yasu
|
||||
# Add ADDRESS_ARM7 on makelcf
|
||||
#
|
||||
# Revision 1.32 2004/07/18 12:20:05 yasu
|
||||
# Change ["] -> ['] of MAKELCF_DEFS for Mingw
|
||||
#
|
||||
# Revision 1.31 2004/07/18 06:10:46 yasu
|
||||
# show makelcf command line on making *.autogen.lcf
|
||||
#
|
||||
# Revision 1.30 2004/07/13 12:34:19 yasu
|
||||
# Check libcxx workaround on invoking linker
|
||||
#
|
||||
# Revision 1.29 2004/07/10 04:55:30 yasu
|
||||
# support USE_MY_RULE_A, USE_MY_RULE_NEF
|
||||
#
|
||||
# Revision 1.28 2004/07/10 04:20:23 yasu
|
||||
# Use response file to support overlay group
|
||||
#
|
||||
# Revision 1.27 2004/06/28 10:52:11 yasu
|
||||
# Delete group setting
|
||||
#
|
||||
# Revision 1.26 2004/05/01 06:10:33 yada
|
||||
# add build number rule for CW0.5
|
||||
#
|
||||
# Revision 1.25 2004/04/21 11:22:06 yasu
|
||||
# Support codecheck as workaround for blxeq/ne problem
|
||||
#
|
||||
# Revision 1.24 2004/04/20 03:49:38 yasu
|
||||
# add LDEPENDS_BIN/NEF for dependancies
|
||||
#
|
||||
# Revision 1.23 2004/04/14 10:14:53 yasu
|
||||
# delete LIBRARIES_STATIC
|
||||
#
|
||||
# Revision 1.22 2004/04/03 08:43:35 yasu
|
||||
# with MINGW, support detect CW versions
|
||||
#
|
||||
# Revision 1.21 2004/04/03 08:01:43 yasu
|
||||
# auto-detect CW verinfo and switch strb parameters
|
||||
#
|
||||
# Revision 1.20 2004/04/01 12:54:38 yasu
|
||||
# support LIBRARIES_STATIC for makerom
|
||||
#
|
||||
# Revision 1.19 2004/03/23 09:28:57 yasu
|
||||
# add $(MAKEFILE) for dependancy list of %.nef
|
||||
#
|
||||
# Revision 1.18 2004/03/18 02:29:44 yasu
|
||||
# change condition to switch rom packing method (makerom or elftobin)
|
||||
#
|
||||
# Revision 1.17 2004/02/23 05:01:38 yasu
|
||||
# axf->nef
|
||||
#
|
||||
# Revision 1.16 2004/02/17 09:22:48 yasu
|
||||
# support dependancies with MinGW
|
||||
#
|
||||
# Revision 1.15 2004/02/16 01:24:24 yasu
|
||||
# support file dependancies
|
||||
#
|
||||
# Revision 1.14 2004/02/05 07:09:01 yasu
|
||||
# change SDK prefix iris -> nitro
|
||||
#
|
||||
# Revision 1.13 2004/01/15 10:49:31 yasu
|
||||
# support overlay
|
||||
#
|
||||
# Revision 1.12 2003/12/10 05:12:48 yasu
|
||||
# ソースファイル指定に xxxx/src.c の形式を使えるように変更
|
||||
# Makefile.srcs の追加
|
||||
# IS_NITRO_DIR が定義してある場合に IS Debugger ライブラリをリンクするよう修正
|
||||
#
|
||||
# Revision 1.11 2003/12/02 04:53:06 yasu
|
||||
# ヘッダの表記修正
|
||||
#
|
||||
# Revision 1.10 2003/12/02 03:45:11 yasu
|
||||
# IS-NITRO-EMULATOR 用ライブラリ向けの修正
|
||||
#
|
||||
# Revision 1.9 2003/12/01 11:30:55 yasu
|
||||
# ROM 作成ツールを objcopy -> elftobin へ変更した
|
||||
#
|
||||
# Revision 1.8 2003/11/28 02:01:12 yasu
|
||||
# CW for NITRO の標準ライブラリを取り替えた
|
||||
#
|
||||
# Revision 1.7 2003/11/17 01:30:43 yasu
|
||||
# C++ の定義を C の定義と分離
|
||||
#
|
||||
# Revision 1.6 2003/11/11 03:06:31 yasu
|
||||
# base.a の位置の指定は lcf ファイルで行なうことにしたので前回の修正を無効にした
|
||||
#
|
||||
# Revision 1.5 2003/11/11 02:12:16 yasu
|
||||
# base.a を OBJS の前にリンクするように修正
|
||||
#
|
||||
# Revision 1.4 2003/11/06 10:38:39 yasu
|
||||
# ライブラリのサーチパスの設定ミスの修正
|
||||
#
|
||||
# Revision 1.3 2003/11/05 09:14:17 yasu
|
||||
# ライブラリ生成用ルール追加
|
||||
#
|
||||
# Revision 1.2 2003/11/05 07:12:36 yasu
|
||||
# コンパイルの依存ルールの仮完成
|
||||
#
|
||||
# Revision 1.1 2003/10/29 06:47:28 yasu
|
||||
# Support "make clean/clobber" only
|
||||
#
|
||||
# $NoKeywords: $
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
AINCLUDE_DIRS = $(LINCLUDES) $(EINCLUDES) $(GINCLUDES)
|
||||
ALIBRARY_DIRS = $(LLIBRARY_DIRS) $(ELIBRARY_DIRS) $(GLIBRARY_DIRS)
|
||||
ALIBRARIES = $(LLIBRARIES) $(ELIBRARIES) $(GLIBRARIES)
|
||||
|
||||
#
|
||||
# (make version 3.80)
|
||||
#
|
||||
# VPATH does not support the path name included white space like "C:/Program Files"
|
||||
# Please, be careful !!!
|
||||
#
|
||||
ifdef MSYSTEM
|
||||
NITRO_LIBVPATH_ = $(subst \:,\ ,$(subst $(SPACE),:,$(ALIBRARY_DIRS)))
|
||||
else
|
||||
CYGDRV ?= $(shell cygpath -u c:)/..
|
||||
ALIBVPATH = $(subst : ,,$(patsubst %:,$(CYGDRV)/%:,$(subst :,: ,$(ALIBRARY_DIRS))))
|
||||
endif
|
||||
|
||||
vpath %.a $(ALIBVPATH)
|
||||
vpath %.o $(ALIBVPATH)
|
||||
|
||||
INCLUDE_DIRS = $(subst \ -I,\ ,$(addprefix -I,$(AINCLUDE_DIRS)))
|
||||
LIBRARY_DIRS = $(subst \ -L,\ ,$(addprefix -L,$(ALIBRARY_DIRS)))
|
||||
LIBRARIES = $(subst \ -l,\ ,$(addprefix -l,$(ALIBRARIES)))
|
||||
|
||||
INCLUDES = -gccinc -I. $(INCLUDE_DIRS)
|
||||
|
||||
ifdef MSYSTEM # for MinGW32
|
||||
QUOTE ='
|
||||
else
|
||||
QUOTE ="
|
||||
endif
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
.PRECIOUS: $(OBJDIR)/%.o $(BINDIR)/%.nef $(LCFILE) $(PCHDR_H) $(PCHDR_PCH)
|
||||
|
||||
#
|
||||
# Generate dependency files
|
||||
#
|
||||
DEPEND_RULE = $(QUOTE)/ARM_EABI_Support/d;s/\\x0D//g;s/\\\\\\([^ ]\\)/\\/\\1/g;$(QUOTE)
|
||||
|
||||
define MOVE_SRC_DEPEND
|
||||
$(SED) -e $(DEPEND_RULE) $(*F).d > $(DEPENDDIR)/$(*F).d && $(RM) $(*F).d
|
||||
endef
|
||||
|
||||
|
||||
ifdef NITRO_STD_PCHDR
|
||||
ifndef NITRO_NO_STD_PCHDR
|
||||
|
||||
# .mch
|
||||
PCHDR_SRC = $(ROOT)/include/nitro.h
|
||||
PCHDR_CACHE = $(ROOT)/cache/include
|
||||
|
||||
PCHDR_C_DEFS = $(sort $(filter -DSDK_%,$(CCFLAGS)))
|
||||
PCHDR_C_NODEF = $(filter-out -D%,$(CCFLAGS))
|
||||
PCHDR_C_NAME = $(subst $(SPACE),,$(subst -DSDK_,.,$(subst =,-,$(PCHDR_C_DEFS))))
|
||||
PCHDR_C_BASE = $(PCHDR_CACHE)/$(notdir $(PCHDR_SRC))$(PCHDR_C_NAME).C
|
||||
PCHDR_C_MCH = $(PCHDR_C_BASE).mch
|
||||
PCHDR_C_DEPEND = $(PCHDR_C_BASE).depend
|
||||
PCHDR_CCFLAGS = -include $(PCHDR_C_MCH)
|
||||
CCFLAGS_NOLDEF = $(PCHDR_C_DEFS) $(PCHDR_C_NODEF)
|
||||
|
||||
PCHDR_CXX_DEFS = $(sort $(filter -DSDK_%,$(CXXFLAGS)))
|
||||
PCHDR_CXX_NODEF = $(filter-out -D%,$(CXXFLAGS))
|
||||
PCHDR_CXX_NAME = $(subst $(SPACE),,$(subst -DSDK_,.,$(subst =,-,$(PCHDR_CXX_DEFS))))
|
||||
PCHDR_CXX_BASE = $(PCHDR_CACHE)/$(notdir $(PCHDR_SRC))$(PCHDR_CXX_NAME).CXX
|
||||
PCHDR_CXX_MCH = $(PCHDR_CXX_BASE).mch
|
||||
PCHDR_CXX_DEPEND= $(PCHDR_CXX_BASE).depend
|
||||
PCHDR_CXXFLAGS = -include $(PCHDR_CXX_MCH)
|
||||
CXXFLAGS_NOLDEF = $(PCHDR_CXX_DEFS) $(PCHDR_CXX_NODEF)
|
||||
|
||||
GDIRT_CLOBBER += $(PCHDR_CACHE)/$(notdir $(PCHDR_SRC)).*
|
||||
|
||||
ifeq ($(MAKECMDGOALS),do-build)
|
||||
|
||||
## $(call BUILD_PCHDR,$(BASE),$(CCFLAGS))
|
||||
define BUILD_PCHDR
|
||||
@$(CP) $(PCHDR_SRC) $(1).h
|
||||
($(CD) $(dir $(1).mch) && \
|
||||
$(CC) $(subst -include ,-DSDK_PCHDR_DUMMY_,$(2)) $(INCLUDES) -MD -precompile $(notdir $(1).mch) $(1).h)
|
||||
@($(ECHO) $(1).mch: $(PCHDR_SRC) \\ > $(1).depend && \
|
||||
$(SED) -e '1d' -e $(DEPEND_RULE) $(1).d >> $(1).depend && $(RM) $(1).d $(1).h)
|
||||
endef
|
||||
|
||||
# precomipled header for C
|
||||
ifneq ($(strip $(OBJS_CC)),)
|
||||
-include $(PCHDR_C_DEPEND)
|
||||
|
||||
$(PCHDR_C_DEPEND): $(PCHDR_C_MCH)
|
||||
|
||||
$(PCHDR_C_MCH):
|
||||
$(call BUILD_PCHDR,$(PCHDR_C_BASE),$(CCFLAGS_NOLDEF))
|
||||
endif
|
||||
|
||||
# precomipled header for C++
|
||||
ifneq ($(strip $(OBJS_CXX)),)
|
||||
-include $(PCHDR_CXX_DEPEND)
|
||||
|
||||
$(PCHDR_CXX_DEPEND): $(PCHDR_CXX_MCH)
|
||||
|
||||
$(PCHDR_CXX_MCH):
|
||||
$(call BUILD_PCHDR,$(PCHDR_CXX_BASE),$(CXXFLAGS_NOLDEF))
|
||||
endif
|
||||
|
||||
endif # do-build
|
||||
endif # NITRO_NO_STD_PCHDR
|
||||
endif # NITRO_STD_PCHDR
|
||||
|
||||
# .c
|
||||
$(OBJS_CC):%.o:
|
||||
$(CC) $(CCFLAGS) $(INCLUDES) $(PCHDR_CCFLAGS) -c $(shell cygpath -m $<) -MD -o $@
|
||||
@$(MOVE_SRC_DEPEND)
|
||||
|
||||
# .cpp
|
||||
$(OBJS_CXX):%.o:
|
||||
$(CC) $(CXXFLAGS) $(INCLUDES) $(PCHDR_CXXFLAGS) -c $(shell cygpath -m $<) -MD -o $@
|
||||
@$(MOVE_SRC_DEPEND)
|
||||
|
||||
# .s
|
||||
$(OBJS_AS):%.o:
|
||||
$(AS) $(ASFLAGS) $(INCLUDES) -c $(shell cygpath -m $<) -MD -o $@
|
||||
@$(MOVE_SRC_DEPEND)
|
||||
|
||||
# .lcf .par
|
||||
ifdef LCFILE_SPEC
|
||||
|
||||
ADDRESS_DTCM ?= $(DEFAULT_ADDRESS_DTCM)
|
||||
|
||||
# exporting
|
||||
GLIBRARIES_LINK = $(filter-out $(LIBRARIES_UNLINK),$(ELIBRARIES) $(GLIBRARIES))
|
||||
LLIBRARIES_LINK = $(filter-out $(LIBRARIES_UNLINK),$(LLIBRARIES))
|
||||
|
||||
MAKELCF_DEFS = -DNITROSDK_ROOT='$(ROOT)' \
|
||||
-DTARGET_NAME='$(TARGET_NAME)' \
|
||||
-DOBJS_STATIC='$(OBJS_STATIC)' \
|
||||
-DOBJS_AUTOLOAD='$(OBJS_AUTOLOAD)' \
|
||||
-DOBJS_OVERLAY='$(OBJS_OVERLAY)' \
|
||||
-DGLIBS='$(GLIBRARIES_LINK)' \
|
||||
-DLLIBS='$(LLIBRARIES_LINK)' \
|
||||
-DCW_LIBS='$(CW_LIBS)' \
|
||||
-DOBJDIR='$(OBJDIR)' \
|
||||
-DLIBDIR='$(LIBDIR)' \
|
||||
-DBINDIR='$(BINDIR)' \
|
||||
-DPROC='$(CODEGEN_PROC)' \
|
||||
-DPLATFORM='$(NITRO_PLATFORM)' \
|
||||
-DCODEGEN='$(CODEGEN_ARCH)' \
|
||||
-DBUILD='$(NITRO_BUILD_DIR)' \
|
||||
-DADDRESS_DTCM='$(ADDRESS_DTCM)'
|
||||
|
||||
MAKELCF_FORMAT = -V$(CW_MAJOR_VER)
|
||||
|
||||
MAKELCF_OPTS = $(MAKELCF_FLAGS) $(MAKELCF_DEFS) $(MAKELCF_FORMAT)
|
||||
|
||||
$(LCFILE_AUTOGEN): $(LCFILE_SPEC) $(LCFILE_TEMPLATE) $(MAKEFILE) $(NITRO_BUILDTOOLSDIR)/commondefs
|
||||
$(MAKELCF) $(MAKELCF_OPTS) $< $(LCFILE_TEMPLATE) $@
|
||||
|
||||
$(LDRES_AUTOGEN): $(LCFILE_SPEC) $(LDRES_TEMPLATE) $(MAKEFILE) $(NITRO_BUILDTOOLSDIR)/commondefs
|
||||
@$(MAKELCF) $(MAKELCF_OPTS) $< $(LDRES_TEMPLATE) $@
|
||||
|
||||
endif
|
||||
|
||||
# compress/digest
|
||||
ifeq ($(CODEGEN_PROC),ARM9)
|
||||
ifdef NITRO_COMPRESS
|
||||
COMPSTATIC_CMDS = -9 -c
|
||||
#COMPSTATIC_CMDS = -7 -c
|
||||
endif
|
||||
ifdef NITRO_DIGEST
|
||||
COMPSTATIC_CMDS += -a
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef COMPSTATIC_CMDS
|
||||
COMPSUFFIX ?= $(DEFAULT_COMPSUFFIX)
|
||||
ifneq ($(COMPSUFFIX),)
|
||||
COMPSTATIC_FLAGS += -e$(COMPSUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# libcxx workaround
|
||||
ifdef SDK_CW_WA_LIBCXX
|
||||
CW_LIBCXX = $(CW_LIBCXX_DIR)/$(CW_LIBCXX_ARM)
|
||||
$(CW_LIBCXX): $(ROOT)/build/buildsetup/libcxx/Makefile
|
||||
$(MAKE) -f $<
|
||||
endif
|
||||
|
||||
|
||||
# .nef
|
||||
ifndef USE_MY_RULE_NEF
|
||||
ifneq ($(NITRO_MAKEROM),)
|
||||
$(BINDIR)/$(TARGET_BIN_BASENAME).nef: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF) $(EDEPENDS_NEF) $(ALIBRARIES) $(LDRES_FILE) $(CW_LIBCXX)
|
||||
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) @$(LDRES_FILE) $(LCFILE) -o $@
|
||||
ifdef COMPSTATIC_CMDS
|
||||
$(COMPSTATIC) $(COMPSTATIC_CMDS) $(COMPSTATIC_FLAGS) -f $(BINDIR)/component.files $(NITRO_STDOUT)
|
||||
endif
|
||||
else
|
||||
$(BINDIR)/$(TARGET_BIN_BASENAME).nef: $(OBJS) $(LCFILE) $(MAKEFILE) $(LDEPENDS_NEF) $(EDEPENDS_NEF) $(ALIBRARIES) $(CW_LIBCXX)
|
||||
$(LD) $(LDFLAGS) $(LIBRARY_DIRS) $(OBJS) $(LIBRARIES) $(LCFILE) -o $@
|
||||
endif
|
||||
endif
|
||||
|
||||
# .a
|
||||
ifndef USE_MY_RULE_A
|
||||
$(LIBDIR)/$(TARGET_LIB): $(OBJS)
|
||||
$(AR) $(ARFLAGS) $(OBJS) -o $@
|
||||
endif
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Get SDK_CW_BUILD_VERSION SDK_CW_BUILD_NUMBER
|
||||
#
|
||||
# IRIS V0.2 Hotfix 1
|
||||
# SDK_CW_BUILD_VERSION_CC=2.0
|
||||
# SDK_CW_BUILD_VERSION_LD=2.0
|
||||
# SDK_CW_BUILD_NUMBER_CC=0038
|
||||
# SDK_CW_BUILD_NUMBER_LD=0050
|
||||
#
|
||||
# NITRO V0.3
|
||||
# SDK_CW_BUILD_NUMBER_CC=0038
|
||||
# SDK_CW_BUILD_NUMBER_LD=0056
|
||||
#
|
||||
# NITRO V0.4.1
|
||||
# SDK_CW_BUILD_NUMBER_CC=0043
|
||||
# SDK_CW_BUILD_NUMBER_LD=0057
|
||||
#
|
||||
# NITRO V0.5
|
||||
# SDK_CW_BUILD_NUMBER_CC=0046
|
||||
# SDK_CW_BUILD_NUMBER_LD=0058
|
||||
#
|
||||
# NITRO V0.5 + HotFix1
|
||||
# SDK_CW_BUILD_NUMBER_CC=0049
|
||||
# SDK_CW_BUILD_NUMBER_LD=0061
|
||||
#
|
||||
# NITRO V0.6
|
||||
# SDK_CW_BUILD_NUMBER_CC=0050
|
||||
# SDK_CW_BUILD_NUMBER_LD=0062
|
||||
#
|
||||
# NITRO V0.6.1
|
||||
# SDK_CW_BUILD_NUMBER_CC=0050
|
||||
# SDK_CW_BUILD_NUMBER_LD=0063
|
||||
#
|
||||
# NITRO V0.7
|
||||
# SDK_CW_BUILD_NUMBER_CC=0050
|
||||
# SDK_CW_BUILD_NUMBER_LD=0063
|
||||
#
|
||||
# NITRO V1.0
|
||||
# SDK_CW_BUILD_NUMBER_CC=0056
|
||||
# SDK_CW_BUILD_NUMBER_LD=0067
|
||||
#
|
||||
# NITRO V1.0.2
|
||||
# SDK_CW_BUILD_NUMBER_CC=0068
|
||||
# SDK_CW_BUILD_NUMBER_LD=0068
|
||||
#
|
||||
# NITRO V1.2
|
||||
# SDK_CW_BUILD_NUMBER_CC=0073
|
||||
# SDK_CW_BUILD_NUMBER_LD=0072
|
||||
#
|
||||
# NITRO V1.2SP1
|
||||
# SDK_CW_BUILD_NUMBER_CC=0074
|
||||
# SDK_CW_BUILD_NUMBER_LD=0072
|
||||
#
|
||||
# NITRO V1.2SP2+patch
|
||||
# SDK_CW_BUILD_NUMBER_CC=0080
|
||||
# SDK_CW_BUILD_NUMBER_LD=0074
|
||||
#
|
||||
# NITRO V1.2SP3
|
||||
# SDK_CW_BUILD_NUMBER_CC=0084
|
||||
# SDK_CW_BUILD_NUMBER_LD=0077
|
||||
#
|
||||
# NITRO V1.2SP4
|
||||
# SDK_CW_BUILD_NUMBER_CC=0087
|
||||
# SDK_CW_BUILD_NUMBER_LD=7702
|
||||
#
|
||||
# NITRO V2.0beta
|
||||
# SDK_CW_BUILD_VERSION_CC=3.0
|
||||
# SDK_CW_BUILD_VERSION_LD=2.0
|
||||
# SDK_CW_BUILD_NUMBER_CC=0107
|
||||
# SDK_CW_BUILD_NUMBER_LD=0077
|
||||
#
|
||||
# NITRO V2.0
|
||||
# SDK_CW_BUILD_NUMBER_CC=0114
|
||||
# SDK_CW_BUILD_NUMBER_LD=0082
|
||||
#
|
||||
ifneq ($(findstring $(MAKECMDGOALS),do-build make-verinfo clean-verinfo),)
|
||||
|
||||
.PHONY: make-verinfo
|
||||
make-verinfo: $(SDK_VERINFO_CW_CC) $(SDK_VERINFO_CW_LD)
|
||||
|
||||
$(SDK_VERINFO_CW_CC): $(MWCC)
|
||||
@$(MWCC) -version | \
|
||||
$(SED) -e $(QUOTE)/^Version /!d;s/\(build [0-9]\{2,3\}\) /\100 /;s/^Version \([0-9.]*\).*build \([0-9]*\).*(build \([0-9]*\)).*/SDK_CW_BUILD_VERSION_CC=\1\nSDK_CW_BUILD_NUMBER_CC=\3\nSDK_CW_BUILD_NUMBER2_CC=\2/i;$(QUOTE) >$(SDK_VERINFO_CW_CC)
|
||||
@$(TOUCH) -r $(MWCC) $(SDK_VERINFO_CW_CC)
|
||||
|
||||
$(SDK_VERINFO_CW_LD): $(MWLD)
|
||||
@$(MWLD) -version | \
|
||||
$(SED) -e $(QUOTE)/^Version /!d;s/\(build [0-9]\{2,3\}\) /\100 /;s/^Version \([0-9.]*\).*build \([0-9]*\).*(build \([0-9]*\)).*/SDK_CW_BUILD_VERSION_LD=\1\nSDK_CW_BUILD_NUMBER_LD=\3\nSDK_CW_BUILD_NUMBER2_LD=\2/i;$(QUOTE) >$(SDK_VERINFO_CW_LD)
|
||||
@$(TOUCH) -r $(MWLD) $(SDK_VERINFO_CW_LD)
|
||||
|
||||
endif
|
||||
|
||||
.PHONY: clean-verinfo
|
||||
clean-verinfo:
|
||||
@$(RM) $(NITRO_BUILDTOOLSDIR)/verinfo.*
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Check codegen bug around blxeq/blxne
|
||||
#
|
||||
|
||||
.PHONY: codecheck
|
||||
|
||||
codecheck:
|
||||
@$(ECHO) --- checking codegen ---
|
||||
@$(NITRO_TOOLSDIR)/bin/blxchecker
|
||||
|
||||
#----- End of modulerules.cctype.CW -----
|
||||
Loading…
Reference in New Issue
Block a user