Skip to content

macOSのNXTビルドを現在のWine環境に対応#65

Open
supurazako wants to merge 6 commits into
ETrobocon:masterfrom
supurazako:fix/wine-deprecated
Open

macOSのNXTビルドを現在のWine環境に対応#65
supurazako wants to merge 6 commits into
ETrobocon:masterfrom
supurazako:fix/wine-deprecated

Conversation

@supurazako

Copy link
Copy Markdown
Contributor

概要

macOS環境におけるNXT向けビルドで、現在のWine環境に対応するよう修正しました。

関連issue

closes #56

背景

現在のmacOS環境では、従来利用していた gcenx/wine/wine-crossover を前提としたインストール処理が利用できなくなっています。
ref: Gcenx/homebrew-wine@f201026

変更内容

  • macOS向けのWineインストール対象を gcenx/wine/game-porting-toolkit に変更
  • macOSでは wine / wine64 の存在を $HOMEBREW_PREFIX/bin 配下で確認するよう修正
  • macOS向けに wine64 を使って sg.exe を実行するよう ecrobot.mak / ecrobot++.mak の生成処理を調整
  • sg の呼び出しを sg.exe に置換する処理を修正
  • sg.exe 実行後に kernel_cfg.c / kernel_id.h が生成されているか確認する処理を追加
  • macOS向けの cygpath ラッパーとして scripts/maccygpath を追加
  • NXT環境の起動時に、macOSでは maccygpathcygpath として配置するよう修正
  • macOSでの lsusb / libusb 関連の存在確認をHomebrew配下のファイル確認に変

動作確認

  • make sample でbuildが成功すること

補足

macOS環境におけるNXT向けビルド対応を目的とした修正です。
Linux / Windows向けの処理には大きな影響が出ないよう、macOS向けの分岐を中心に変更しています。

NXT向けビルドでは、sg.exe の実行やMakefile内でのパス変換に cygpath が利用されています。
従来は、Cygwin環境(Windows)を前提として cygpath コマンドが利用可能であることを前提にしていましたが、macOS環境では cygpath は標準では存在しません。そのため、Wine上で sg.exe を実行する際にパス変換が正しく行われず、ビルドに失敗する可能性がありました。
本PRでは、macOS環境向けに cygpath 相当の処理を行うラッパー(maccygpath)を追加し、cygpath の代替として利用するようにしています。これにより、macOS上でもWindows形式のパス変換を適切に行い、sg.exe の実行およびビルド処理が正常に動作するようになります。

@jtFuruhata jtFuruhata left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

プルリクありがとうございます、マージには下記の点を解決したいです:

  • Issue #56 で仕掛けを説明した通り、scripts/(fake)cygpathはバグが潜んでいない限りそのまま使ってください、Windowsも含めた全環境がBASH上で動作していて、WindowsパスではなくPOSIXパスを統一して使っていますから、変換する必要がないのです。

  • またMacだけではなくLinuxもWineを利用していることに配慮していただけるとありがたいです。この環境ではsg.exeの実行にしかWineを利用しておらず、これはwin32アプリケーションですから、wine64に配慮する必要はなく、使うのはwineだけで問題ないです。

  • あとはあれですね、libusbのインストールチェックにバージョン番号をハードコードするのはちょっと避けたい感じです

@supurazako

supurazako commented Apr 26, 2026

Copy link
Copy Markdown
Contributor Author

返信ありがとうございます。

  • Issue [M2 mac] NXTモードでのwineconsole準備とt2n依存チェック #56 で仕掛けを説明した通り、scripts/(fake)cygpathはバグが潜んでいない限りそのまま使ってください、Windowsも含めた全環境がBASH上で動作していて、WindowsパスではなくPOSIXパスを統一して使っていますから、変換する必要がないのです。

すみません、理解不足でした。動作確認したところ問題なさそうでしたので、既存の scripts/(fake)cygpath を使う形に戻します。

  • またMacだけではなくLinuxもWineを利用していることに配慮していただけるとありがたいです。この環境ではsg.exeの実行にしかWineを利用しておらず、これはwin32アプリケーションですから、wine64に配慮する必要はなく、使うのはwineだけで問題ないです。

gcenx/wine/game-porting-toolkitwine を追加せず、wine64 のみを PATH に追加する挙動だったため、macOS ではそれに合わせて動作確認していました。今回の変更では Darwin 分岐の WINECONSOLE のみを書き換えているため、Linux 側にそのまま wine64 が乗るわけではありません。そのため、問題ないのではないかと思い、このような実装になっております。

  • あとはあれですね、libusbのインストールチェックにバージョン番号をハードコードするのはちょっと避けたい感じです

おっしゃる通りです。特定のバージョンに依存しない形に修正します。

@supurazako supurazako requested a review from jtFuruhata April 28, 2026 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[M2 mac] NXTモードでのwineconsole準備とt2n依存チェック

2 participants