SystemMenuVersionのアーカイブ構造を変更。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1831 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-07-09 12:59:17 +00:00
parent b24dfab8a4
commit 1d2a406766
13 changed files with 21 additions and 15 deletions

View File

@ -30,13 +30,16 @@ TARGET_FIRM = SYSTEMMENU
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
include ./commondefs.sysmenuVersion include ./commondefs.sysmenuVersion
REGION ?= A
DST_DIR = dev
# タイムスタンプ # タイムスタンプ
VER_TIMESTAMP = 08062300 VER_TIMESTAMP = 08062300
# システムメニューバージョン # システムメニューバージョン
MAJOR_VERSION = 0 MAJOR_VERSION = 0
MINOR_VERSION = 1 MINOR_VERSION = 1
STR_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION) STR_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION)$(REGION)
# ユーザー領域サイズ(=128MB) # ユーザー領域サイズ(=128MB)
USER_AREA_SIZE = 134217728 USER_AREA_SIZE = 134217728
@ -47,12 +50,12 @@ NUP_HOSTNAME = nus.shop.wii.com:443
# EULAのURL # EULAのURL
EULA_URL = https://cfh-test.t.app.nintendowifi.net/eula/ EULA_URL = https://cfh-test.t.app.nintendowifi.net/eula/
GEN_VERSION_PARAM = $(VER_TIMESTAMP) $(STR_VERSION) $(MAJOR_VERSION) $(MINOR_VERSION) \ GEN_VERSION_PARAM = $(DST_DIR) $(VER_TIMESTAMP) $(STR_VERSION) $(MAJOR_VERSION) $(MINOR_VERSION) \
$(USER_AREA_SIZE) $(NUP_HOSTNAME) $(EULA_URL) $(USER_AREA_SIZE) $(NUP_HOSTNAME) $(EULA_URL)
GEN_VERSION_FILE = $(SYSMENU_TOOLSDIR)/bin/genVersion.plx GEN_VERSION_FILE = $(SYSMENU_TOOLSDIR)/bin/genVersion.plx
VERSION_TAD = HNLA.tad VERSION_TAD = HNL$(REGION).tad
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),) ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
VERSION_DAT = $(SYSMENU_VERSION_FILE) VERSION_DAT = $(SYSMENU_VERSION_FILE)

View File

@ -15,13 +15,13 @@
use POSIX 'strftime'; use POSIX 'strftime';
use File::Basename; use File::Basename;
if ($#ARGV < 6) { if ($#ARGV < 7) {
printf STDOUT ("Usage: %s [genVersion] timestamp strVersion majorVersion minorVersion userAreaSize NUPHostName EULAURL\n", $0); printf STDOUT ("Usage: %s [genVersion] dir timestamp strVersion majorVersion minorVersion userAreaSize NUPHostName EULAURL\n", $0);
exit(-1); exit(-1);
} }
# アーカイブにまとめるデータファイル # アーカイブにまとめるデータファイル
my $dataDir = "archive_data"; my $dataDir = $ARGV[0];
my $versionFile = "$dataDir/version.bin"; my $versionFile = "$dataDir/version.bin";
my $timeStampFile = "$dataDir/time_stamp.bin"; my $timeStampFile = "$dataDir/time_stamp.bin";
my $userAreaSizeFile = "$dataDir/user_area_size.bin"; my $userAreaSizeFile = "$dataDir/user_area_size.bin";
@ -75,19 +75,22 @@ if (exists($ENV{"TWL_IPL_RED_ROOT"}) ){
# システムメニューバージョンの出力 # システムメニューバージョンの出力
{ {
my $length = 0x20; my $length = 0x1c;
my $sysMenuVersion = $ARGV[1]; my $sysMenuVersion = $ARGV[2];
if( length $sysMenuVersion >= $length ) { if( length $sysMenuVersion >= $length ) {
printf "ERROR: SystemMenu version length less than %d.\n", $length; printf "ERROR: SystemMenu version length less than %d.\n", $length;
die; die;
} }
open VERSION, ">$versionFile" or die "File Open Error.\n"; open VERSION, ">$versionFile" or die "File Open Error.\n";
binmode VERSION; binmode VERSION;
# my $ver = ( ( $ARGV[ 1 ] & 0xffff ) << 16 ) | ($ARGV[ 2 ] & 0xffff); # my $ver = ( ( $ARGV[ 3 ] & 0xffff ) << 16 ) | ($ARGV[ 4 ] & 0xffff);
# printf "version = %d.%d\n", ($ver >> 16), ($ver & 0xffff); # printf "version = %d.%d\n", ($ver >> 16), ($ver & 0xffff);
# syswrite( VERSION, pack( "L", $ver ) ); # syswrite( VERSION, pack( "L", $ver ) );
printf "SysMenu version = %s\n", $sysMenuVersion; printf "SysMenu version = %s\n", $sysMenuVersion;
syswrite( VERSION, pack( "a$length", $sysMenuVersion) ); $length /= 2; # to UTF16 length
syswrite( VERSION, pack( "SSS$length", $ARGV[ 3 ], $ARGV[ 4 ], unpack( "C*", $sysMenuVersion ) ) );
# pack "S*", unpack( "C*", $ascii ), 0;
close VERSION; close VERSION;
} }
@ -96,7 +99,7 @@ if (exists($ENV{"TWL_IPL_RED_ROOT"}) ){
open TIMESTAMP, ">$timeStampFile" or die "File Open Error.\n"; open TIMESTAMP, ">$timeStampFile" or die "File Open Error.\n";
binmode TIMESTAMP; binmode TIMESTAMP;
# my $timestamp = strftime "%y%m%d%H", localtime; # my $timestamp = strftime "%y%m%d%H", localtime;
my $timestamp = $ARGV[ 0 ]; my $timestamp = $ARGV[ 1 ];
printf "timestamp = %s\n", $timestamp; printf "timestamp = %s\n", $timestamp;
syswrite( TIMESTAMP, pack( "N", unpack( "L", pack( "H8", $timestamp ) ) ) ); syswrite( TIMESTAMP, pack( "N", unpack( "L", pack( "H8", $timestamp ) ) ) );
close TIMESTAMP; close TIMESTAMP;
@ -106,7 +109,7 @@ if (exists($ENV{"TWL_IPL_RED_ROOT"}) ){
{ {
open USERAREA, ">$userAreaSizeFile" or die "File Open Error.\n"; open USERAREA, ">$userAreaSizeFile" or die "File Open Error.\n";
binmode USERAREA; binmode USERAREA;
my $userAreaSize = $ARGV[ 4 ]; my $userAreaSize = $ARGV[ 5 ];
printf "userAreaSize = $userAreaSize\n"; printf "userAreaSize = $userAreaSize\n";
syswrite( USERAREA, pack( "L", $userAreaSize ) ); syswrite( USERAREA, pack( "L", $userAreaSize ) );
close USERAREA; close USERAREA;
@ -115,7 +118,7 @@ if (exists($ENV{"TWL_IPL_RED_ROOT"}) ){
# NUP_HOSTNAMEの出力 # NUP_HOSTNAMEの出力
{ {
my $length = 0x40; my $length = 0x40;
my $nupHostName = $ARGV[ 5 ]; my $nupHostName = $ARGV[ 6 ];
if( length $nupHostName >= $length ) { if( length $nupHostName >= $length ) {
printf "ERROR: NUP Host Name length less than %d.\n", $length; printf "ERROR: NUP Host Name length less than %d.\n", $length;
die; die;
@ -130,7 +133,7 @@ if (exists($ENV{"TWL_IPL_RED_ROOT"}) ){
# EULA_URLの出力 # EULA_URLの出力
{ {
my $length = 0x80; my $length = 0x80;
my $urlEULA = $ARGV[ 6 ]; my $urlEULA = $ARGV[ 7 ];
if( length $urlEULA >= $length ) { if( length $urlEULA >= $length ) {
printf "ERROR: EULA URL length less than %d.\n", $length; printf "ERROR: EULA URL length less than %d.\n", $length;
die; die;
@ -155,7 +158,7 @@ if (exists($ENV{"TWLSYSTEM_ROOT"}) ){
# アーカイブ作成 # アーカイブ作成
{ {
system ( "$TWLSYSTEM_ROOT/tools/bin/nnsarc.exe -c $archiveFile -A 16 $dataDir -s -E .svn" ); system ( "$TWLSYSTEM_ROOT/tools/bin/nnsarc.exe -c $archiveFile -A 16 -a $dataDir -s -E .svn" );
} }
# アーカイブのハッシュの出力 # アーカイブのハッシュの出力