(sato) 無線開発用 SystemUpdaterRegion作成に対応しました。 (RED表示ランチャー+任意のSystemMenuファイル)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2614 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
(no author) 2008-10-10 05:27:22 +00:00
parent 78dbdb3b78
commit 7b37fdfd6e
7 changed files with 536 additions and 53 deletions

View File

@ -23,6 +23,7 @@ export SYSM_BUILD_FOR_DEBUGGER = TRUE
# SDK configuration for export
override TWL_ARCHGEN := LIMITED
overrice TWL_CODEGEN := THUMB
export TWL_ARCHGEN
export OBJDIR = ./obj.WLAN/$(TWL_BUILDTYPE)
export DEPENDDIR = ./depend.WLAN/$(TWL_BUILDTYPE)
@ -41,35 +42,25 @@ DS_HASH_TABLE = $(SYSMENU_ROOT)/build/systemMenu_RED/DSHashTable
SHARED_FONT_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/sharedFont
NANDFIRM_DIR = $(SYSMENU_ROOT)/build/nandfirm/menu-launcher
SYSTEMUPDATER_DIR = $(SYSMENU_ROOT)/build/systemMenu_tools/SystemUpdater
SYSTEMUPDATER_DIR = $(SYSMENU_ROOT)/build/systemMenu_tools/SystemUpdaterRegionSelect
# 実際に書き込みたいファイルの置かれているdataフォルダを指定
export UPDATER_HOST_ROOT_DIR = $(call empath,$(SYSTEMUPDATER_DIR)/data)
export UPDATER_HOST_ROOT_DIR = $(call empath,$(SYSMENU_ROOT)/build/tests/build4WLDev/data_sysmenu)
ifdef BUILD_TWLSDK
SUBMAKES += Makefile_environment
endif
SUBMAKES += $(SYSMENU_ROOT)/build/tools/Makefile \
$(SYSMENU_ROOT)/build/libraries/Makefile \
$(SYSMENU_ROOT)/build/libraries_sysmenu/Makefile_autogen \
SUBMAKES = $(SYSMENU_ROOT)/build/libraries_sysmenu/Makefile \
\
$(LAUNCHER_DIR)/Makefile_autogen \
$(MACHINESETTINGS_DIR)/Makefile_autogen \
$(WLANFIRM_DIR)/Makefile \
$(DS_HASH_TABLE)/Makefile \
$(SHARED_FONT_DIR)/Makefile \
$(NANDFIRM_DIR)/Makefile \
$(SYSTEMUPDATER_DIR)/data/Makefile \
$(LAUNCHER_DIR)/banner/Makefile \
$(LAUNCHER_DIR)/ARM9/Makefile_autogen_HNAJ \
$(LAUNCHER_DIR)/ARM9/Makefile_autogen_HNAE \
$(SYSTEMUPDATER_DIR)/banner/Makefile \
$(SYSTEMUPDATER_DIR)/ARM7.TWL/Makefile \
$(SYSTEMUPDATER_DIR)/ARM9.TWL/Makefile
$(SYSTEMUPDATER_DIR)/ARM9.TWL/Makefile_autogen
# COMPILE SWITCH for build SystemMenu
export SYSM_UPDATER_RELEASE = TRUE
export SYSM_DO_NOT_SHOW_LAUNCHER = TRUE
export SYSM_DO_NOT_SHOW_LAUNCHER = FALSE
export SYSM_DISABLE_WDS_SCAN = FALSE
#############################################
@ -91,21 +82,30 @@ export SYSM_BUILD_FOR_PRODUCTION_TEST = FALSE
export SYSM_DISABLE_DEBUG = TRUE
export SYSM_USE_WLANFIRM_LOCAL_PUBKEY = FALSE
# Option for SystemUpdater
export IGNORE_VERSION_CHECK = TRUE
#############################################
# inhibit reentrant
FIRST_CALL ?= TRUE
SKIP_SUBDIR ?= TRUE
DATE_AND_TIME ?= $(shell date +"%y%m%d %H%M")
DATE ?= $(word 1,$(DATE_AND_TIME))
TIME ?= $(word 2,$(DATE_AND_TIME))
TIME_NOZERO = $(shell echo $(TIME) | sed -e 's/^0*\(.\)/\1/')
ifneq ($(FIRST_CALL),TRUE)
INSTALL_TARGETS = $(SYSTEMUPDATER_DIR)/ARM9.TWL/bin/$(TWL_BUILDTYPE)/SystemUpdater.srl
INSTALL_DIR = .
endif
GDIRT_INSTALLED += ./$(notdir $(subst .srl,_WL_$(DATE)_*.srl,$(INSTALL_TARGETS)))
#----------------------------------------------------------------------------
SKIP_SUBDIR ?= TRUE
do-build: do-core
clean: cl-core
clobber: cl-core
@ -115,14 +115,15 @@ clean: MY_TARGET=clean
clobber: MY_TARGET=clobber
do-core:
ifeq ($(SKIP_SUBDIR),TRUE)
ifeq ($(FIRST_CALL),TRUE)
@echo Enter remake SKIP_SUBDIR=$(SKIP_SUBDIR)
+$(REMAKE) -C ./scripts SKIP_SUBDIR=FALSE $(MY_TARGET)
+$(REMAKE) SKIP_SUBDIR=FALSE $(MY_TARGET)
+$(REMAKE) FIRST_CALL=FALSE SKIP_SUBDIR=FALSE $(MY_TARGET)
endif
cl-core:
ifeq ($(SKIP_SUBDIR),TRUE)
+$(REMAKE) SKIP_SUBDIR=FALSE $(MY_TARGET)
ifeq ($(FIRST_CALL),TRUE)
+$(REMAKE) FIRST_CALL=FALSE SKIP_SUBDIR=FALSE $(MY_TARGET)
+$(REMAKE) -C ./scripts SKIP_SUBDIR=FALSE $(MY_TARGET)
endif
@ -140,5 +141,6 @@ define DO_INSTALL
fi $(AND) ) $(TRUE)
endef
test:
@echo SKIP_SUBDIR=$(SKIP_SUBDIR)
#===== End of Makefile =====

View File

@ -0,0 +1,144 @@
#! make -f
#----------------------------------------------------------------------------
# Project: SystemUpdater
# File: Makefile
#
# 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
TARGET_FIRM = SYSTEMMENU
# force to build for debugger
export SYSM_BUILD_FOR_DEBUGGER = TRUE
# SDK configuration for export
override TWL_ARCHGEN := LIMITED
export TWL_ARCHGEN
export OBJDIR = ./obj.WLAN/$(TWL_BUILDTYPE)
export DEPENDDIR = ./depend.WLAN/$(TWL_BUILDTYPE)
export LIBDIR = ./lib.WLAN/$(TWL_BUILDTYPE)
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
export LDIRT_CLEAN = ./obj.WLAN ./depend.WLAN ./lib.WLAN
#----------------------------------------------------------------------------
LAUNCHER_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/Launcher
MACHINESETTINGS_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/MachineSettings
WLANFIRM_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/wlanfirm
DS_HASH_TABLE = $(SYSMENU_ROOT)/build/systemMenu_RED/DSHashTable
SHARED_FONT_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/sharedFont
NANDFIRM_DIR = $(SYSMENU_ROOT)/build/nandfirm/menu-launcher
SYSTEMUPDATER_DIR = $(SYSMENU_ROOT)/build/systemMenu_tools/SystemUpdater
# 実際に書き込みたいファイルの置かれているdataフォルダを指定
export UPDATER_HOST_ROOT_DIR = $(call empath,$(SYSTEMUPDATER_DIR)/data)
ifdef BUILD_TWLSDK
SUBMAKES += Makefile_environment
endif
SUBMAKES += $(SYSMENU_ROOT)/build/tools/Makefile \
$(SYSMENU_ROOT)/build/libraries/Makefile \
$(SYSMENU_ROOT)/build/libraries_sysmenu/Makefile_autogen \
\
$(LAUNCHER_DIR)/Makefile_autogen \
$(MACHINESETTINGS_DIR)/Makefile_autogen \
$(WLANFIRM_DIR)/Makefile \
$(DS_HASH_TABLE)/Makefile \
$(SHARED_FONT_DIR)/Makefile \
$(NANDFIRM_DIR)/Makefile \
$(SYSTEMUPDATER_DIR)/data/Makefile \
$(SYSTEMUPDATER_DIR)/banner/Makefile \
$(SYSTEMUPDATER_DIR)/ARM7.TWL/Makefile \
$(SYSTEMUPDATER_DIR)/ARM9.TWL/Makefile
# COMPILE SWITCH for build SystemMenu
export SYSM_UPDATER_RELEASE = TRUE
export SYSM_DO_NOT_SHOW_LAUNCHER = TRUE
export SYSM_DISABLE_WDS_SCAN = FALSE
#############################################
# For Wireless development
#
# disable signature check
export SYSM_IGNORE_WLFIRM_SIGNCHECK = TRUE
export SYSM_DISABLE_WLFIRM_LOAD = FALSE
export SYSM_DISABLE_INITIAL_SETTINGS = TRUE
export SYSM_OUTSIDE_UI = TRUE
export SYSM_DEV_WHITELIST_CHECK_SKIP = TRUE
export SYSM_BUILD_FOR_PRODUCTION_TEST = FALSE
# MAKEROM SWITCH for build SystemMenu
export SYSM_DISABLE_DEBUG = TRUE
export SYSM_USE_WLANFIRM_LOCAL_PUBKEY = FALSE
DATE_AND_TIME ?= $(shell date +"%y%m%d %H%M")
DATE ?= $(word 1,$(DATE_AND_TIME))
TIME ?= $(word 2,$(DATE_AND_TIME))
TIME_NOZERO = $(shell echo $(TIME) | sed -e 's/^0*\(.\)/\1/')
INSTALL_TARGETS = $(SYSTEMUPDATER_DIR)/ARM9.TWL/bin/$(TWL_BUILDTYPE)/SystemUpdater.srl
INSTALL_DIR = .
GDIRT_INSTALLED += ./$(notdir $(subst .srl,_WL_$(DATE)_*.srl,$(INSTALL_TARGETS)))
#----------------------------------------------------------------------------
SKIP_SUBDIR ?= TRUE
do-build: do-core
clean: cl-core
clobber: cl-core
do-build: MY_TARGET=default
clean: MY_TARGET=clean
clobber: MY_TARGET=clobber
do-core:
ifeq ($(SKIP_SUBDIR),TRUE)
+$(REMAKE) -C ./scripts SKIP_SUBDIR=FALSE $(MY_TARGET)
+$(REMAKE) SKIP_SUBDIR=FALSE $(MY_TARGET)
endif
cl-core:
ifeq ($(SKIP_SUBDIR),TRUE)
+$(REMAKE) SKIP_SUBDIR=FALSE $(MY_TARGET)
+$(REMAKE) -C ./scripts SKIP_SUBDIR=FALSE $(MY_TARGET)
endif
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
# Override generic DO_INSTALL
define DO_INSTALL
$(INSTALL) -d $(INSTALL_DIR) $(AND) \
$(foreach FILE, $(INSTALL_TARGETS), \
if [ ! -e $(INSTALL_DIR)/$(FILE) -o \
$(FILE) -nt $(INSTALL_DIR)/$(FILE) ]; \
then \
$(ECHO) " install: $(FILE) -> $(subst .srl,_WL_$(DATE)_$(TIME).srl,$(FILE))" $(AND) \
$(INSTALL) $(FILE) $(INSTALL_DIR)/$(notdir $(subst .srl,_WL_$(DATE)_$(TIME).srl,$(FILE))); \
fi $(AND) ) $(TRUE)
endef
#===== End of Makefile =====

View File

@ -0,0 +1,26 @@
* 無線開発用SystemUpdater
1. 各種systemMenuファイルの用意
TwlIPL/build/tests/build4WLDev の直下に以下のディレクトリ構成で
systemMenu関連ファイルを用意してください。(HNA*.tadは除いてください。)
※Regionは、JapanとAmericaのみをサポート、開発実機には対応していません。
data_sysmenu
+debugger
l +america/*
l +japan/*
上記の*には、
HNA*.tad以外の全tadとnandファームとフォントデータを置いてください。
2.SystemUpdaterのビルド
TwlIPL/build/tests/build4WLDev でmakeを実行してください。
※TwlIPL_privateが必要です。
最終的に、以下のような日付時間タグつきのSystemUpdaterが同じディレクトリに作成されます。
SystemUpdater_WL_yymmdd_hhmm.srl

View File

@ -23,19 +23,16 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
LAUNCHER_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/Launcher
MACHINESETTINGS_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/MachineSettings
SYSMENU_LIBRARIES_DIR = $(SYSMENU_ROOT)/build/libraries_sysmenu
SYSTEMUPDATER_DIR = $(SYSMENU_ROOT)/build/systemMenu_tools/SystemUpdater
SYSTEMUPDATER_DIR = $(SYSMENU_ROOT)/build/systemMenu_tools/SystemUpdaterRegionSelect
SCRIPTS_DIR = ./
MAKEFILES_ORG = $(LAUNCHER_DIR)/Makefile $(LAUNCHER_DIR)/ARM9/Makefile \
$(MACHINESETTINGS_DIR)/Makefile $(MACHINESETTINGS_DIR)/ARM9/Makefile
MAKE_MAKEFILES = $(SCRIPTS_DIR)/launcher_makefile.pl
AUTOGEN_MAKEFILES = $(LAUNCHER_DIR)/Makefile_autogen $(LAUNCHER_DIR)/ARM9/Makefile_autogen \
$(MACHINESETTINGS_DIR)/Makefile_autogen $(MACHINESETTINGS_DIR)/ARM9/Makefile_autogen
MAKEFILES_ORG = $(LAUNCHER_DIR)/ARM9/Makefile
MAKE_MAKEFILES = $(SCRIPTS_DIR)/launcher_makefile_region.pl
AUTOGEN_MAKEFILES = $(LAUNCHER_DIR)/ARM9/Makefile_autogen_HNAJ $(LAUNCHER_DIR)/ARM9/Makefile_autogen_HNAE
LDIRT_CLEAN += $(AUTOGEN_MAKEFILES)
@ -44,24 +41,17 @@ MAKE_LOADWLAN = $(SCRIPTS_DIR)/launcher_loadWlanFirm_c.pl
AUTOGEN_LOADWLAN = $(LAUNCHER_DIR)/ARM9/src/loadWlanFirm_autogen.c
LDIRT_CLEAN += $(AUTOGEN_LOADWLAN)
MACHSETTING_ORG = $(MACHINESETTINGS_DIR)/ARM9/src/MachineSetting.c
MAKE_MACHSETTING = $(SCRIPTS_DIR)/launcher_MachineSetting_c.pl
AUTOGEN_MACHSETTING = $(MACHINESETTINGS_DIR)/ARM9/src/MachineSetting_autogen.c
LDIRT_CLEAN += $(AUTOGEN_MACHSETTING)
NWM_ORG = $(SYSMENU_LIBRARIES_DIR)/Makefile \
$(SYSMENU_LIBRARIES_DIR)/nwm/Makefile \
$(SYSMENU_LIBRARIES_DIR)/nwm/ARM7/Makefile \
$(ROOT)/build/libraries/wm/ARM7.TWL/nwm/src/nwmsp_event_handler.c
MAKE_NWM = $(SCRIPTS_DIR)/launcher_fake_macaddress.pl
AUTOGEN_NWM = $(SYSMENU_LIBRARIES_DIR)/Makefile_autogen \
$(SYSMENU_LIBRARIES_DIR)/nwm/Makefile_autogen \
$(SYSMENU_LIBRARIES_DIR)/nwm/ARM7/Makefile_autogen \
$(ROOT)/build/libraries/wm/ARM7.TWL/nwm/src/nwmsp_event_handler_autogen.c
LDIRT_CLEAN += $(AUTOGEN_NWM)
SYSUP_ORG = $(SYSTEMUPDATER_DIR)/ARM9.TWL/src/process_check_console.c \
$(SYSTEMUPDATER_DIR)/ARM9.TWL/src/process_select_region.c \
$(SYSTEMUPDATER_DIR)/ARM9.TWL/Makefile
MAKE_SYSUP = $(SCRIPTS_DIR)/systemupdater_source.pl
AUTOGEN_SYSUP = $(SYSTEMUPDATER_DIR)/ARM9.TWL/src/process_check_console_autogen.c \
$(SYSTEMUPDATER_DIR)/ARM9.TWL/src/process_select_region_autogen.c \
$(SYSTEMUPDATER_DIR)/ARM9.TWL/Makefile_autogen
LDIRT_CLEAN += $(AUTOGEN_SYSUP)
TARGETS = $(AUTOGEN_MAKEFILES) $(AUTOGEN_LOADWLAN) $(AUTOGEN_MACHSETTING) $(AUTOGEN_NWM)
TARGETS = $(AUTOGEN_MAKEFILES) $(AUTOGEN_LOADWLAN) $(AUTOGEN_SYSUP)
#----------------------------------------------------------------------------
do-build: $(TARGETS)
@ -76,12 +66,9 @@ $(AUTOGEN_LOADWLAN): $(LOADWLAN_ORG) $(MAKE_LOADWLAN)
@echo " make:" $@
@perl $(MAKE_LOADWLAN)
$(AUTOGEN_MACHSETTING): $(MACHSETTING_ORG) $(MAKE_MACHSETTING)
$(AUTOGEN_SYSUP): $(SYSUP_ORG) $(MAKE_SYSUP)
@echo " make:" $@
@perl $(MAKE_MACHSETTING)
@perl $(MAKE_SYSUP)
$(AUTOGEN_NWM): $(NWM_ORG) $(MAKE_NWM)
@echo " make:" $@
@perl $(MAKE_NWM)
#===== End of Makefile =====

View File

@ -0,0 +1,87 @@
#! make -f
#----------------------------------------------------------------------------
# Project: SystemUpdater
# File: Makefile
#
# 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
TARGET_FIRM = SYSTEMMENU
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
#----------------------------------------------------------------------------
LAUNCHER_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/Launcher
MACHINESETTINGS_DIR = $(SYSMENU_ROOT)/build/systemMenu_RED/MachineSettings
SYSMENU_LIBRARIES_DIR = $(SYSMENU_ROOT)/build/libraries_sysmenu
SYSTEMUPDATER_DIR = $(SYSMENU_ROOT)/build/systemMenu_tools/SystemUpdater
SCRIPTS_DIR = ./
MAKEFILES_ORG = $(LAUNCHER_DIR)/Makefile $(LAUNCHER_DIR)/ARM9/Makefile \
$(MACHINESETTINGS_DIR)/Makefile $(MACHINESETTINGS_DIR)/ARM9/Makefile
MAKE_MAKEFILES = $(SCRIPTS_DIR)/launcher_makefile.pl
AUTOGEN_MAKEFILES = $(LAUNCHER_DIR)/Makefile_autogen $(LAUNCHER_DIR)/ARM9/Makefile_autogen \
$(MACHINESETTINGS_DIR)/Makefile_autogen $(MACHINESETTINGS_DIR)/ARM9/Makefile_autogen
LDIRT_CLEAN += $(AUTOGEN_MAKEFILES)
LOADWLAN_ORG = $(LAUNCHER_DIR)/ARM9/src/loadWlanFirm.c
MAKE_LOADWLAN = $(SCRIPTS_DIR)/launcher_loadWlanFirm_c.pl
AUTOGEN_LOADWLAN = $(LAUNCHER_DIR)/ARM9/src/loadWlanFirm_autogen.c
LDIRT_CLEAN += $(AUTOGEN_LOADWLAN)
MACHSETTING_ORG = $(MACHINESETTINGS_DIR)/ARM9/src/MachineSetting.c
MAKE_MACHSETTING = $(SCRIPTS_DIR)/launcher_MachineSetting_c.pl
AUTOGEN_MACHSETTING = $(MACHINESETTINGS_DIR)/ARM9/src/MachineSetting_autogen.c
LDIRT_CLEAN += $(AUTOGEN_MACHSETTING)
NWM_ORG = $(SYSMENU_LIBRARIES_DIR)/Makefile \
$(SYSMENU_LIBRARIES_DIR)/nwm/Makefile \
$(SYSMENU_LIBRARIES_DIR)/nwm/ARM7/Makefile \
$(ROOT)/build/libraries/wm/ARM7.TWL/nwm/src/nwmsp_event_handler.c
MAKE_NWM = $(SCRIPTS_DIR)/launcher_fake_macaddress.pl
AUTOGEN_NWM = $(SYSMENU_LIBRARIES_DIR)/Makefile_autogen \
$(SYSMENU_LIBRARIES_DIR)/nwm/Makefile_autogen \
$(SYSMENU_LIBRARIES_DIR)/nwm/ARM7/Makefile_autogen \
$(ROOT)/build/libraries/wm/ARM7.TWL/nwm/src/nwmsp_event_handler_autogen.c
LDIRT_CLEAN += $(AUTOGEN_NWM)
TARGETS = $(AUTOGEN_MAKEFILES) $(AUTOGEN_LOADWLAN) $(AUTOGEN_MACHSETTING) $(AUTOGEN_NWM)
#----------------------------------------------------------------------------
do-build: $(TARGETS)
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
$(AUTOGEN_MAKEFILES): $(MAKEFILES_ORG) $(MAKE_MAKEFILES)
@echo " make:" $@
@perl $(MAKE_MAKEFILES)
$(AUTOGEN_LOADWLAN): $(LOADWLAN_ORG) $(MAKE_LOADWLAN)
@echo " make:" $@
@perl $(MAKE_LOADWLAN)
$(AUTOGEN_MACHSETTING): $(MACHSETTING_ORG) $(MAKE_MACHSETTING)
@echo " make:" $@
@perl $(MAKE_MACHSETTING)
$(AUTOGEN_NWM): $(NWM_ORG) $(MAKE_NWM)
@echo " make:" $@
@perl $(MAKE_NWM)
#===== End of Makefile =====

View File

@ -0,0 +1,112 @@
#!/bin/perl
#----------------------------------------------------------------------------
# Project: TwlIPL - tests -
# File: launcher_makefile.pl
#
# Copyright 2007 Nintendo. All rights reserved.
#
# These coded insructions, 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
use strict;
my $IPLROOT;
# search TWL_IPL_RED_ROOT
foreach ( sort keys ( %ENV ) ){
if ($_ =~ m/TWL_IPL_RED_ROOT/s) {
$IPLROOT = $ENV{$_};
}
}
my $rn = "\x0D\x0A";
my $src1 = "$IPLROOT/build/systemMenu_RED/Launcher/ARM9/Makefile";
my $dst1 = "$IPLROOT/build/systemMenu_RED/Launcher/ARM9/Makefile_autogen_HNAJ";
open(F, $src1) or die "cant open $src1\n";
my @lines = <F>;
close(F);
open(OUT, ">$dst1") or die "cant open $dst1\n";
foreach my $line ( @lines )
{
if( $line =~ m/loadWlanFirm\.c/ )
{
$line =~ s/loadWlanFirm\.c/loadWlanFirm_autogen\.c/;
}
if( $line =~ m/^TITLEID_LO/ )
{
$line =~ s/HNAA/HNAJ/;
}
if( $line =~ m/^CARD_REGION/ )
{
$line =~ s/ALL/Japan/;
print OUT $line;
print OUT "BINDIR = ./bin.HNAJ/\$(TWL_BUILDTYPE)", $rn;
next;
}
if( $line =~ m/^INSTALL_DIR/ )
{
print OUT "INSTALL_DIR = \$(UPDATER_HOST_ROOT_DIR)/debugger/japan", $rn;
print OUT "MAKETAD := \$(TWL_IPL_RED_PRIVATE_TOOLSDIR)/bin/maketad.updater.exe", $rn;
next;
}
print OUT $line;
}
close(OUT);
my $src2 = "$IPLROOT/build/systemMenu_RED/Launcher/ARM9/Makefile";
my $dst2 = "$IPLROOT/build/systemMenu_RED/Launcher/ARM9/Makefile_autogen_HNAE";
open(F, $src2) or die "cant open $src2\n";
my @lines = <F>;
close(F);
open(OUT, ">$dst2") or die "cant open $dst2\n";
foreach my $line ( @lines )
{
if( $line =~ m/loadWlanFirm\.c/ )
{
$line =~ s/loadWlanFirm\.c/loadWlanFirm_autogen\.c/;
}
if( $line =~ m/^TITLEID_LO/ )
{
$line =~ s/HNAA/HNAE/;
}
if( $line =~ m/^CARD_REGION/ )
{
$line =~ s/ALL/America/;
print OUT $line;
print OUT "BINDIR = ./bin.HNAE/\$(TWL_BUILDTYPE)", $rn;
next;
}
if( $line =~ m/^INSTALL_DIR/ )
{
print OUT "INSTALL_DIR = \$(UPDATER_HOST_ROOT_DIR)/debugger/america", $rn;
print OUT "MAKETAD := \$(TWL_IPL_RED_PRIVATE_TOOLSDIR)/bin/maketad.updater.exe", $rn;
next;
}
print OUT $line;
}
close(OUT);

View File

@ -0,0 +1,125 @@
#!/bin/perl
#----------------------------------------------------------------------------
# Project: TwlIPL - tests -
# File: systemupdater_source.pl
#
# Copyright 2007 Nintendo. All rights reserved.
#
# These coded insructions, 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:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
use strict;
my $IPLROOT;
# search TWL_IPL_RED_ROOT
foreach ( sort keys ( %ENV ) ){
if ($_ =~ m/TWL_IPL_RED_ROOT/s) {
$IPLROOT = $ENV{$_};
}
}
my $rn = "\x0D\x0A";
my $src1 = "$IPLROOT/build/systemMenu_tools/SystemUpdaterRegionSelect/ARM9.TWL/src/process_check_console.c";
my $dst1 = "$IPLROOT/build/systemMenu_tools/SystemUpdaterRegionSelect/ARM9.TWL/src/process_check_console_autogen.c";
my $in_check_console = 0;
open(F, $src1) or die "cant open $src1\n";
my @lines = <F>;
close(F);
open(OUT, ">$dst1") or die "cant open $dst1\n";
foreach my $line ( @lines )
{
if( $line =~ m/^void ProcessCheckConsole\(void\)/ )
{
$in_check_console = 1;
}
if ($in_check_console == 1)
{
if( $line =~ m/^\/\*/ )
{
print OUT "\tkamiFontPrintfConsole( FONT_COLOR_GREEN, \"This updater is for Wireless development.\\n\");", $rn;
print OUT "//\t[AUTO COMMENTOUT] 無線開発用SystemUpdaterの場合、コメントアウトをはずします。", $rn;
# add comment out at the top of line
$line =~ s/^/\/\//;
}
if( $line =~ m/^\*\// )
{
print OUT "//\t[AUTO COMMENTOUT] 無線開発用SystemUpdaterの場合、コメントアウトをはずします。", $rn;
# add comment out at the top of line
$line =~ s/^/\/\//;
}
if( $line =~ m/^}/ )
{
$in_check_console = 0;
}
}
print OUT $line;
}
close(OUT);
my $src2 = "$IPLROOT/build/systemMenu_tools/SystemUpdaterRegionSelect/ARM9.TWL/src/process_select_region.c";
my $dst2 = "$IPLROOT/build/systemMenu_tools/SystemUpdaterRegionSelect/ARM9.TWL/src/process_select_region_autogen.c";
open(F, $src2) or die "cant open $src2\n";
my @lines = <F>;
close(F);
open(OUT, ">$dst2") or die "cant open $dst2\n";
foreach my $line ( @lines )
{
# WLANのLoad時に限り、FatalErrorのセット無効にする。
if( $line =~ m/OS_TWL_REGION_AUSTRALIA/ )
{
print OUT "//\t[AUTO COMMENTOUT] 無線開発用SystemUpdaterの場合、RegionはJapanとAmericaのみ。", $rn;
$line =~ s/OS_TWL_REGION_AUSTRALIA/OS_TWL_REGION_AMERICA/;
}
print OUT $line;
}
close(OUT);
my $src3 = "$IPLROOT/build/systemMenu_tools/SystemUpdaterRegionSelect/ARM9.TWL/Makefile";
my $dst3 = "$IPLROOT/build/systemMenu_tools/SystemUpdaterRegionSelect/ARM9.TWL/Makefile_autogen";
open(F, $src3) or die "cant open $src3\n";
my @lines = <F>;
close(F);
open(OUT, ">$dst3") or die "cant open $dst3\n";
foreach my $line ( @lines )
{
if( $line =~ m/UPDATER_HOST_ROOT_DIR =/ )
{
$line =~ s/UPDATER_HOST_ROOT_DIR =/UPDATER_HOST_ROOT_DIR ?=/;
}
if( $line =~ m/process_select_region\.c/ )
{
$line =~ s/process_select_region\.c/process_select_region_autogen\.c/;
}
if( $line =~ m/process_check_console\.c/ )
{
$line =~ s/process_check_console\.c/process_check_console_autogen\.c/;
}
print OUT $line;
}
close(OUT);