開発に参加したい方へ>ソースコードのコンパイル
コンパイルには以下のうちのいずれかが必要です。
注意:
Borland C++ 5.5 ではリソースのリンクがうまくできません。アップデートされていないC++ Builderでも同じです。
2001/7/4のRC4(1.2.99.3)からはHHCTRL.OCXを動的ロードするように変更したので,Borland C++使用時のライブラリ作成作業は必要ありません.
MS Visual C++ 6.0を使うときはsakura/sakura.dswをDeveloper Studioで開いてください。
htmlhelp.hを標準のヘッダファイルとは異なるディレクトリに置いている場合はインクルードファイルの読み込みパスを追加する必要があります。
Microsoft Platform SDK(February 2003 Edition)に含まれているNewApis.hのバグを修正しないとコンパイルエラーとなります.関数 Probe_GetLongPathName()において
BOOL (CALLBACK *RealGetLongPathName)(LPCTSTR, LPTSTR, DWORD);
DWORD (CALLBACK *RealGetLongPathName)(LPCTSTR, LPTSTR, DWORD);
Visual C++ 6.0と同様にsakura/sakura.dswを開くとプロジェクトを新しい形式に変換するかどうか聞いてきますので,「はい」を選択して開いてください.
VS .NETではプロジェクトファイル形式およびリソース編集結果がVC 6.0使用時と異なります.個人で編集する分にはそれでもかまわないのですが,パッチの提供をして頂く場合にはリソース編集やプロジェクトへのファイルの追加・削除はVC 6.0の形式に合わせて(すみませんが手動で)編集してください.
プロジェクトファイルはVisual C++ 6.0のdsw/dsp形式で提供されていて,ソースファイルが追加になるとそれらも変更されます.しかし,一旦.slnに変換した後はdspが参照されないため,ファイルが追加された場合は.slnを削除して再度dspより変換する必要があります.
Visual Studio .NET 2003に附属の(最新でない) SDKに含まれているNewApis.hのバグを修正しないとコンパイルエラーとなります.関数 Probe_GetLongPathName()において
BOOL (CALLBACK *RealGetLongPathName)(LPCTSTR, LPTSTR, DWORD);
DWORD (CALLBACK *RealGetLongPathName)(LPCTSTR, LPTSTR, DWORD);
Visual C++ Toolkit 2003は特に選択肢がないので標準設定でインストールしてください.Platform SDKは32bit環境のツール,ヘッダ,ライブラリに加えてWin64環境用のツールをインストールしてください.(nmakeがWin64環境にしか入っていないため).Win64用のツールはクロスコンパイルツールと思われますが,nmakeはそれ自身がバイナリを生成する物ではないのでWin32 用ソフトウェアでも使えます.
事前に環境変数PATH,INCLUDE,LIBを適切に設定する必要があります.Rev#954以降ではバッチファイルのひな形が sakura/Toolkit2003Env.bat.tmpl として入っていますので,必要に応じてパスを書き換えた上で拡張子をbatに変更してご利用ください.
PATH=%PATH%;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft Platform SDK\Bin\win64 SET INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft Platform SDK\Include;C:\Program Files\Microsoft Platform SDK\Include\mfc;C:\Program Files\Microsoft Platform SDK\Include\crt SET LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;C:\Program Files\Microsoft Platform SDK\Lib
Rev#954以降ではBCC/VC共用Makefileになりました.
Toolkit2003Env.bat nmake
依存関係が記述されていませんので,ヘッダファイルのみ修正してmakeすると不完全なファイルができてしまいます.申し訳ありませんがヘッダファイルを変更したときは,
nmake clean nmake
ではじめからやり直してください.
基本的な使い方は通常のVisual Studioと同じですが,SDKが標準では入っていないため別途インストールする必要があります.
Plaform SDKの設定方法はMicrosoftに説明ページがありますが,手順3でInclude ファイルにはC:\Program Files\Microsoft Platform SDK\includeに加えてC:\Program Files\Microsoft Platform SDK\include\mfc及びC:\Program Files\Microsoft Platform SDK\Include\crtも追加してください.
設定が完了したらVisual Stuidio同様にプロジェクトファイルを変換後,ビルドを行ってください.
注意: VisualStudio 2005で作られたバイナリは,Kernel32.dllのIsDebuggerPresent() を参照しにいくようになるため、Win95 では動作しなくなります.
Microsoftから.NET 3.0を含むMicrosoft SDK for Vistaというものがリリースされています.Vista対応のAPIを使うためにはこれが必要なようです.
このSDKはWindows 95/98のことは考慮されていないようで,Platform SDKに入っている互換性維持のためのヘッダ(NewApi.h)が含まれていません.そのため一部ソースコードの修正が必要となります.(エラーになった#include文を削除するだけですが.) コンパイルしたバイナリは過去のウィンドウズでは動作しないものとなります.
また,ディレクトリ構成がPlatform SDKとは異なりますので,コマンドラインでコンパイルする場合には付属のバッチファイルを修正する必要があります.
sakura/sakura.dswを開くとプロジェクトを新しい形式に変換するかどうか聞いてきますので,「はい」を選択して開いてください.
Visual C++ 2008で変換し、再度Visual C++ 2010で変換します。
新しいPlatform SDKのファイルが必要なため,bcc32.cfgのインクルードパスの最後に
-I(bccの既存のinclude);"C:\Program Files\Microsoft Platform SDK\Include"
とPlatform SDKを加えてください.bccのincludeより前に記述するとコンパイルエラーとなりますので注意してください.
sakura ディレクトリにて
make -a
でコンパイルができます。sakura.exeという単一の実行ファイルが生成されます。最後の"-a"は依存関係を自動的に調べるオプションで、Borland C++付属のmakeでのみ有効です。
リソースファイル(MS Visual Studioにて作成)をBorland C++のリソースコンパイラが理解できる形に修正するツールがbtoolディレクトリに含まれています.これはmakeの過程で自動的にコンパイルされて使われます.
sakura/ilink32.cfg.TurboC を ilink32.cfg としてコピーします.Turbo C++を標準以外のディレクトリにインストールしている場合はファイルの中に記述されているパスを修正してください.
その後sakuraディレクトリで
make CC=bcc32
でコンパイルできます.(CC=bcc32は省略できません)
http://sourceforge.net/p/sakura-editor/patches/614/
toupperに2バイト文字を与えたときの振る舞いがVisual C++とBorland C++で異なります。この違いはstricmp, memicmpにも効いてきます。Borland C++はlocaleがJapaneseの場合に2バイト文字の一部に対するtoupperに0を返すため、そこで比較が終わってしまい期待する結果が得られません。
コンパイルには以下のうちのいずれかが必要です。
sakura/sakura_2003.slnを開いてください.
[r3711]でコンパイルできることを確認しています。
sakura/sakura.slnを開いてください.
sakura/sakura.slnを開いてください.
基本的な使い方は通常のVisual Studioと同じですが,SDKが標準では入っていないため別途インストールする必要があります.
sakura/sakura.slnを開くとプロジェクトを新しい形式に変換するかどうか聞いてきますので,「はい」を選択して開いてください.
sakura/sakura.slnを開くとプロジェクトを新しい形式に変換するかどうか聞いてきますので,「はい」を選択して開いてください.
mingw-get-inst-20120426.exe (gccは4.7.2)または
mingw-get-inst-20100831.exe(gccは4.5.0)等を使用してください.
*4.5.0 では[r3079]時点だとエラーになります.
C:\MinGW\includeにMS SDKから
ActivScp.h ShlDisp.h (上書き) htmlhelp.h Rpcsal.h vsstyle.h(r3124-r3134の間のみ)
をコピーして、ShlDisp.h/ActivScp.hの先頭に
#include "Rpcsal.h"
を加えてください.
SDK v7.0以降のhtmlhelp.hの場合には、in_opt, inを削除してください.
コマンドプロンプト(cmd.exe)またはMinGW Shellで、Mingw\binとmsys\1.0\binにパスが通っていればコンパイルができます.
sakura_core ディレクトリに移動し
make
でコンパイルできます.
編集して修正を加えるような場合は、 make depend を実行して依存関係を定義してください.
Commit: [r3079]
Commit: [r3711]
Wiki: Introduction
Wiki: Join