Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Open Watcomのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Open Watcom
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:パッケージ開発]] [[en:Open Watcom]] '''Open Watcom''' は多数のターゲット環境にクロスコンパイルすることができる '''Fortran/C/C++'''' コンパイラです [http://www.openwatcom.org/index.php/About_Open_Watcom]。古き良き DOS ゲームの [[Wikipedia:DOS/4G|DOS4GW]] エクステンダを覚えている人もいるでしょう ("W" は "watcom" の略です)。メモリに制約がある環境 (DOS など) で非常に効率的なバイナリを生成するため Watcom は[[Wikipedia: Watcom_C_compiler|ハイエンドゲームのコンパイラ]]として一般に人気がありました。Watcom は Open Watcom として現存しており [http://www.openwatcom.com/index.php/History]、バージョン 1.9 の [http://www.openwatcom.org/ 公式リリース] とバージョン 2.0 の [https://github.com/open-watcom 非公式フォーク] が存在します。 == インストール == 公式 1.9 リリースのバイナリパッケージは AUR4 に存在しません。非公式 2.0 リリースのバイナリパッケージは {{AUR|openwatcom-v2}} パッケージでインストールできます。v2 フォークのソースベースパッケージも存在しますが ({{AUR|openwatcom-v2-git}}{{Broken package link|パッケージが存在しません}})、コンパイルには長い時間がかかります。現時点では、GCC によるブートストラップは無効になっており (スタンドアロンのビルドは機能しますが makepkg では上手くいきません)、ソースリリースをビルドするには前のバージョンの open watcom が必要になります。 == Wmake == Open Watcom には独自の make ユーティリティが付属しています (wmake)。Windows ホストの場合、[[Wikipedia:CMake|CMake]] によって wmake ファイルの生成がサポートされています。残念ながら、Linux の CMake ではクロスコンパイル用の wmake ファイルを生成することはできません [http://public.kitware.com/Bug/view.php?id=14793]。 == Wine で Open Watcom パッケージを使う == {{AUR|openwatcom-v2-git}}{{Broken package link|パッケージが存在しません}} はデフォルトでサポートされている全てのホストプラットフォームの実行ファイルをビルドします。watcom のデバッガ '''wd''' を使ってクロスコンパイルしたバイナリをデバッグしたい場合などに有用です。原理的に、DOS エミュレータなどでも同じことが可能です。既存の Watcom 環境を使うように WINEPREFIX を設定する手順: * 新しい WINEPREFIX を作成 (例: {{ic|$HOME/.watcom}}): {{ic|<nowiki>WINEPREFIX=$HOME/.watcom winecfg</nowiki>}}。 * {{ic|$WINEPREFIX/drive_c}} に移動して watcom という名前の {{ic|/opt/watcom}} のシンボリックリンクを作成: {{ic|ln -s /opt/watcom watcom}}。 * {{ic|regedit}} を起動。 * {{ic|HKEY_CURRENT_USER/Environment}} に以下の文字列変数を追加: * WATCOM = C:\WATCOM * PATH = C:\WATCOM\BINNT * EDPATH = C:\WATCOM\EDDAT * WIPFC = C:\WATCOM\WIPFC == コンパイラ == Open Watcom には DOS と Win16 をサポートしている効率的なネイティブの16ビット x86 コンパイラと、様々な OS をサポートしている32ビットの x86 コンパイラが含まれています (NT/Win32, OS/2, NetWare, Linux, ...)。実験的に PowerPC, Alpha AXP, MIPS, SPARC アーキテクチャもサポートされています。v2 の開発目標は x86_64 と ARM アーキテクチャのサポートです [http://www.openwatcom.org/index.php/Open_Watcom_Reflections_2012-11-19]。Open Watcom の「競合」として GCC ベースの [http://www.mingw.org/ MinGW] (ターゲット環境: Win32) や [http://www.delorie.com/djgpp/ DJGPP] (ターゲット環境: DOS) があります。 ===16ビット x86 コンパイラ=== 16ビットの x86 コンパイラは OS に依存しないライブラリを {{ic|$WATCOM/lib286}} から検索し、OS に依存するライブラリを {{ic|<nowiki>$WATCOM/lib286/${target_os}</nowiki>}} サブディレクトリから検索します。OS によっては別のパスのライブラリを必要とするため、{{ic|LIBPATH}} 環境変数で追加してください。 * '''wcc''': 16ビットのコンパイルしか行わない C コンパイラ * '''wpp''': 16ビットのコンパイルしか行わない C++ コンパイラ * '''wcl''': 16ビットのコンパイルとリンクを行う C/C++ ユーティリティ * '''wfc''': 16ビットのコンパイルしか行わない Fortran コンパイラ * '''wfl''': 16ビットのコンパイルとリンクを行う Fortran ユーティリティ * '''owcc''': POSIX 準拠のコンパイル・リンクユーティリティ。GNU の makefiles を使うプロジェクトでは {{ic|1=CC=owcc}} を設定してください。 ===32ビット x86 コンパイラ=== 32ビットの x86 コンパイラは OS に依存しないライブラリを {{ic|$WATCOM/lib386}} から検索し、OS に依存するライブラリを {{ic|<nowiki>$WATCOM/lib386/${target_os}</nowiki>}} サブディレクトリから検索します。OS によっては別のパスのライブラリを必要とするため、{{ic|LIBPATH}} 環境変数で追加してください。 * '''wcc386''': 32ビットのコンパイルしか行わない C コンパイラ * '''wpp386''': 32ビットのコンパイルしか行わない C++ コンパイラ * '''wcl386''': 32ビットのコンパイルとリンクを行う C/C++ ユーティリティ * '''wfc386''': 32ビットのコンパイルしか行わない Fortran コンパイラ * '''wfl386''': 32ビットのコンパイルとリンクを行う Fortran ユーティリティ * '''owcc''' : POSIX 準拠のコンパイル・リンクユーティリティ。GNU の makefiles を使うプロジェクトでは {{ic|1=CC=owcc}} を設定してください。 === 他の(クロス)コンパイラとの比較 === クロスコンパイラとして使用するときに {{pkg|binutils}} ベースのコンパイラ ({{pkg|gcc}}, {{pkg|clang}}, {{AUR|pcc}}) と大きく違うところは、Open watcom はひとつのコンパイラ (各ターゲット CPU アーキテクチャ用のコンパイラ) だけを使用し、コンパイラフラグによってターゲット OS が決まるということです (下の「クロスコンパイル」を参照)。さらに、OS に依存しないライブラリの多くは {{ic|$WATCOM/lib286}}} と {{ic|$WATCOM/lib386}} にあり、OS 固有の機能を使用するライブラリだけが OS 別のサブディレクトリに保存されます。これは Open Watcom の C ランタイムがコンパイラと一緒に配布されているためです。ひとつの Open Watcom をクロスコンパイラとして幅広い OS で使うことが可能となっています。反対に、binutils ベースのクロスコンパイルツールチェインはターゲットごとに固有の [http://wiki.osdev.org/GCC_Cross-Compiler binutils, コンパイラ, libc の組み合わせ] を必要とします。Open Watcom は Win32 のクロスコンパイラとして作成されるバイナリやライブラリがターゲット OS と上手く統合できるという利点もあります。例えば [http://be.org/ Open Watcom でコンパイルした Python] は [[Wikipedia:ja:Microsoft Visual C++|MSVC]] でコンパイルしたプラグインをロードできます。binutils ベースのコンパイラが他の binutils ベースのコンパイラでビルドしたライブラリを (大抵の場合) 使うことができるのと同じです。現時点では、Open Watcom で作成されるバイナリは GCC によって作成されたバイナリよりも最適化で劣ります。 === コンパイラ最適化フラグなどのオプション === Watcom コンパイラは使用するフラグが GCC と異なっています (例えば、デフォルトでは -O3 が認識されません)。Watcom にはターゲットアーキテクチャや最適化などを定義することができる [http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/compiler-tools/cpopts.html 様々なオプション] が存在します。16ビットのコードを最適化するときに推奨されるフラグは [http://www.ousob.com/ng/wcppug/ng43372.php こちら] に載っています。 === (クロス)コンパイル : 一般的な設定 === クロスコンパイルする場合、適切な環境変数とコンパイラフラグを設定してターゲットを指定する必要があります。コンパイラフラグを定義しなかった場合、ネイティブビルドが行われます。 全てのターゲットで共通の環境変数: {{bc|1=export WATCOM=/opt/watcom}} {{bc|1=export PATH=$WATCOM/binl:$PATH}} {{bc|1=export EDPATH=$WATCOM/eddat}} {{bc|1=export WIPFC=$WATCOM/wipfc}} 全てのビルドターゲットの概要が [http://www.openwatcom.org:4000/@md=c&cd=//&cdf=//depot/V2/src/link/specs.sp&c=Trs@//depot/V2/src/link/specs.sp?ac=64&rev1=3 こちら] に記載されています。 === Linux === C の場合、次のコンパイラを使ってください: '''wcc386''', '''wcl386''', '''owcc'''。 wcc386 の場合 {{ic|1=-bt=linux}} を、wcl386 の場合 {{ic|1=-bcl=linux}} を、owcc の場合 {{ic|-blinux}} を追加してください。何も追加しなかった場合、コンパイラはネイティブビルドを行うためフラグは必ずしも追加する必要はありません。 {{bc|1=export INCLUDE=$WATCOM/lh}} === DOS (16ビット) === wcc の場合 {{ic|1=-bt=dos}} を、wcl の場合 {{ic|1=-bcl=dos}} を、owcc の場合 {{ic|-bdos}} を追加してください。 {{bc|1=export INCLUDE=$WATCOM/h}} === DOS (32ビット DOS4GW エクステンダ) === wcc386 の場合 {{ic|1=-bt=dos}} を、wcl386 の場合 {{ic|1=-bt=dos -l=dos4g}} を、owcc の場合 {{ic|-bdos4g}} を追加してください。 {{bc|1=export INCLUDE=$WATCOM/h}} === WIN16 === wcc の場合 {{ic|1=-bt=windows}} を、wcl の場合 {{ic|1=-bcl=windows}} を、owcc の場合 {{ic|-bwindows}} を追加してください。 {{bc|1=export INCLUDE=$WATCOM/h:$WATCOM/h/win}} === WIN32 === wcc386 の場合 {{ic|1=-bt=nt}} を、wcl386 の場合 {{ic|1=-bcl=nt}} を、owcc の場合 {{ic|-bnt}} を追加してください。 {{bc|1=export INCLUDE=$WATCOM/h:$WATCOM/h/nt}} === OS/2 (16ビット)=== wcc の場合 {{ic|1=-bt=os2}} を、wcl の場合 {{ic|1=-bcl=os2}} を、owcc の場合 {{ic|-bos2}} を追加してください。 {{bc|1=export INCLUDE=$WATCOM/h:$WATCOM/h/os21x}} {{bc|1=export LIBPATH=$WATCOM/binp/dll:$LIBPATH}} === OS/2 (32ビット)=== wcc386 の場合 {{ic|1=-bt=os2}} を、wcl386 の場合 {{ic|1=-bt=os2 -l=os2v2}} を、owcc の場合 {{ic|-bos2v2}} を追加してください。 {{bc|1=export INCLUDE=$WATCOM/h:$WATCOM/h/os2}} {{bc|1=export LIBPATH=$WATCOM/binp/dll:$LIBPATH}} === Netware === wcc386 の場合 {{ic|1=-bt=netware}} を、wcl386 の場合 {{ic|1=-bcl=netware}} を、owcc の場合 {{ic|-bnetware}} を追加してください。 {{bc|1=export INCLUDE=$WATCOM/h:$WATCOM/novh}} {{bc|1=export LIBPATH=$WATCOM/nlm:$LIBPATH}} 一部のパッケージは [http://www.novell.com/coolsolutions/trench/411.html Novell が提供しているプロプライエタリなライブラリとヘッダ] を必要とします。{{AUR|ow-netware_ndk}}{{Broken package link|パッケージが存在しません}} パッケージでインストールできます。 === QNX === Watcom コンパイラはターゲット環境として QNX もサポートしていますが、オープンソースの Open Watcom と一緒にライブラリを再配布することができないため、あまりテストがされていません。理論的には、C ライブラリが Watcom 用にビルドされていれば QNX のコンパイラもできるはずです。 == サードパーティのライブラリとユーティリティ == Watcom には多数の [http://openwatcom.org/index.php/User_Resources サードパーティ製ライブラリとリソース] があります。パッケージにするときは [[MinGW_パッケージガイドライン|MinGW パッケージガイドライン]]を確認してください。ただし、できる限り分割パッケージとしてパッケージ化してください。ただしターゲットが固有 (プロプライエタリ) の依存関係を持つ場合は分割パッケージとはしません。パッケージ済みのライブラリやコンパイラフロントエンドでクロスコンパイラとして使いやすくなります。 ===ライブラリ=== * {{AUR|ow-zlib}} || ターゲット環境: '''32ビット:''' linux, Win32, DOS(4GW), OS/2, Netware '''16ビット:''' DOS, Win16, OS/2 * {{AUR|ow-libbz2}} * Curses: {{AUR|ow-curses-win32a}} : '''32ビット:''' Win32, DOS(4GW) '''16ビット:''' DOS, (Win16) == 参照 == Open Watcom コミュニティは比較的小規模であり、[https://www.reddit.com/r/OpenWatcom/ Reddit] で密やかに活動しています。主な議論は Open Watcom [news://news.openwatcom.org/ ニュースグループ] の "contributors" や "users.c_cpp" グループ、あるいは [https://sourceforge.net/p/openwatcom/discussion/ sourceforge] のユーザーフォーラムで行われています。
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Broken package link
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
Open Watcom
に戻る。
検索
検索
Open Watcomのソースを表示
話題を追加