add package build tentatively.

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@218 4ee2a332-4b2b-5046-8439-1ba90f034370
This commit is contained in:
nakasima 2007-08-07 08:49:06 +00:00
parent 50995e2ab2
commit 2c7fd780a4
25 changed files with 968 additions and 0 deletions

0
build/libraries/vlink/@ Normal file
View File

0
builder/@ Normal file
View File

View File

@ -0,0 +1 @@
nakasima@nintendo.co.jp

View File

@ -0,0 +1 @@
nakasima@nintendo.co.jp

15
builder/etc/build.sh Normal file
View File

@ -0,0 +1,15 @@
#! bash
#----------------------------------------------------------------------------
# ビルド処理開始
#----------------------------------------------------------------------------
source `dirname $0`/spec.sh
bash $BUILDER_ROOT/etc/svnupdate.sh
SCRIPT=$BUILDER_ROOT/projects/$1.sh
shift 1
echo $SCRIPT $*
bash $SCRIPT $*
#----------------------------------------------------------------------------
# $Log: build.sh,v $
#
#----------------------------------------------------------------------------

42
builder/etc/spec.sh Normal file
View File

@ -0,0 +1,42 @@
#! bash -f
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
# ユーザの開発環境に依存した設定
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
# CodeWarrior のインストール先
#----------------------------------------------------------------------------
export CW_2_0_twl='C:\Program Files\Freescale\CW for NINTENDO DS V2.0'
#----------------------------------------------------------------------------
# CVS サーバの設定
#----------------------------------------------------------------------------
export SVNROOT=file:///\Aqua/svn/twl_wrapsdk
export SVNROOT_TWLSDK=$SVNROOT/trunk
#----------------------------------------------------------------------------
# ビルドディレクトリ位置
#----------------------------------------------------------------------------
export WORKSPACE_ROOT=$TWLSDK_ROOT/dev/autobuild
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
# 以下共通設定値
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
export BUILDER_ROOT="`cygpath -a $0 | sed 's/\(\/builder\)\/.*$/\1/'`"
export PROJECT_ROOT="$BUILDER_ROOT/projects"
export SVN="svn"
export SENDREPORT_ROOT="$BUILDER_ROOT/sendreport"
export SENDMAIL="$SENDREPORT_ROOT/sendreport.sh"
export LOG_FILTER="$SENDREPORT_ROOT/sendreport-logfilter.awk"
export MAKEHEADER="$SENDREPORT_ROOT/makeheader.sh"
export MAKENOW="$SENDREPORT_ROOT/makenow.sh"
export SENDREPORT_TMPDIR="$SENDREPORT_ROOT/tmp"
export ERRORS_LOG="$SENDREPORT_TMPDIR/errors.log"
export TMP_REPORT="$SENDREPORT_TMPDIR/report.tmp"
#----------------------------------------------------------------------------

20
builder/etc/svnupdate.sh Normal file
View File

@ -0,0 +1,20 @@
#! bash -f
#----------------------------------------------------------------------------
# builder/project, builder/sendreport の更新スクリプト
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
# 環境依存の設定の読み込み
#----------------------------------------------------------------------------
source `dirname $0`/spec.sh
#----------------------------------------------------------------------------
# プロジェクトの autobuild スクリプトの更新
#----------------------------------------------------------------------------
rm -rf $BUILDER_ROOT/projects
cd $BUILDER_ROOT/..
$SVN --quiet checkout -r HEAD $SVNROOT_TWLSDK/builder/projects $BUILDER_ROOT/projects
#----------------------------------------------------------------------------
# $Log: svnupdate.sh,v $
#----------------------------------------------------------------------------

3
builder/nightlybuild.bat Normal file
View File

@ -0,0 +1,3 @@
@echo off
echo 全てのパッケージの NightlyBuild を開始しています.
bash -f etc/build.sh nightlybuild

View File

@ -0,0 +1,49 @@
#! bash
#----------------------------------------------------------------------------
# TwlSDK.sh [nightlybuild/quickbuild] [HEAD/1_00pr1/...]
#----------------------------------------------------------------------------
source `dirname $0`/../etc/spec.sh
TARGET=$1
BRANCH=$2
PKNAME=TwlSDK
MAJORVER=5
case ${BRANCH} in
HEAD)
BRANCH_DIR=HEAD
BRANCH_TAG=HEAD
;;
*)
BRANCH_DIR=${BRANCH}
BRANCH_TAG=${BRANCH}
;;
esac
LOG_FILE=${WORKSPACE_ROOT}/${PKNAME}/${TARGET}-${BRANCH}.log
ADR_FILE=${BUILDER_ROOT}/etc/address/${TARGET}.adr
#--- TwlSDK/release ディレクトリをチェックアウト
mkdir -p ${WORKSPACE_ROOT}/${PKNAME}
cd ${WORKSPACE_ROOT}/${PKNAME}
rm -rf ${BRANCH_DIR}
export SVNROOT=${SVNROOT_TWLSDK}
echo ${SVN} export -r ${BRANCH_TAG} ${SVNROOT}/release ${BRANCH_TAG}/${PKNAME}/release
${SVN} --quiet export -r ${BRANCH_TAG} ${SVNROOT}/release ${BRANCH_TAG}/${PKNAME}/release
#--- ビルドを行ないログを記録する
( ${MAKEHEADER} ${TARGET} ${PKNAME} ${BRANCH} && \
${MAKENOW} && \
make -sk -f ./${PKNAME}/release/Makefile_twl.${MAJORVER}x -C ${BRANCH_DIR} TWLSDK_RELEASE=${WORKSPACE_ROOT}/${PKNAME}/${BRANCH_DIR} ${TARGET} && \
${MAKENOW} ) >${LOG_FILE} 2>&1
#--- zip ファイルをコピーする
mv ${WORKSPACE_ROOT}/${PKNAME}/${BRANCH_DIR}/*.zip ${WORKSPACE_ROOT}
#--- ログ転送
if [ -e ${ADR_FILE} ]; then
${SENDMAIL} ${ADR_FILE} ${LOG_FILE}
fi
#----------------------------------------------------------------------------

View File

@ -0,0 +1,41 @@
#! bash
#----------------------------------------------------------------------------
# Nightly ビルド処理
# nightlybuild.sh [rev番号] ...
# rev 番号は複数指定できる
# 環境変数を適当に設定してから TwlSDK-Sequence.sh を呼び出す
#----------------------------------------------------------------------------
ROOT=`dirname $0`
source ${ROOT}/../etc/spec.sh
TARGET=$1
PKNAME=TwlSDK
shift 1
tmp=`pwd`
for rev in $*; do
case $rev in
HEAD)
# Build for HEAD
echo === Build ${PKNAME} revision [$rev]
export CWFOLDER_TWL=${CW_2_0_twl}
export CWFOLDER_TWL_LONGJUMP=${CW_2_0_twl}
export TWL_STD_PCHDR=True
${ROOT}/${PKNAME}-Sequence.sh ${TARGET} $rev
;;
272)
# Build for r272
echo === Build ${PKNAME} revision [$rev]
export CWFOLDER_TWL=${CW_2_0_twl}
export CWFOLDER_TWL_LONGJUMP=${CW_2_0_twl}
export TWL_STD_PCHDR=True
${ROOT}/${PKNAME}-Sequence.sh ${TARGET} $rev
;;
*)
# Unknown
echo skip revision [$rev]
;;
esac
done
#----------------------------------------------------------------------------

View File

@ -0,0 +1,15 @@
#! bash -f
#----------------------------------------------------------------------------
# Nightly ビルド処理 nightlybuild.sh
# 複数のブランチをビルドしたいのならここに追加する
# (TwlSDK.sh 内の for 文にもタグ名を追加する必要があることに注意)
#----------------------------------------------------------------------------
ROOT=`dirname $0`
source $ROOT/../etc/spec.sh
#----------------------------------------------------------------------------
# HEAD
#
$ROOT/TwlSDK.sh nightlybuild HEAD
#----------------------------------------------------------------------------

View File

@ -0,0 +1,19 @@
#! bash -f
#----------------------------------------------------------------------------
# 時短ビルド処理 quickbuild.sh
# 複数のブランチをビルドしたいのならここに追加する
#----------------------------------------------------------------------------
ROOT=`dirname $0`
source $ROOT/../etc/spec.sh
#----------------------------------------------------------------------------
# HEAD
#
$ROOT/TwlSDK.sh quickbuild HEAD
#----------------------------------------------------------------------------
# revision 272
#
#$ROOT/TwlSDK.sh quickbuild 272
#----------------------------------------------------------------------------

3
builder/quickbuild.bat Normal file
View File

@ -0,0 +1,3 @@
@echo off
echo 全てのパッケージの高速ビルドを開始しています.
bash -f etc/build.sh quickbuild

Binary file not shown.

View File

@ -0,0 +1,13 @@
#! bash -f
#-----------------------------------------------------------------------------
# メールのヘッダ出力
# makeheader.sh BUILD_LEVEL PROJECT BRANCH
#-----------------------------------------------------------------------------
BUILD_LEVEL=$1
PROJECT=$2
BRANCH=$3
HOSTNAME=`hostname`
#
date +"Subject: ["$PROJECT"] "$BUILD_LEVEL"-"$BRANCH" %Y/%m/%d-%H:%M%n"
echo "***** This Mail was created by "$BUILD_LEVEL" on "$HOSTNAME". *****"
#

View File

@ -0,0 +1,6 @@
#! bash -f
#-----------------------------------------------------------------------------
# Œ»<C592>ÝŽžŠÔ<C5A0>o—Í
#-----------------------------------------------------------------------------
date +"%n::: %Y/%m/%d %H:%M:%S%n"
#

View File

@ -0,0 +1,53 @@
#! gawk -f
#----------------------------------------------------------------------------
# File: loghacker.awk
# Description: Hack the nightly build log file for sendmail
#----------------------------------------------------------------------------
# skip null line
/^$/ { next; }
# cvs checkout log
/^U / { next; }
# cvs tag log
/^T / { next; }
# cvs ? log
/^[?] / { next; }
# Subject:
/^Subject: / { print $0"\n"; next; }
# succeeded install command
/^ install:/ { next; }
# zipped 'adding file'
/^ adding:/ { next; }
/^ zip warning: name not matched/ { next; }
# warning build/demos/e3s/roundtrip/Makefile
/^Warning: This demo needs/ { next; }
# success message by BinToElf(CodeWarrior)
/^Success!$/ { next; }
# save current directory
/^====/ { currentdir = $0"\n"; next; }
# title
/^(:::|\[\[\[)/ { print "\n"$0; currentdir = ""; next; }
# error message
{ printf currentdir; print $0; currentdir = ""; }
#----------------------------------------------------------------------------
# $Log: sendreport-logfilter.awk,v $
# Revision 1.1 2005/06/30 08:26:17 yasu
# ディレクトリ整理
#
# Revision 1.1 2005/06/28 09:26:49 yasu
# sendreport システムの作成
#
# $NoKeywords: $
#----------------------------------------------------------------------------

View File

@ -0,0 +1,73 @@
#! bash
#########################################################################
#
# Script to send report
# ToAddress ファイル内のヘッダ記述を使い、ログファイルを smtp で送信する.
#
# $Id: sendreport.sh,v 1.7 2005/09/13 06:13:38 yasu Exp $
#
# Usage: % sendreport to_address logfile
#
#########################################################################
source `dirname $0`/../etc/spec.sh
#
# 引数のチェック
#
if [ "$1" == "" ]; then
echo No ToAddress File
exit 1
fi
export ADR_FILE=$1
if [ "$2" == "" ]; then
echo No LogFile
exit 1
fi
export LOG_FILE=$2
#
# ファイル送信
#
mkdir -p ${SENDREPORT_TMPDIR}
SEND_TO=`gawk 'NR==1{printf $0;}' ${ADR_FILE}`
SEND_CC=`gawk 'NR>=3{printf",";} NR>=2{printf $0;}' ${ADR_FILE}`
REPLY_TO=`gawk 'NR>=2{printf",";} NR>=1{printf $0;}' ${ADR_FILE}`
SUBJECT=`gawk 'NR==1{gsub(/^[A-Za-z]*: */, ""); printf $0;}' ${LOG_FILE}`
gawk -f ${LOG_FILTER} ${LOG_FILE} | sed -e '2,1000!d;0,/^$/d;' >${TMP_REPORT}
TMP_REPORT_WIN=`cygpath -m ${TMP_REPORT}`
${SENDREPORT_ROOT}/blatj.exe "${TMP_REPORT_WIN}" -noh2 -t "${SEND_TO}" -c "${SEND_CC}" -s "${SUBJECT}" -server mail -port 25 -f 'AUTOBUILDER <yasu@nintendo.co.jp>'
#########################################################################
# $Log: sendreport.sh,v $
# Revision 1.7 2005/09/13 06:13:38 yasu
# BuildModule: 行の削除
#
# Revision 1.6 2005/09/13 06:05:49 yasu
# Subject の追加
#
# Revision 1.5 2005/09/13 05:47:41 yasu
# 改行コードの取り扱いの修正 head コマンドは CR を削除する
#
# Revision 1.4 2005/09/13 04:19:22 yasu
# メール送信コマンドを ssmtp から blatj に変更
#
# Revision 1.3 2005/06/30 10:59:11 yasu
# 修正
#
# Revision 1.2 2005/06/30 10:49:17 yasu
# 修正
#
# Revision 1.1 2005/06/30 08:26:17 yasu
# ディレクトリ整理
#
# Revision 1.2 2005/06/29 12:57:59 yasu
# メール転送バグフィクス
#
# Revision 1.1 2005/06/28 09:26:49 yasu
# sendreport システムの作成
#
#########################################################################

View File

@ -0,0 +1,120 @@
#! bash
#########################################################################
#
# Script to send report
# ToAddress ファイル内のヘッダ記述を使い、ログファイルを smtp で送信する.
#
# $Id: sendreport.sh,v 1.7 2005/09/13 06:13:38 yasu Exp $
#
# Usage: % sendreport to_address logfile
#
#########################################################################
source `dirname $0`/../etc/spec.sh
#
# 引数のチェック
#
if [ "$1" == "" ]; then
echo No ToAddress File
exit 1
fi
export ADR_FILE=$1
if [ "$2" == "" ]; then
echo No LogFile
exit 1
fi
export LOG_FILE=$2
#
# ファイル送信
#
mkdir -p ${SENDREPORT_TMPDIR}
SEND_TO=`gawk 'NR>=2{printf",CC:";} NR>=1{printf $0;}' ${ADR_FILE}`
SUBJECT=`gawk 'NR==1{gsub(/^[A-Za-z]*: */, ""); printf $0;}' ${LOG_FILE}`
gawk -f ${LOG_FILTER} ${LOG_FILE} | sed -e '/^[^:]\+$/,1000!d' >${TMP_REPORT}
TMP_REPORT_WIN=`cygpath -m ${TMP_REPORT}`
${SENDREPORT_ROOT}/smail.exe -hayame.nintendo.co.jp -f"AUTOBUILDER <okubata_ryoma@nintendo.co.jp>" -s"${SUBJECT}" -F"${TMP_REPORT_WIN}" "${SEND_TO}"
# 4.[使用方法]
#
# 4-1 コマンドsmail.exe
#
#   smail [-d][-t][-i][-S][-p(19)] -hホスト名 -f送信ユーザ名 -sサブジェクト
# -F本文用ファイル名 -a添付ファイル名1[,添付ファイル名2,..] user1@XXXX[,user2@XXX,BCC:user3@XXX..]
#
# 4-2 オプション一覧
#
# ---------------------------------------------------------------------------------
# * -h: メールサーバ名又はIPアドレス
#   * user1@xxx.co.jp,[[BCC:]user2@xxx.co.jp],...
# 送信先メールアドレス(カンマ区切りで複数指定可能)
# CC:をメールアドレス頭に付加したものは、CC扱いとなります。
# BCC:をメールアドレス頭に付加したものは、BCC扱いとなります。
#   ---------------------------------------------------------------------------------
# -f: 送信者名 : -f"Eva <info@picolix.jp>" ←ニックネームを付けたい時
# : -finfo@picolix.jp
# -s: サブジェクト
# -F: 本文内容テキストファイル名
# -T: 本文内容 -Fよりも優先される
# -a: 添付ファイル名 (カンマ区切りで複数可能)
# -p: プライオリティー -p4以下は、重要度高 -p5以上は重要度低  : -p1 -p9
# -t: NTタイムゾーン調整オプション
# -S: サイレントモード(エラー表示しない)
# -d: デバッグ表示モード
# -i: インフォメーション表示モード
# -m: Message-IDの付加 -mで自動 -mxxxxxxxでxxxxxxxを付加
# -?: オプションヘルプ
#
# *部は必須です。
#
# 4.3 実行例
#
#  (1) smail -hmailhost -fuser -sメールテスト -Fread.me foo@hoge.co.xx,foo1@hoge.co.xx -t
#  (2) smail -hxxx.yyy.zzz.www -fuser -sメールテスト -Fread.me foo@hoge.co.jp,foo1@hoge.co.jp -t
#  (3) smail -hxxx.yyy.zzz.www -fアカウント -Fread.me -sテスト -F本文.txt foo@hoge.co.jp
#  (3) smail -hxxx.xxx.xxx.xxx -i -s"SMAILのテスト  エクセル添付です。"
#   -Fc:\temp\test.me -ac:\temp\test.xls -fxxx@xxx.xxx.xx yyy@yyy.yyy.xx,zzz@zzz.zzz.xx -t
# (4) smail -hxxx.xxx.xxx.xxx -i -s"SMAILのテスト エクセルとワードファイル添付です。"
# -Fc:\temp\test.me -ac:\temp\テスト.xls,c:\temp\サンプル.doc -fxxx@xxx.xxx.xx yyy@yyy.yyy.xx,zzz@zzz.zzz.xx -t
# (5) smail -hxxx.xxx.xxx.xxx -s"TEST" CC:who1@xxx.xxx.xxx,who2@xxx.xxx.xxx,CC:who3@xxx.xxx.xxx,who4@xxxx.xxx.xxx,BCC:who5@xxx.xxx.xxx,who6@xxx.xxx.xxx -f"eva<who7@xxx.xxx.xxx>"
# この場合は、
# 通常送信先who2@xxx.xxx.xxx,who4@xxxx.xxx.xxx,who6@xxx.xxx.xxx
# CC送信先 who1@xxx.xxx.xxx,who3@xxx.xxx.xxx
# BCC送信先 who5@xxx.xxx.xxx
# となります。
#
#########################################################################
# $Log: sendreport.sh,v $
# Revision 1.7 2005/09/13 06:13:38 yasu
# BuildModule: 行の削除
#
# Revision 1.6 2005/09/13 06:05:49 yasu
# Subject の追加
#
# Revision 1.5 2005/09/13 05:47:41 yasu
# 改行コードの取り扱いの修正 head コマンドは CR を削除する
#
# Revision 1.4 2005/09/13 04:19:22 yasu
# メール送信コマンドを ssmtp から blatj に変更
#
# Revision 1.3 2005/06/30 10:59:11 yasu
# 修正
#
# Revision 1.2 2005/06/30 10:49:17 yasu
# 修正
#
# Revision 1.1 2005/06/30 08:26:17 yasu
# ディレクトリ整理
#
# Revision 1.2 2005/06/29 12:57:59 yasu
# メール転送バグフィクス
#
# Revision 1.1 2005/06/28 09:26:49 yasu
# sendreport システムの作成
#
#########################################################################

Binary file not shown.

View File

@ -0,0 +1,17 @@
[POP3]
POP3_USE=0
APOP_USE=0
POP3_SERVER=dummy
POP3_PORT=110
POP3_AFTER_WAIT=300
POP3_TIME_OUT=10
POP3_USER=
[SMTP]
SMTP_AUTH=0
SMTP_USER=
SMTP_PORT=8025
[SSL]
SSL_USE=0
SSL_USE_POP=0
SMTPS_PORT=465
POPS_PORT=995

Binary file not shown.

3
builder/start.bat Normal file
View File

@ -0,0 +1,3 @@
@echo off
echo 自動スクリプト %1 を起動しています.
bash -f etc/build.sh %1 %2 %3 %4 %5 %6 %7 %8 %9

465
release/Makefile_twl.5x Normal file
View File

@ -0,0 +1,465 @@
#! make -f
#----------------------------------------------------------------------------
# Project: TwlSDK - release
# File: Makefile_twl.5x
#
# 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.
#
# $Date:: 2007-07-31#$
# $Rev: 387 $
# $Author: terui $
#
#----------------------------------------------------------------------------
#############################################################################
.PHONY: warning snapshot snapshot_tag
warning:;
@echo Type \"make nightlybuild\" to do make release snapshot of TwlSDK-SDK
@echo please check CVSROOT for cvs access also
@echo ex. CVSROOT=:pserver:user@ayame:/home/cvsproject/nitro-sdk
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
export PACKING_DATE_AND_TIME ?= $(shell date +"%y%m%d %H%M")
PACKING_DATE ?= $(word 1,$(PACKING_DATE_AND_TIME))
PACKING_TIME ?= $(word 2,$(PACKING_DATE_AND_TIME))
PACKING_TIME_NOZERO = $(shell echo $(PACKING_TIME) | sed -e 's/^0*\(.\)/\1/')
#############################################################################
## バージョン情報 ここから
#############################################################################
#
# バージョン数
#
SDK_VERSION_MAJOR ?= 1
SDK_VERSION_MINOR ?= 0
#
# [PR/RC/RELEASE] の設定 RELEASE の場合 RELSTEPB は無視される
#
SDK_VERSION_RELSTEPA_U ?= PR
SDK_VERSION_RELSTEPB ?= 1
#
# PLUS パッチの番号 (パッチ番号なしなら 0, その後 1 から順に加算)
# PLUS が 1 以上ならブランチビルドになる
#
SDK_VERSION_PLUS ?= 0
#############################################################################
## バージョン情報 ここまで
#############################################################################
#
# バージョン番号生成
# (例) _LVERSION = 2_01
# _FVERSION = 2.1
#
_LVERSION ?= $(SDK_VERSION_MAJOR)_$(shell printf '%02d' $(SDK_VERSION_MINOR))
_FVERSION ?= $(SDK_VERSION_MAJOR).$(SDK_VERSION_MINOR)
#
# RELSTEP 番号計算
# (例) SDK_VERSION_RELSTEP = PR1=10100 PR2=10200 ...
# RC1=20100 RC2=20200 ...
# RELEASE=30000
# _FVERSION_RELSTEP = PR1=pr1 PR2=pr2
# RC1=rc1 RC2=rc2
# RELEASE=
#
ifeq ($(SDK_VERSION_RELSTEPA_U),test)
SDK_VERSION_RELSTEPA ?= 0
_FVERSION_RELSTEP ?= test$(SDK_VERSION_RELSTEPB)
else
ifeq ($(SDK_VERSION_RELSTEPA_U),PR)
SDK_VERSION_RELSTEPA ?= 10000
_FVERSION_RELSTEP ?= pr$(SDK_VERSION_RELSTEPB)
else
ifeq ($(SDK_VERSION_RELSTEPA_U),RC)
SDK_VERSION_RELSTEPA ?= 20000
_FVERSION_RELSTEP ?= rc$(SDK_VERSION_RELSTEPB)
else
ifeq ($(SDK_VERSION_RELSTEPA_U),RELEASE)
SDK_VERSION_RELSTEPA ?= 30000
_FVERSION_RELSTEP ?=
else
endif
endif
endif
endif
SDK_VERSION_RELSTEP ?= $(shell awk 'BEGIN{ print $(SDK_VERSION_RELSTEPA)+100*$(SDK_VERSION_RELSTEPB)+$(SDK_VERSION_PLUS);}')
#
# PLUS 文字列生成
# (例) _FVERSION_PLUS = なし/plus/plus2/plus3...
#
ifeq ($(SDK_VERSION_PLUS),0)
_FVERSION_PLUS ?=
else
ifeq ($(SDK_VERSION_PLUS),1)
_FVERSION_PLUS ?= plus
else
_FVERSION_PLUS ?= plus$(SDK_VERSION_PLUS)
endif
endif
COUNTRY_CODE ?= jp
#############################################################################
## ブランチ名とタグ名の設定
#############################################################################
ifndef AUTOBUILD_HOST
export AUTOBUILD_HOST := $(shell hostname)
endif
ifeq ($(SDK_VERSION_PLUS),0)
CURRENT_BRANCH ?= HEAD
SNAPSHOT_TAG ?= NightlyBuild
else
CURRENT_BRANCH ?= TwlSDK_$(_LVERSION)$(_FVERSION_RELSTEP)_branch
SNAPSHOT_TAG ?= NightlyBuild_$(_LVERSION)$(_FVERSION_RELSTEP)_branch
endif
TEMP_TAG ?= $(SNAPSHOT_TAG)_$(subst .,_,$(AUTOBUILD_HOST))
TWLSDK_RELEASE_NAME ?= TwlSDK-$(_LVERSION)$(_FVERSION_RELSTEP)$(_FVERSION_PLUS)-$(PACKING_DATE)-$(PACKING_TIME)
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# for Snapshot Release
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
TARGET_PLATFORM ?= TWL
ifeq ($(TARGET_PLATFORM), TWL)
TWLSDK_ROOT ?= c:/dev/autobuild/TwlSDK
VER_SYS ?= svn
endif
TWLSDK_RELEASE ?= $(TWLSDK_ROOT)/release
TSDK_RELEASE ?= $(subst $(SPACE),\ ,$(subst \,/,$(TWLSDK_RELEASE)))
TWLSDK_PACKAGE_ROOT ?= $(TSDK_RELEASE)/package
TWLSDK_WORKING_ROOT ?= $(TSDK_RELEASE)/working
TWLSDK_SRLPKG_ROOT ?= $(TSDK_RELEASE)/srlpkg
TWLSDK_PACKDIR ?= TwlSDK-srlpkg
TWLSDK_MODULES ?= TwlSDK
VERSIONFILE ?= $(TSDK_RELEASE)/version.h
ARCHIVE_PUBLIC ?= $(TSDK_RELEASE)/$(TWLSDK_RELEASE_NAME)_$(COUNTRY_CODE).zip
ARCHIVE_PRIVATE ?= $(TSDK_RELEASE)/$(TWLSDK_RELEASE_NAME)-private_$(COUNTRY_CODE).zip
ARCHIVE_SRLPKG ?= $(TSDK_RELEASE)/$(TWLSDK_RELEASE_NAME)-srlpkg_$(COUNTRY_CODE).zip
NITRO_WITHOUT_TEG ?= True
DO_SUPER ?= $(if $(NITRO_WITHOUT_TEG),,super-)
FILELIST ?= $(TWLSDK_WORKING_ROOT)/filelist
MAKEFILE ?= $(firstword $(MAKEFILE_LIST))
REMAKE ?= make -sk -f $(MAKEFILE)
# 一時的にfullビルドをreleaseビルドのみに
NIGHTLY_TARGET := nightly
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# ビルド設定
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
.PHONY: quickbuild nightlybuild testbuild tagbuild
quickbuild:
@echo --- $@ ---
# +@$(REMAKE) settag
+@$(REMAKE) revision
+@$(REMAKE) checkout
+@$(REMAKE) build_libraries
+@$(REMAKE) install_libraries
+@$(REMAKE) filelist
+@$(REMAKE) archives
# +@$(REMAKE) settag_new
+@$(REMAKE) build_arm_rel_srl
+@$(REMAKE) srl_package
nightlybuild:
@echo --- $@ ---
# +@$(REMAKE) settag
+@$(REMAKE) revision
+@$(REMAKE) checkout
+@$(REMAKE) checkcode
+@$(REMAKE) build_all
+@$(REMAKE) install_libraries
+@$(REMAKE) filelist
+@$(REMAKE) archives
# +@$(REMAKE) settag_new
+@$(REMAKE) test_archives
+@$(REMAKE) srl_package
testbuild:
@echo --- $@ ---
# +@$(REMAKE) settag
+@$(REMAKE) revision
+@$(REMAKE) checkout
+@$(REMAKE) checkcode
+@$(REMAKE) build_all
# TAG を指定してパッケージを作成する make -f [Makefile 名] tagbuild TEMP_TAG=[TAG 名]
tagbuild:
@echo --- $@ ---
+@$(REMAKE) revision
+@$(REMAKE) checkout
+@$(REMAKE) build_libraries
+@$(REMAKE) install_libraries
+@$(REMAKE) filelist
+@$(REMAKE) archives
+@$(REMAKE) build_arm_rel_srl
+@$(REMAKE) srl_package
#---------------------------------------------------------------------------
# ソースツリーのチェックアウト
# NITROSDK_PACKAGE_ROOT: 最終パッケージ用のディレクトリ
# NITROSDK_WORKING_ROOT: ライブラリビルド用のディレクトリ
#
.PHONY: settag checkout settag_new
settag:
@echo --- $@ ---
cvs -Q rtag -F -r $(CURRENT_BRANCH) $(TEMP_TAG) $(TWLSDK_MODULES)
checkout:
@echo --- $@ ---
rm -rf $(TWLSDK_PACKAGE_ROOT) $(TWLSDK_WORKING_ROOT)
mkdir -p $(TWLSDK_PACKAGE_ROOT)
cd $(TWLSDK_PACKAGE_ROOT); \
svn --quiet export -r HEAD $(SVNROOT)
cp -pr $(TWLSDK_PACKAGE_ROOT) $(TWLSDK_WORKING_ROOT)
settag_new:
@echo --- $@ ---
cvs -Q rtag -F -r $(TEMP_TAG) $(SNAPSHOT_TAG)_$(PACKING_DATE)_$(PACKING_TIME) $(TWLSDK_MODULES)
#---------------------------------------------------------------------------
# リビジョンの表示
#
revision:
@echo --- $@ ---
svn --limit 1 log $(SVNROOT) | sed -e '2s/\(r[0-9]*\).*$$/\1/' -e '1d' -e '3,5d'
#---------------------------------------------------------------------------
# コードのチェック
#
.PHONY: checkcode
checkcode:
+@echo --- $@ ---; \
for module in $(TWLSDK_MODULES); do \
export ROOT=$(TWLSDK_WORKING_ROOT)/$$module; \
make -C $$ROOT TWLSDK_ROOT=$$ROOT; \
done
#---------------------------------------------------------------------------
# ソースツリーの全ビルド/ライブラリビルド
#
.PHONY: build_all build_libraries build_core
build_all:
@echo --- $@ ---
+unset NITRO_WITHOUT_DEMOS; $(REMAKE) build_core
build_libraries:
@echo --- $@ ---
+export NITRO_WITHOUT_DEMOS=TRUE; $(REMAKE) build_core
build_core:
+export TWLSDK_ROOT=$(TWLSDK_ROOT); \
export TWLSDK_VERSION_MAJOR=$(SDK_VERSION_MAJOR); \
for module in $(TWLSDK_MODULES); do \
export ROOT=$(TWLSDK_WORKING_ROOT)/$$module; \
export INST=$(TWLSDK_PACKAGE_ROOT)/$$module; \
make -C $$ROOT TWLSDK_ROOT=$$ROOT $(DO_SUPER)$(NIGHTLY_TARGET); \
$(REMAKE) mispatch_check; \
done
#---------------------------------------------------------------------------
# 誤パッチ検出ツールを用いてチェックを行う
#
.PHONY: mispatch_check
mispatch_check:
@echo --- mispatch_check ---
# make -C $$ROOT/build/tests/mispatch_check TWLSDK_ROOT=$$ROOT $(NIGHTLY_TARGET)
#---------------------------------------------------------------------------
# ライブラリのインストール
#
.PHONY: install_libraries
install_libraries:
@echo --- $@ ---
+export TWLSDK_ROOT=$(TWLSDK_ROOT); \
export TWLSDK_VERSION_MAJOR=$(SDK_VERSION_MAJOR); \
export NITRO_WITHOUT_DEMOS=TRUE; \
for module in $(TWLSDK_MODULES); do \
export ROOT=$(TWLSDK_WORKING_ROOT)/$$module; \
export INST=$(TWLSDK_PACKAGE_ROOT)/$$module; \
make -C $$ROOT TWLSDK_ROOT=$$ROOT \
TWLSDK_INSTALL_ROOT=$$INST \
NITROSDK_INSTALL_ROOT=$$INST \
$(DO_SUPER)$(NIGHTLY_TARGET)-install; \
done
#---------------------------------------------------------------------------
# パッケージファイルの分類リストを生成
#
.PHONY: filelist
filelist:
@echo --- $@ ---; \
cd $(TWLSDK_PACKAGE_ROOT); \
/bin/find . -name '_*' -print > $(FILELIST)_; \
/bin/find . -name '_' -exec dirname {} \; >> $(FILELIST)_; \
/bin/find . -name CVS -print >> $(FILELIST)_; \
/bin/find . -name '@*' -print > $(FILELIST)@; \
/bin/find . -name '@' -exec dirname {} \; >> $(FILELIST)@
#---------------------------------------------------------------------------
# パッケージの作成
#
.PHONY: archives
archives:
@echo --- $@ ---; \
cd $(TWLSDK_PACKAGE_ROOT); \
rm -rf `cat $(FILELIST)_` $(ARCHIVE_PRIVATE); \
if [ -s $(FILELIST)@ ]; then \
cat $(FILELIST)@ | sort | uniq | zip -r@ $(ARCHIVE_PRIVATE); \
fi; \
rm -rf `cat $(FILELIST)@` $(ARCHIVE_PUBLIC); \
zip -r $(ARCHIVE_PUBLIC) .
#---------------------------------------------------------------------------
# パッケージをテストビルドする
# 1) すべてのデモがパッケージ内のライブラリバイナリとリンクできるか?
# 2) 添付したライブラリのソースファイルがビルド可能か?
#
.PHONY: test_archives
test_archives:
@echo --- $@ ---
+export TWLSDK_VERSION_MAJOR=$(SDK_VERSION_MAJOR); \
for module in $(TWLSDK_MODULES); do \
export INST=$(TWLSDK_PACKAGE_ROOT)/$$module; \
make -C $$INST/build/demos \
TWLSDK_ROOT=$$INST \
$(DO_SUPER)$(NIGHTLY_TARGET); \
make -C $$INST \
TWLSDK_ROOT=$$INST \
NITRO_WITHOUT_DEMOS=TRUE \
$(DO_SUPER)$(NIGHTLY_TARGET); \
done
#---------------------------------------------------------------------------
# Build srl binary package
# build/demos 以下の ARM9-TS/Release 版 srl ファイルをパッケージ化する
#
.PHONY: srl_package build_arm_rel_srl
TWLSDK_SRLPKG_DIR ?= $(TWLSDK_SRLPKG_ROOT)/$(TWLSDK_PACKDIR)
srl_package:
@echo --- $@ ---
rm -rf $(TWLSDK_SRLPKG_ROOT)
cd $(TWLSDK_PACKAGE_ROOT); \
/bin/find . -name '*.srl' -print | \
perl -ne ' \
chop $$_; \
if (m#/build/demos/(([^/]+)/([^/]+/)*([^/]+)/bin/ARM9-BB/Release/([^/]+\.srl))#) \
{ \
system "install -D ".$$_." $(TWLSDK_SRLPKG_DIR)/".$$2."/".$$4.".srl\n"; \
}'
if [ -e $(TWLSDK_SRLPKG_DIR) ]; then \
cd $(TWLSDK_SRLPKG_ROOT); \
zip -r $(ARCHIVE_SRLPKG) $(TWLSDK_PACKDIR); \
fi
build_arm_rel_srl:
@echo --- $@ ---
+export TWLSDK_VERSION_MAJOR=$(SDK_VERSION_MAJOR); \
for module in $(TWLSDK_MODULES); do \
export INST=$(TWLSDK_PACKAGE_ROOT)/$$module; \
make -C $$INST/build/demos \
TWLSDK_ROOT=$$INST \
TWL_RELEASE=TRUE \
TWL_CODEGEN=ARM \
TWL_PLATFORM=BB \
build; \
done
#---------------------------------------------------------------------------
# バージョンファイルの生成(build/buildsetup/versions 以下から呼び出し)
#
.PHONY: version
version:
@echo --- $@ ---
@mkdir -p $(dir $(VERSIONFILE))
@echo "#ifndef TWLSDK_VERSION_H_" > $(VERSIONFILE)
@echo "#define TWLSDK_VERSION_H_" >> $(VERSIONFILE)
@echo "#define SDK_VERSION_DATE 20$(PACKING_DATE)" >> $(VERSIONFILE)
@echo "#define SDK_VERSION_TIME $(PACKING_TIME_NOZERO)" >> $(VERSIONFILE)
@echo "#define SDK_VERSION_MAJOR $(SDK_VERSION_MAJOR)" >> $(VERSIONFILE)
@echo "#define SDK_VERSION_MINOR $(SDK_VERSION_MINOR)" >> $(VERSIONFILE)
@echo "#define SDK_VERSION_RELSTEP $(SDK_VERSION_RELSTEP)" >> $(VERSIONFILE)
@echo "#define SDK_BUILDVER_CW_CC $(SDK_BUILDVER_CW_CC)" >> $(VERSIONFILE)
@echo "#define SDK_BUILDVER_CW_LD $(SDK_BUILDVER_CW_LD)" >> $(VERSIONFILE)
@echo "#define SDK_BUILDNUM_CW_CC $(SDK_BUILDNUM_CW_CC)" >> $(VERSIONFILE)
@echo "#define SDK_BUILDNUM_CW_LD $(SDK_BUILDNUM_CW_LD)" >> $(VERSIONFILE)
@echo "#if 0 // for Makefile" >> $(VERSIONFILE)
@echo "TWL_VERSION_DATE_AND_TIME = $(PACKING_DATE_AND_TIME)" >> $(VERSIONFILE)
@echo "TWL_VERSION_DATE = 20$(PACKING_DATE)" >> $(VERSIONFILE)
@echo "TWL_VERSION_TIME = $(PACKING_TIME_NOZERO)" >> $(VERSIONFILE)
@echo "TWL_VERSION_MAJOR = $(SDK_VERSION_MAJOR)" >> $(VERSIONFILE)
@echo "TWL_VERSION_MINOR = $(SDK_VERSION_MINOR)" >> $(VERSIONFILE)
@echo "TWL_VERSION_RELSTEP = $(SDK_VERSION_RELSTEP)" >> $(VERSIONFILE)
@echo "TWL_VERSION_BUILDVER_CW_CC = $(SDK_BUILDVER_CW_CC)" >> $(VERSIONFILE)
@echo "TWL_VERSION_BUILDVER_CW_LD = $(SDK_BUILDVER_CW_LD)" >> $(VERSIONFILE)
@echo "TWL_VERSION_BUILDNUM_CW_CC = $(SDK_BUILDNUM_CW_CC)" >> $(VERSIONFILE)
@echo "TWL_VERSION_BUILDNUM_CW_LD = $(SDK_BUILDNUM_CW_LD)" >> $(VERSIONFILE)
@echo "#" >> $(VERSIONFILE)
@echo "# RELSTEP PR1=10100 PR2=10200 ..." >> $(VERSIONFILE)
@echo "# RC1=20100 RC2=20200 ..." >> $(VERSIONFILE)
@echo "# RELEASE=30000" >> $(VERSIONFILE)
@echo "#" >> $(VERSIONFILE)
@echo "#endif" >> $(VERSIONFILE)
@echo "" >> $(VERSIONFILE)
@echo "#ifndef SDK_VERSION_NUMBER" >> $(VERSIONFILE)
@echo "#define SDK_VERSION_NUMBER(major, minor, relstep) \\" >> $(VERSIONFILE)
@echo "(((major) << 24) | ((minor) << 16) | ((relstep) << 0))" >> $(VERSIONFILE)
@echo "#define SDK_CURRENT_VERSION_NUMBER \\" >> $(VERSIONFILE)
@echo "SDK_VERSION_NUMBER(SDK_VERSION_MAJOR, SDK_VERSION_MINOR, SDK_VERSION_RELSTEP)" >> $(VERSIONFILE)
@echo "#endif" >> $(VERSIONFILE)
@echo "" >> $(VERSIONFILE)
@echo "#endif" >> $(VERSIONFILE)
#---------------------------------------------------------------------------
.PHONY: clean clobber
clean clobber:
@echo --- $@ ---
rm -rf $(TWLSDK_PACKAGE_ROOT) \
$(TWLSDK_WORKING_ROOT) \
$(TWLSDK_SRLPKG_ROOT)
#===== End of Makefile_twl.5x =====

9
setup Normal file
View File

@ -0,0 +1,9 @@
#!/usr/bin/bash
#----------------------------------------------------------------
# This script is not for execute directly.
# Please use 'source ./setup'.
#----------------------------------------------------------------
tmp=`pwd`
export TWLSDK_ROOT=`cygpath -m $tmp`