diff --git a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.dev.o b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.dev.o deleted file mode 100644 index 56d447e4..00000000 Binary files a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.dev.o and /dev/null differ diff --git a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.prod.o b/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.prod.o deleted file mode 100644 index 7d818096..00000000 Binary files a/build/systemMenu_tools/SystemLogReader/ARM9.TWL/nandfirm/nandfirm.prod.o and /dev/null differ diff --git a/build/systemMenu_tools/SystemLogReader/make.rb b/build/systemMenu_tools/SystemLogReader/make.rb index c52e6a31..9646ba3b 100755 --- a/build/systemMenu_tools/SystemLogReader/make.rb +++ b/build/systemMenu_tools/SystemLogReader/make.rb @@ -1,7 +1,8 @@ #!ruby -# build TwlIPL Root -> build nandfirm -> convert nandfirm -> +# build TwlIPL Root -> convert nandfirm -> # build systemlogreader -> build gcdfirm -# 実行時引数に"dev"を渡すと開発ビルド(default)、"prod"を渡すと量産ビルドを生成 +# 実行時引数に"dev"を渡すと開発ビルド(default)、"prod"なら量産ビルド、"full"なら両方を生成。 +# また一緒に"short"を指定するとTwlIPLRootのビルドをやり直さない短縮ビルドを行う。 def putex(str) # puts command and execute @@ -20,36 +21,48 @@ def buildgcd(buildtype, prodopt, shortbuild) putex "make -f Makefile.full clean; " + "makesp CYGPATH_NOCMD=TRUE -j 2 -f Makefile.full TWL_FINALROM=TRUE #{prodopt}" end - - # build nandfirm - Dir.chdir(ENV['TWL_IPL_RED_ROOT'] + "/build/nandfirm/menu-launcher") do - putex "make clean; make TWL_FINALROM=TRUE #{prodopt}" - nandfirm = Dir.glob("menu_launcher*#{buildtype}.nand") - if nandfirm.none? - puts "build nandfirm failed." - exit - else - nandfirm = nandfirm[0] - end - - - putex "$TWLSDK_ROOT/tools/bin/bin2obj.TWL.exe #{nandfirm} nandfirm.#{buildtype}.o " + - "-b nandfirm_begin -e nandfirm_end" - putex "cp nandfirm.#{buildtype}.o #{Rootdir}/ARM9.TWL/nandfirm/" - end end + # build nandfirm + nandfirmDir = "#{ENV['TWL_IPL_RED_PRIVATE_ROOT']}/resources/nandfirm_bin/" + nandfirm = + if buildtype == "dev" + "#{nandfirmDir}/menu_launcher.nand" + else + "#{nandfirmDir}/menu_launcher-FINALROM-2435-8325.prod.nand" + end + + unless FileTest.exist? nandfirm + puts "[ERROR] prebuilt nandfirm is not found. : #{nandfirm}" + exit + end + + putex "mkdir -p #{Rootdir}/ARM9.TWL/nandfirm" + putex "$TWLSDK_ROOT/tools/bin/bin2obj.TWL.exe #{nandfirm} #{Rootdir}/ARM9.TWL/nandfirm/nandfirm.#{buildtype}.o " + + "-b nandfirm_begin -e nandfirm_end" + # build systemlogreader putex "makesp CYGPATH_NOCMD=TRUE -j 2 clean; makesp CYGPATH_NOCMD=TRUE -j 2 TWL_FINALROM=TRUE #{prodopt}" + + putex "rm $TWL_IPL_RED_ROOT/build/gcdfirm/memory-launcher-writer/SystemLogReader.srl" + Dir.chdir(Rootdir + "/ARM9.TWL/bin/ARM9-TS.LTD.thumb/Rom") do if buildtype == "dev" putex 'cp ./SystemLogReader.srl $TWL_IPL_RED_ROOT/build/gcdfirm/memory-launcher-writer/' else # 量産用の場合はsrlにマスタリングをかける - putex "mastering.TWL.exe SystemLogReader.srl SystemLogReader.srl.master -s -t" + masterbin = ENV['TWL_IPL_RED_PRIVATE_ROOT'] + "/tools/bin/mastering.TWL.exe" + masterini = ENV['TWL_IPL_RED_PRIVATE_ROOT'] + "/tools/bin/mastering.TWL.ini" + + putex "#{masterbin} SystemLogReader.srl SystemLogReader.srl.master -s -t -i #{masterini}" putex "cp ./SystemLogReader.srl.master $TWL_IPL_RED_ROOT/build/gcdfirm/memory-launcher-writer/SystemLogReader.srl" end end + + unless FileTest.exist? "#{ENV['TWL_IPL_RED_ROOT']}/build/gcdfirm/memory-launcher-writer/SystemLogReader.srl" + puts "[ERROR] building SystemLogReader failed." + exit + end # build memory_launcher Dir.chdir(ENV['TWL_IPL_RED_ROOT'] + "/build/nandfirm/memory-launcher") do @@ -58,19 +71,31 @@ def buildgcd(buildtype, prodopt, shortbuild) # build memorylauncherwriter Dir.chdir(ENV['TWL_IPL_RED_ROOT'] + "/build/gcdfirm/memory-launcher-writer") do - putex "make clean; make TWL_FINALROM=TRUE #{prodopt}" + putex "make clean; make TWL_FINALROM=TRUE #{prodopt} APPEND_SRL=./SystemLogReader.srl" putex "cp ./memory_launcher_writer-FINALROM.gcd " + "$TWL_IPL_RED_ROOT/build/systemMenu_tools/SystemLogReader/memory_launcher_writer-FINALROM.#{buildtype}.gcd -f" end end +# ===== main script ===== + +# nandfirmが必要なのでPRIVATE_ROOT必須 +unless ENV['TWL_IPL_RED_PRIVATE_ROOT'] + puts "[ERROR] env valiable: TWL_IPL_RED_PRIVATE_ROOT is needed." + exit +end + Rootdir = ENV['TWL_IPL_RED_ROOT'] + '/build/systemMenu_tools/SystemLogReader' prodopt = "" shortbuild = false # default buildtype = dev -if ARGV.none? || ARGV.include?('dev') +if ARGV.none? + puts "usage:" + puts "ruby make.rb [dev|prod|full] [short]" + exit +elsif ARGV.include?('dev') build = ["dev"] opt = ["FIRM_USE_PRODUCT_KEYS="] elsif ARGV.include?("prod") @@ -80,7 +105,7 @@ elsif ARGV.include? "full" build = ["dev", "prod"] opt = ["FIRM_USE_PRODUCT_KEYS=", "FIRM_USE_PRODUCT_KEYS=TRUE"] else - puts "invalid arguments." + puts "[ERROR] invalid arguments." exit end