@ECHO OFF
REM ==================================================================
REM       ST_KT.BAT                         Version 0.51.02
REM             Copyright SEGA Enterprises Japan,Ltd
REM ==================================================================
REM 1998. 9.17 ・バージョン関係の環境変数を全て削除．
REM            ・PATH_HEDの削除．
REM            ・正式リリース．バージョン0.51.02 とする．
REM 1998. 6.28 ・-KATANA_SDK_DIR の指定でエラーが出るのを修正．
REM            ・いきなりディレクトリ名がきたときのメッセージを若干修
REM              正．
REM 1998. 6.22 ・使用法をもう少し正確に記述した．
REM            ・一応コピーライトもつけてみた．
REM            ・正式リリース．バージョン0.51.01 とする．
REM 1998. 6.20 引継ぎを行い一新．さらにいろいろ追加．
REM 1998. 5.27 環境変数の設定に成功したかを、エラーチェックする様に変更。
REM 1998. 4.20 SH-C Ver5.0 Rel10 以降の、SH-4専用標準ライブラリに対応。

REM ========================================================
REM デフォルトの設定
REM ========================================================
SET DEF_KATANA_SDK_DIR=C:\KATANA
SET DEF_SHC_DIR=%DEF_KATANA_SDK_DIR%\SHC
SET DEF_SHINOBI_DIR=%DEF_KATANA_SDK_DIR%\SHINOBI
SET ENV_FILE=

REM ========================================================
REM おしゃべりモードチェック
REM ========================================================
SET VERBOSE=OFF
FOR %%A in (%1 %2 %3 %4 %5 %6 %7 %8 %9) DO IF "%%A" == "-VERBOSE" GOTO ST_VERBOSE
FOR %%A in (%1 %2 %3 %4 %5 %6 %7 %8 %9) DO IF "%%A" == "-verbose" GOTO ST_VERBOSE
REM おしゃべりモードは設定しない
GOTO ARG_ANLYZE

REM ========================================================
REM おしゃべりモード設定
REM ========================================================
:ST_VERBOSE
SET VERBOSE=ON

REM ========================================================
REM 過去の設定のチェック
REM ========================================================
:CHK_OLD_ENV
IF NOT "%KATANA_SDK_DIR%" == "" ECHO 既にKATANA_SDK_DIRが設定されていますので，これを使用します．
IF NOT "%SHC_DIR%"        == "" ECHO 既にSHC_DIRが設定されていますので，これを使用します．
IF NOT "%SHINOBI_DIR%"    == "" ECHO 既にSHINOBI_DIRが設定されていますので，これを使用します．

REM ========================================================
REM 引数解析
REM ========================================================
:ARG_ANLYZE
REM 互換引数
IF "%1" == "/?"               GOTO USAGE
IF "%1" == "-?"               GOTO USAGE
IF "%1" ==  "?"               GOTO USAGE
IF "%1" == "/h"               GOTO USAGE
IF "%1" == "-h"               GOTO USAGE
IF "%1" == "/H"               GOTO USAGE
IF "%1" == "-H"               GOTO USAGE
REM 新規引数
IF "%1" == "-HELP"            GOTO USAGE
IF "%1" == "-help"            GOTO USAGE
IF "%1" == "-KATANA_SDK_DIR"  GOTO ST_KTN_SDK_DIR
IF "%1" == "-katana_sdk_dir"  GOTO ST_KTN_SDK_DIR
IF "%1" == "-SHINOBI_DIR"     GOTO ST_SHINOBI_DIR
IF "%1" == "-shinobi_dir"     GOTO ST_SHINOBI_DIR
IF "%1" == "-SHC_DIR"         GOTO ST_SHC_DIR
IF "%1" == "-shc_dir"         GOTO ST_SHC_DIR
IF "%1" == "-ENV_FILE"        GOTO ST_ENV_FILE
IF "%1" == "-env_file"        GOTO ST_ENV_FILE
IF "%1" == "-REMOVE_ENV"      GOTO RM_ENV
IF "%1" == "-remove_env"      GOTO RM_ENV
IF "%1" == "-VERBOSE"         GOTO ARG_ANL1
IF "%1" == "-verbose"         GOTO ARG_ANL1
IF NOT "%1" == ""             GOTO ST_DEF
IF "%1" == ""                 GOTO CHK_ENV
:ARG_ANL1
SHIFT
GOTO ARG_ANLYZE

REM ========================================================
REM 引数がいきなりディレクトリ名の時
REM ========================================================
:ST_DEF
IF "%VERBOSE%" == "ON" ECHO KATANA SDKのベースディレクトリに%1が指定されました．
IF "%VERBOSE%" == "ON" ECHO 全ての設定に影響します．
SET KATANA_SDK_DIR=%1
SET SHC_DIR=%1\SHC
SET SHINOBI_DIR=%1\SHINOBI
GOTO CHK_ENV

REM ========================================================
REM -KATANA_SDK_DIRの処理
REM ========================================================
:ST_KTN_SDK_DIR
IF "%2" == "" GOTO ER_ST_DIR
SHIFT
SET KATANA_SDK_DIR=%1
SHIFT
GOTO ARG_ANLYZE

REM ========================================================
REM -SHC_DIRの処理
REM ========================================================
:ST_SHC_DIR
IF "%2" == "" GOTO ER_ST_DIR
SHIFT
SET SHC_DIR=%1
SHIFT
GOTO ARG_ANLYZE

REM ========================================================
REM -SHINOBI_DIRの処理
REM ========================================================
:ST_SHINOBI_DIR
IF "%2" == "" GOTO ER_ST_DIR
SHIFT
SET SHINOBI_DIR=%1
SHIFT
GOTO ARG_ANLYZE

REM ========================================================
REM -REMOVE_ENVの処理
REM ========================================================
:RM_ENV
IF "%VERBOSE%" == "ON" ECHO 関係ある全ての環境変数を削除します
SET KATANA_SDK_DIR=
SET SHC_DIR=
SET SHC_BIN=
SET SHC_INC=
SET SHC_LIB=
SET SHC_TMP=
SET SHCPP_BIN=
SET SHCPP_INC=
SET SHCPP_LIB=
SET SHCPP_TMP=
SET SHINOBI_DIR=
SET HLNK_LIBRARY1=
SET HLNK_LIBRARY2=
SET HLNK_LIBRARY3=
GOTO SUC_EXIT

REM ========================================================
REM -ENV_FILEの処理
REM ========================================================
:ST_ENV_FILE
IF "%2" == "" GOTO ER_ST_DIR
SHIFT
SET ENV_FILE=%1
SHIFT
GOTO ARG_ANLYZE

REM ========================================================
REM 環境変数KATANA_SDK_DIRの未指定時の処理
REM ========================================================
:DEF_KATANA_SDK_DIR
IF "%VERBOSE%" == "ON" ECHO KATANA_SDK_DIRの指定がありませんでした．デフォルトを使用します．
SET KATANA_SDK_DIR=%DEF_KATANA_SDK_DIR%
GOTO CHK_ENV

REM ========================================================
REM 環境変数SHC_DIRの未指定時の処理
REM ========================================================
:DEF_SHC_DIR
IF "%VERBOSE%" == "ON" ECHO SHC_DIRの指定がありませんでした．デフォルトを使用します．
SET SHC_DIR=%DEF_SHC_DIR%
GOTO CHK_ENV

REM ========================================================
REM 環境変数SHINOBI_DIRの未指定時の処理
REM ========================================================
:DEF_SHINOBI_DIR
IF "%VERBOSE%" == "ON" ECHO SHINOBI_DIRの指定がありませんでした．デフォルトを使用します．
SET SHINOBI_DIR=%DEF_SHINOBI_DIR%
GOTO CHK_ENV

REM ========================================================
REM 環境変数解析
REM ========================================================
:CHK_ENV
IF "%KATANA_SDK_DIR%" == "" GOTO DEF_KATANA_SDK_DIR
IF "%SHC_DIR%"        == "" GOTO DEF_SHC_DIR
IF "%SHINOBI_DIR%"    == "" GOTO DEF_SHINOBI_DIR
IF NOT "%ENV_FILE%"   == "" GOTO MAK_ENV_FILE
GOTO ADD_ENV

REM ========================================================
REM 環境変数の追加
REM ========================================================
:ADD_ENV
REM SH-Cの追加環境変数
SET SHC_BIN=%SHC_DIR%\BIN
SET SHC_INC=%SHC_DIR%\INCLUDE,%SHINOBI_DIR%\INCLUDE
SET SHC_LIB=%SHC_DIR%\BIN
SET SHC_TMP=%TEMP%
SET HLNK_LIBRARY1=%SHINOBI_DIR%\LIB\SHINOBI.LIB
SET HLNK_LIBRARY2=%SHINOBI_DIR%\LIB\NINJA.LIB
SET HLNK_LIBRARY3=%SHC_DIR%\LIB\SH4NLFZZ.LIB

REM SH-C++の追加環境変数
SET SHCPP_BIN=%SHC_BIN%
SET SHCPP_INC=%SHC_INC%
SET SHCPP_LIB=%SHC_LIB%
SET SHCPP_TMP=%SHC_TMP%

REM ========================================================
REM ディレクトリの存在チェック
REM ========================================================
:CHK_DIR

REM KATANA_SDK_DIRのチェック
SET DIR_NAME=%KATANA_SDK_DIR%
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

REM SHC_DIRのチェック
SET DIR_NAME=%SHC_DIR%
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

REM SHC_DIR\BINのチェック
SET DIR_NAME=%SHC_DIR%\BIN
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

REM SHC_DIR\INCLUDEのチェック
SET DIR_NAME=%SHC_DIR%\INCLUDE
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

REM SHC_DIR\LIBのチェック
SET DIR_NAME=%SHC_DIR%\LIB
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

REM SHINOBI_DIRのチェック
SET DIR_NAME=%SHINOBI_DIR%
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

REM SHINOBI_DIR\INCLUDEのチェック
SET DIR_NAME=%SHINOBI_DIR%\INCLUDE
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

REM SHINOBI_DIR\LIBのチェック
SET DIR_NAME=%SHINOBI_DIR%\LIB
IF NOT EXIST %DIR_NAME%\NUL GOTO ER_NO_DIR

GOTO SUC_EXIT

REM ========================================================
REM CodeScape用環境ファイルの作成
REM ========================================================
:MAK_ENV_FILE
IF EXIST %ENV_FILE% DEL %ENV_FILE%

ECHO KATANA_SDK_DIR=%KATANA_SDK_DIR%   >  %ENV_FILE%
ECHO SHC_DIR=%SHC_DIR%                 >> %ENV_FILE%
ECHO SHINOBI_DIR=%SHINOBI_DIR%         >> %ENV_FILE%

ECHO SHC_INC=%SHC_INC%                 >> %ENV_FILE%
ECHO SHC_LIB=%SHC_LIB%                 >> %ENV_FILE%
ECHO SHC_TMP=%SHC_TMP%                 >> %ENV_FILE%
ECHO SHCPP_INC=%SHC_INC%               >> %ENV_FILE%
ECHO SHCPP_LIB=%SHC_LIB%               >> %ENV_FILE%
ECHO SHCPP_TMP=%SHC_TMP%               >> %ENV_FILE%

ECHO SET HLNK_LIBRARY1=%HLNK_LIBRARY1% >> %ENV_FILE%
ECHO SET HLNK_LIBRARY2=%HLNK_LIBRARY2% >> %ENV_FILE%
ECHO SET HLNK_LIBRARY3=%HLNK_LIBRARY3% >> %ENV_FILE%
IF "%VERBOSE%" == "ON" ECHO %ENV_FILE%を作成しました．
REM もう一度ここにこないように削除
SET ENV_FILE=
GOTO CHK_ENV

REM ========================================================
REM 正常終了処理
REM ========================================================
:SUC_EXIT

IF "%VERBOSE%" == "ON" ECHO 下記のように設定しました．
IF "%VERBOSE%" == "ON" ECHO 　　各種ディレクトリ設定．
IF "%VERBOSE%" == "ON" ECHO 　　　　SET KATANA_SDK_DIR=%KATANA_SDK_DIR%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHC_DIR=%SHC_DIR%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHINOBI_DIR=%SHINOBI_DIR%
IF "%VERBOSE%" == "ON" ECHO 　　各種ツール用設定．
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHC_INC=%SHC_INC%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHC_LIB=%SHC_LIB%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHC_TMP=%SHC_TMP%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHCPP_INC=%SHC_INC%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHCPP_LIB=%SHC_LIB%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET SHCPP_TMP=%SHC_TMP%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET HLNK_LIBRARY1=%HLNK_LIBRARY1%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET HLNK_LIBRARY2=%HLNK_LIBRARY2%
IF "%VERBOSE%" == "ON" ECHO 　　　　SET HLNK_LIBRARY3=%HLNK_LIBRARY3%
IF "%VERBOSE%" == "ON" ECHO 作業が完了しました．
GOTO EXIT

REM ========================================================
REM 使用法表示
REM ========================================================
:USAGE
ECHO 使用法：%0[.bat] [オプション パラメータ]...
ECHO 機能：忍を用いたDreamcast開発に必要な設定を行います．
ECHO オプション：
ECHO 　　-KATANA_SDK_DIR ... KATANA SDKのあるディレクトリを指定します．
ECHO 　　-SHC_DIR        ... SH-Cのあるディレクトリを指定します．
ECHO 　　-SHIONBI_DIR    ... 忍のあるディレクトリを指定します．
ECHO 　　-ENV_FILE       ... 環境ファイルを作成します場合のファイル名を指定します．
ECHO 　　-REMOVE_ENV     ... 関係ある全ての環境変数を削除します．
ECHO 　　-VERBOSE        ... 各種処理の表示を随時行います．
ECHO 　　-HELP           ... このメッセージの表示します．
ECHO 備考：
ECHO 　　オプションとパラメータの間には半角空白文字が必要です．
ECHO 　　オプションは英文字のキャピタルの混在を認めません（-SHC_dir→NG）
ECHO 　　現在オプション無しで%0を実行すると
ECHO 　　　　%0 -KATANA_SDK_DIR %KATANA_SDK_DIR% -SHC_DIR %SHC_DIR% -SHINOBI_DIR %SHINOBI_DIR%
ECHO 　　と同等になります．標準設定に戻したい場合は
ECHO 　　　　%0 -REMOVE-ENV
ECHO 　　としてください．標準設定で実行すると
ECHO 　　　　%0 -KATANA_SDK_DIR %DEF_KATANA_SDK_DIR% -SHC_DIR %DEF_SHC_DIR% -SHINOBI_DIR %DEF_SHINOBI_DIR%
ECHO 　　と同等になります．
GOTO EXIT

REM ========================================================
REM 引数エラー
REM ========================================================
:ER_ARG
ECHO エラー：%1は認識できません．
GOTO ER_EXIT

REM ========================================================
REM エラー終了
REM ========================================================
:ER_NO_DIR
ECHO エラー：ディレクトリ%DIR_NAME%が存在しないかアクセスできません．
GOTO ER_EXIT

REM ========================================================
REM エラー終了
REM ========================================================
:ER_EXIT
ECHO エラーが発生したので作業を中断します．
GOTO EXIT

REM ========================================================
REM おしまい
REM ========================================================
:EXIT
REM 作業用環境変数の削除
SET DEF_KATANA_SDK_DIR=
SET DEF_SHC_DIR=
SET DEF_SHINOBI_DIR=
SET VERBOSE=
SET DIR_NAME=
