TiMidity++ をWindows用にコンパイルする方法

１．Msys環境下で Mingw でコンパイル
２．Msys環境下で Turbo C++ でコンパイル
３．Msys環境下で OpenWatcom でコンパイル
４．Msys環境下で Visual C++ でコンパイル
５．Msys環境下で Digital Mars でコンパイル(timiditydrv.dllがコンパイルできない）
６．Msys環境下で Pelles C でコンパイル

１．Msys環境下でMingwでコンパイル
（１）MingwとMSYSのセットアップ
	１）MingwとMSYSのセットアップ(http://sourceforge.net/projects/mingw/　http://mingw.sourceforge.net/MinGWiki/))
（２）使用されるライブラリ達のセットアップ
	２−０）dllファイルからインポートライブラリを作る方法
		（pexportsはmingw-utils-0.3.tar.gzに含まれている）
    		pexports xxxx.dll >xxxx.def
    		dlltool --dllname xxxx.dll --input-def xxxx.def --output-lib libxxxx.a
	２−１）pcurses
		"pdcurses-2.6.0-2003.07.21-1.exe"をMingwのサイトからとってきて設定する。
    ２−２）oggvorbis(http://www.vorbis.com/)
    	"http://www.vorbis.com/files/1.0.1/windows/OggVorbis-win32sdk-1.0.1.zip”をとってくる
		dllファイルからインポートライブラリをつくる
    	include\ogg\os_type.hの２９行目を書き換える
			(os_types.h)
			29 #  if !defined(__GNUC__) || defined(__MINGW32__)
		起動用バッチファイルにエントリをつけたす
			REM OggVorbis
			set PATH=\usr\local\oggvorbis-win32sdk-1.0.1\bin;\usr\local\oggvorbis-win32sdk-1.0.1\lib;%PATH%
			set C_INCLUDE_PATH=/usr/local/oggvorbis-win32sdk-1.0.1/include:%C_INCLUDE_PATH
			set LD_LIBRARY_PATH=/usr/local/oggvorbis-win32sdk-1.0.1/lib:%LD_LIBRARY_PATH%
    ２−３）午後のコーダー(http://www.marinecat.net/mct_top.htm)
    	Gogo.dll を午後のコーダーからgogo.hをソースファイルからとりだす。
    	dllファイルからインポートライブラリを作る。
    		move gogo.h gogo\include\gogo
    		move gogo.dll libgogo.a gogo\lib
    	起動用バッチファイルにエントリをつけたす
			REM GOGO
			set PATH=\usr\local\gogo\bin;\usr\local\gogo\lib;%PATH%
			set C_INCLUDE_PATH=/usr/local/gogo/include:%C_INCLUDE_PATH%
			set LD_LIBRARY_PATH=/usr/local/gogo/lib:%LD_LIBRARY_PATH%
	２−4）flac(http://flac.sourceforge.net/)
		"http://downloads.sourceforge.net/flac/flac-1.2.1-devel-win.zip" をとってくる。
		Change include\*\export.hの58行目をすべて以下のように変更
			(export.h)
			58 #if defined(FLAC__NO_DLL) || !defined(_MSC_VER) \
				|| !defined(__BORLANDC__) || !defined(__CYGWIN32__) || !defined(__MINGW32__)
		起動用バッチファイルにエントリをつけたす
			REM FLAC
			set PATH=\usr\local\flac-1.2.1-devel-win\lib;;%PATH%
			set C_INCLUDE_PATH=/usr/local/flac-1.2.1-devel-win/include:%C_INCLUDE_PATH%
			set LD_LIBRARY_PATH=/usr/local/flac-1.2.1-devel-win/bin:%LD_LIBRARY_PATH%	
	２−５）portaudio(http://www.portaudio.com/)
		portaudio v1.19からとったportaudio.hと
		http://sourceforge.net/project/showfiles.php?group_id=81968 の Csound5.08.2-gnu-win32-f.exe  から抜き出した portaudio.dll を用意する。
		インクルードパスに portaudio.h をいれ
		ライブラリパスに portaudio.dll を libportaudio.dll と名前を変えた物を入れる。
		
（３）TiMIdity++のコンパイル
        3-1)timw32g.exe
            (configure)
             CFLAGS="-O2" ./configure --enable-network --enable-w32gui --enable-spline=gauss \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             strip timidity.exe
             mv timidity.exe timw32g.exe
        3-2)twsyng.exe
            (configure)
             CFLAGS="-O2" ./configure --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             strip timidity.exe
             mv timidity.exe twsyng.exe

        3-3)twsynsrv.exe
            (configure)
              CFLAGS="-O2" ./configure --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
             add config.h following line
                #define TWSYNSRV 1
           (make)
             make
             strip timidity.exe
             mv timidity.exe twsynsrv.exe

        3-4)timidity.exe
            (configure)
             CFLAGS="-O2" ./configure --enable-interface=ncurses,vt100,winsyn --enable-network --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             strip timidity.exe
             
        3-5)timiditydrv.dll
            (configure)
             CFLAGS="-O2" ./configure --enable-winsyn --enable-windrv --enable-spline=linear \
             --enable-audio=w32,portaudio
            (make)
             make
             cd windrv
             strip timiditydrv.dll


２．Msys環境下でTurbo C++でコンパイル
（１）Turbo C++ とMSYSのセットアップ
	１）TurboC++のセットアップ
		
		http://www.codegear.com/jp/downloads/free/turbo から Turbo C++ Explorer をダウンロードしてくる。
		bcc32.cfg とilink 32.cfgをつくる
		(bcc32.cfg)
			-IC:\Borland\BDS\4.0\include
			-LC:\Borland\BDS\4.0\lib
			-LC:\Borland\BDS\4.0\lib\psdk
			-DWINVER=0x0400
			-D_WIN32_WINNT=0x0400
		(ilink32.cfg )
			-LC:\Borland\BDS\4.0\lib;C:\Borland\BDS\4.0\lib\psdk
			
		（注意）ilink32.cfg で指定したパスの中に "-"があると ilink32 が誤動作するので "_" 等に変更する必要あり。
	２）MSYSのセットアップ(http://sourceforge.net/projects/mingw/　http://mingw.sourceforge.net/MinGWiki/))
		"/etc/fstab"からMINGWのパスの設定の行を消す
		"msys.bat"を書き換える
		(msys.batの先頭行）
			set PATH=C:\Borland\BDS\4.0\bin;%PATH%
			

（２）使用されるライブラリ達のセットアップ
	２−０−１）dllファイルからインポートライブラリを作る方法
		implib -a -c xxx.lib xxx.dll
	２−０−２）VCのLIBファイルからBCのLIBファイルを作る方法
		coff2omf  xxxx.lib xxx_bcpp.lib

	２−１）pcurses
		"pdcurses-2.6.0-src.tar.bz2"をMingwのサイトからとってきてコンパイルする。
		pccurses.libはlibpdcuses.libに名前を変えないといけない。
		bcc32.cfgとilink32.cfgにエントリを書き込む		
    ２−２）oggvorbis(http://www.vorbis.com/)
    	"OggVorbis-win32sdk-1.0.1.zip”をとってくる
		dllファイルからインポートライブラリをつくる
		bcc32.cfgとilink32.cfgにエントリを書き込む		
    ２−３）午後のコーダー(http://www.marinecat.net/mct_top.htm)
    	Gogo.dll を午後のコーダーからgogo.hをソースファイルからとりだす。
    	dllファイルからインポートライブラリを作る。
    		move gogo.h gogo\include\gogo
    		move gogo.dll libgogo.a gogo\lib
		bcc32.cfgとilink32.cfgにエントリを書き込む		
	２−4）flac(http://flac.sourceforge.net/)
		"http://downloads.sourceforge.net/flac/flac-1.2.1-devel-win.zip" をとってくる。
		Change include\*\export.hの58行目をすべて以下のように変更
			(export.h)
			58 #if defined(FLAC__NO_DLL) || !defined(_MSC_VER) \
				|| !defined(__BORLANDC__) || !defined(__CYGWIN32__) || !defined(__MINGW32__)
		VCのLIBファイルからBCのLIBファイルを作る。
		bcc32.cfgとilink32.cfgにエントリを書き込む。		
	２−５）portaudio(http://www.portaudio.com/)
		portaudio v1.19からとったportaudio.hと
		http://sourceforge.net/project/showfiles.php?group_id=81968 の Csound5.08.2-gnu-win32-f.exe  から抜き出した portaudio.dll を用意する。
		インクルードパスに portaudio.h をいれる（ヘッダファイルだけが必要）

（３）TiMIdity++のコンパイル
        3-0) perl -pe 's/CC\s-o\s\S\S*\s/CC /g' configure >configure_bc
                (configure中の -o xxxx はＢＣＣが受け付けないため)
                
        3-1)timw32g.exe
            (configure)
             CC="bcc32" CPP="cpp32" CFLAGS="" ./configure_bc  --enable-w32gui --enable-spline=gauss \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             mv timidity.exe timw32g.exe
        3-2)twsyng.exe
            (configure)
            CC="bcc32" CPP="cpp32" CFLAGS="" \
            ./configure_bc --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             mv timidity.exe twsyng.exe
        3-3)twsynsrv.exe
            (configure)
             CC="bcc32" CPP="cpp32" CFLAGS=""\
             ./configure_bc --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
             add config.h following line
                #define TWSYNSRV 1
             (make)
             make
             mv timidity.exe twsynsrv.exe
       3-4)timidity.exe
            (configure)
            CC="bcc32" CPP="cpp32" CFLAGS="" \
             ./configure_bc --enable-interface=vt100,winsyn,ncurses --enable-network --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
       3-5)timiditydrv.dll
            (configure)
            CC="bcc32" CPP="cpp32" CFLAGS="" \
             ./configure_bc  --enable-winsyn --enable-windrv --enable-spline=linear \
             --enable-audio=w32,portaudio
            (make)
             make


３．Msys環境下でOpenWatcomでコンパイル
（１）OpenWatcomとMSYSのセットアップ
	１）OpenWatcomのセットアップ(http://www.openwatcom.org)
		１−１）OpenWatcomをダウンロードしてくる。
		２−１）Microsoft Platform SDKからrc.exeを取ってきてさしかえる。
			または wine-prgs-0.9.5.zip(http://www.winehq.com/)からwrc.exeをとりだしrc.exeにリネームする。
		（OpenWatomのrc.exeは使えない）
	２）MSYSのセットアップ(http://sourceforge.net/projects/mingw/　http://mingw.sourceforge.net/MinGWiki/))
		"/etc/fstab"からMINGWのパスの設定の行を消す
		"msys.bat"から"wcc_env.bat"を呼ぶようにする。
		(msys.batの先頭行）
			call wcc_env.bat
		(wcc_env.batの内容）
			@echo off
			set LIB=
			set INCLUDE=
			call i:\watcom\setvars.bat
			
			REM OggVorbis
			set PATH=\usr\local\oggvorbis-win32sdk-1.0.1_wcc\bin;\usr\local\oggvorbis-win32sdk-1.0.1_wcc\lib;%PATH%
			set C_INCLUDE_PATH=/usr/local/oggvorbis-win32sdk-1.0.1_wcc/include:%C_INCLUDE_PATH
			set LIB=\usr\local\oggvorbis-win32sdk-1.0.1_wcc\lib:%LIB%
				（続く）
				 ----
（２）使用されるライブラリ達のセットアップ
	２−０）dllファイルからインポートライブラリを作る方法
		pexports xxxx.dll >xxxx.def
    	lib -def:xxxx.def -machine:IX86
    	pexportsは mingwutils に含まれている。
	２−１）pcurses
		"pdcurses-2.5.0"をGnuWin32(http://sourceforge.net/projects/gnuwin32/)のサイトからとってくる
		dllファイルからインポートライブラリを作る。
		pccurses.libはlibpdcuses.libに名前を変えないといけない。
		起動バッチファイルにエントリを書き込む		
    ２−２）oggvorbis(http://www.vorbis.com/)
    	"OggVorbis-win32sdk-1.0.1.zip”をとってくる
           include\ogg\os_types.hを編集する。
              (os_types.h)
              29 #  if defined(__WATCOMC__)
              30 /* MSVC/Borland */
              31 typedef __int64 ogg_int64_t;
              32 typedef int ogg_int32_t;
              33 typedef unsigned int ogg_uint32_t;
              34 typedef short ogg_int16_t;
              35 typedef unsigned short ogg_uint16_t;
              36 #  else
                   -----
              52 #  endif
		dllファイルからインポートライブラリをつくる
		起動バッチファイルにエントリを書き込む		
    ２−３）午後のコーダー(http://www.marinecat.net/mct_top.htm)
    	Gogo.dll を午後のコーダーからgogo.hをソースファイルからとりだす。
    	dllファイルからインポートライブラリを作る。
    		move gogo.h gogo\include\gogo
    		move gogo.dll libgogo.a gogo\lib
		起動バッチファイルにエントリを書き込む		
	２−4）flac(http://flac.sourceforge.net/)
		"http://downloads.sourceforge.net/flac/flac-1.2.1-devel-win.zip" をとってくる。
		Change include\*\export.hの58行目をすべて以下のように変更
			(export.h)
			58 #if defined(FLAC__NO_DLL) || !defined(_MSC_VER) \
				|| !defined(__BORLANDC__) || !defined(__CYGWIN32__) || !defined(__MINGW32__) \
				|| !defined(__WATCOMC__) || !defined(__DMC__)

		dllファイルからインポートライブラリをつくる
		起動バッチファイルにエントリを書き込む
	２−５）portaudio(http://www.portaudio.com/)
		コンパイルの仕方はわからないが
		portaudio.hをとりだす。
		http://sourceforge.net/project/showfiles.php?group_id=81968 の Csound5.08.2-gnu-win32-f.exe  から抜き出した portaudio.dll を用意する。
		portaudio.dll からインポートライブラリを作る。
		起動バッチファイルにエントリを書き込む
		（portaudio.hさえあればTiMidity++はコンパイルできる）
（３）TiMIdity++のコンパイル
        3-0)wcc386_w.sh & wpp386_w.sh( scripts/ディレクトリにある )
            Wcc386 はGNUのauto Toolと仲が悪いのでラッパーをつくった。
            パスの通ったディレクトリに移動させておいて。
            wcc386.exeのかわりにwcc386_w.shを呼び出して使う。
        3-1)timw32g.exe
            (configure)
            CC="wcc386_w.sh"  CPP="wcc386_w.sh -p"  CFLAGS="-d0 -obll+riemcht" \
           ./configure --enable-network --enable-w32gui --enable-spline=gauss \
            --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio \
            --disable-oggtest --disable-vorbistest --disable-libFLACtest
            (make)
             make
             mv timidity.exe timw32g.exe
        3-2)twsyng.exe
            (configure)
            CC="wcc386_w.sh"  CPP="wcc386_w.sh -p"  CFLAGS="-d0 -obll+riemcht" \
            ./configure --enable-network --enable-winsyng --enable-spline=linear \
            --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio \
            --disable-oggtest --disable-vorbistest --disable-libFLACtest
             (make)
             make
             mv timidity.exe twsyng.exe
        3-3)twsynsrv.exe
            (configure)
            CC="wcc386_w.sh"  CPP="wcc386_w.sh -p"  CFLAGS="-d0 -obll+riemcht" \
            ./configure --enable-network --enable-winsyng --enable-spline=linear \
            --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio \
            --disable-oggtest --disable-vorbistest --disable-libFLACtest
            add config.h following line
                #define TWSYNSRV 1
             (make)
             make
             mv timidity.exe twsynsrv.exe
        3-4)timidity.exe
            (configure)
            CC="wcc386_w.sh"  CPP="wcc386_w.sh -p"  CFLAGS="-d0 -obll+riemcht" \
            ./configure --enable-interface=ncurses,vt100,winsyn --enable-network --enable-spline=linear \
            --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio \
            --disable-oggtest --disable-vorbistest --disable-libFLACtest
            (make)
            make
       3-5)timiditydrv.dll
            (configure)
            CC="wcc386_w.sh"  CPP="wcc386_w.sh -p"  CFLAGS="-d0 -obll+riemcht" \
             ./configure  --enable-winsyn --enable-windrv --enable-spline=linear \
             --enable-audio=w32,portaudio
            (make)
             make

４．Msys環境下でVisual C++でコンパイル
（１）Visual C++とMSYSのセットアップ
	１）VisualC++のセットアップ
        Visual C++ 2008 Express Edition(http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx)
		Microsoft Platform SDK
		をダウンロードしてインストールする。
	２）MSYSのセットアップ(http://sourceforge.net/projects/mingw/　http://mingw.sourceforge.net/MinGWiki/))
		"/etc/fstab"からMINGWのパスの設定の行を消す
		"msys.bat"から"vcc_env.bat"を呼ぶようにする。
		(msys.batの先頭行）
			call vcc_env.bat
		(vcc_env.batの内容）
			@echo off
			call c:\"Program Files\Microsoft Platform SDK"\SetEnv.Cmd /2000 /RETAIL
			call c:"\Program Files\Microsoft Visual Studio 9.0"\Common7\Tools\vsvars32.bat
			Set INCLUDE=c:\DXSDK\include;%INCLUDE%
			Set LIB=c:\DXSDK\lib;%LIB%
				（続く）
				 ----
（２）使用されるライブラリ達のセットアップ
    ２−０）DLLからインポートライブラリを作る方法
    		pexports xxxx.dll >xxxx.def
    		lib -def:xxxx.def  -machine:x86
    		pexports は mungwutils に含まれている。
	２−１）pcurses
		"pdcurses-2.6.0-src.tar.bz2"をMingwのサイトからとってきてコンパイルする。
		pccurses.libはlibpdcuses.libに名前を変えないといけない。
		起動バッチファイルにエントリを書き込む		
    ２−２）oggvorbis(http://www.vorbis.com/)
    	"OggVorbis-win32sdk-1.0.1.zip”をとってくる
		起動バッチファイルにエントリを書き込む		
    ２−３）午後のコーダー(http://www.marinecat.net/mct_top.htm)
    	Gogo.dll を午後のコーダーからgogo.hをソースファイルからとりだす。
    		move gogo.h gogo\include\gogo
    		move gogo.dll libgogo.a gogo\lib
		起動バッチファイルにエントリを書き込む		
	２−4）flac(http://flac.sourceforge.net/)
		flac-1.1.0-win.zipをとってくる。
		"http://downloads.sourceforge.net/flac/flac-1.2.1-devel-win.zip" をとってくる。
		起動バッチファイルにエントリを書き込む
	２−５）portaudio(http://www.portaudio.com/)
		portaudio.hをとりだす。
		http://sourceforge.net/project/showfiles.php?group_id=81968 の Csound5.08.2-gnu-win32-f.exe  から抜き出した portaudio.dll を用意する。
		portaudio.dll からインポートライブラリを作る。
		起動バッチファイルにエントリを書き込む
		（portaudio.hさえあればTiMidity++はコンパイルできる）
（３）TiMIdity++のコンパイル
        3-1)timw32g.exe
            (configure)
             CC="cl" CPP="cl.exe -EP"  CFLAGS="-O2" \
            ./configure --enable-network --enable-w32gui --enable-spline=gauss \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
            make
             mv timidity.exe timw32g.exe
        3-2)twsyng.exe
            (configure)
            CC="cl" CPP="cl.exe -EP"  CFLAGS="-O2" \
            ./configure --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             mv timidity.exe twsyng.exe
        3-3)twsynsrv.exe
            (configure)
             CC="cl" CPP="cl.exe -EP"  CFLAGS="-O2"\
             ./configure --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
             add config.h following line
                #define TWSYNSRV 1
             (make)
             make
             mv timidity.exe twsynsrv.exe
        3-4)timidity.exe
            (configure)
            CC="cl" CPP="cl.exe -EP"  CFLAGS="-O2" \
             ./configure --enable-interface=ncurses,vt100,winsyn --enable-network --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
        3-5)timiditydrv.dll
            (configure)
            CC="cl" CXX="cl" CPP="cl.exe -EP"  CFLAGS="-O2" \
              ./configure --enable-winsyn --enable-windrv --enable-spline=linear \
              --enable-audio=w32,portaudio
            (make)
             make

５．Msys環境下でDigital Marsでコンパイル
（１）Digital MarsとMSYSのセットアップ
	１）Digital Marsのセットアップ(http://www.digitalmars.com/)
		１−１）Digital Marsをダウンロードしてくる。
		２−１）Microsoft Platform SDKからrc.exeを取ってきてさしかえる。
			または wine-prgs-0.9.5.zip(http://www.winehq.com/)からwrc.exeをとりだしrc.exeにリネームする。
		（Digital Marsのrcc.exeは使えない）
	２）MSYSのセットアップ(http://sourceforge.net/projects/mingw/　http://mingw.sourceforge.net/MinGWiki/))
		"/etc/fstab"からMINGWのパスの設定の行を消す
		"msys.bat"から" dm_env.bat"を呼ぶようにする。
		(msys.batの先頭行）
			call dm_env.bat
		(dm_env.batの内容）
			set LIB=
			set INCLUDE=

			Set PATH=i:\dm\bin;%PATH%
			Set INCLUDE=i:\dm\include;i:\dm\include\win32;%INCLUDE%
			Set LIB=i:\dm\lib;%LIB%
			
			Set PATH=i:\usr\local\gogo\bin;%PATH%
			Set INCLUDE=i:\usr\local\gogo\include;%INCLUDE%
			Set LIB=i:\usr\local\gogo\lib;%LIB%
				（続く）
				 ----
（２）使用されるライブラリ達のセットアップ
	２−０）dllファイルからインポートライブラリを作る方法
		implib out.lib in.dll
	２−１）pcurses
		"pdcurses-2.5.0"をGnuWin32(http://sourceforge.net/projects/gnuwin32/)のサイトからとってくる
		curses.hの以下の行を変更する。
		281 #if defined( _MSC_VER )|| defined(__DMC__)       /* defined by compiler */
		977 #if !defined(PDC_STATIC_BUILD) && (defined(_MSC_VER) || defined(__DMC__))&& defined(WIN32) && !defined(CURSES_LIBRARY)
		988 # if !defined(PDC_STATIC_BUILD) && (defined(_MSC_VER) || defined(__DMC__)) && defined(WIN32)
		system オプションを使って、dllファイルからインポートライブラリを作る。
		$implib /system libpdcurses.lib pdcurses.dll
		pccurses.libはlibpdcuses.libに名前を変えないといけない。
		起動バッチファイルにエントリを書き込む		
    ２−２）oggvorbis(http://www.vorbis.com/)
    	"OggVorbis-win32sdk-1.0.1.zip”をとってくる
           include\ogg\os_types.hを編集する。
              (os_types.h)
              36 #  elif defined(__MINGW32__) || defined(__DMC__)
		dllファイルからインポートライブラリをつくる
		起動バッチファイルにエントリを書き込む		
    ２−３）午後のコーダー(http://www.marinecat.net/mct_top.htm)
    	Gogo.dll を午後のコーダーからgogo.hをソースファイルからとりだす。
    	dllファイルからインポートライブラリを作る。
    		move gogo.h gogo\include\gogo
    		move gogo.dll libgogo.a gogo\lib
		起動バッチファイルにエントリを書き込む		
	２−4）flac(http://flac.sourceforge.net/)
		"http://downloads.sourceforge.net/flac/flac-1.2.1-devel-win.zip" をとってくる。
		Change include\*\export.hの58行目をすべて以下のように変更
			(export.h)
			58 #if defined(FLAC__NO_DLL) || !defined(_MSC_VER) \
				|| !defined(__BORLANDC__) || !defined(__CYGWIN32__) || !defined(__MINGW32__) \
				|| !defined(__WATCOMC__) || !defined(__DMC__)
				
		dllファイルからインポートライブラリをつくる
		起動バッチファイルにエントリを書き込む
	２−５）portaudio(http://www.portaudio.com/)
		portaudio.hをとりだす。
		http://sourceforge.net/project/showfiles.php?group_id=81968 の Csound5.08.2-gnu-win32-f.exe  から抜き出した portaudio.dll を用意する。
		portaudio.dll からインポートライブラリを作る。
		起動バッチファイルにエントリを書き込む
		（portaudio.hさえあればTiMidity++はコンパイルできる）
（３）TiMIdity++のコンパイル
        3-0-1) unix->dosの改行コード変換（LF->CRLF)
           $sh script/unix2dos.sh
        3-0-1) perl -pe 's/CC\s-o\s\S\S*\s/CC /g' configure |perl -pe 's/CXX\s-o\s\S\S*\s/CXX /g' - >configure_dm
                (configure中の -o xxxx はdmc.exeが受け付けないため)
        3-0-2) Free Pascal Compiler(http://www.freepascal.org/)から
             cpp.exeを取り出しfpcpp.exeと名前を変えてパスの通ったディレクトリにおく。
            （dmc.exeはgnu autotools用のプリプロセッサには不向き）

        3-1)timw32g.exe
            (configure)
            CC="dmc -Jm -w -mn -5 -o" CPP="fpcpp -D__NT__ -I/i/dm/include" \
             ./configure_dm --enable-network --enable-w32gui --enable-spline=gauss \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             mv timidity.exe timw32g.exe
        3-2)twsyng.exe
            (configure)
            CC="dmc -Jm -w -mn -5 -o" CPP="fpcpp -D__NT__ -I/i/dm/include" \
             ./configure_dm --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
             (make)
             make
             mv timidity.exe twsyng.exe
        3-3)twsynsrv.exe
            (configure)
            CC="dmc -Jm -w -mn -5 -o" CPP="fpcpp -D__NT__ -I/i/dm/include" \
             ./configure_dm --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            add config.h の最後に以下の行を追加。
                #define TWSYNSRV 1
             (make)
             make
             mv timidity.exe twsynsrv.exe
        3-4)timidity.exe
            (configure)
            CC="dmc -Jm -w -mn -5 -o" CPP="fpcpp -D__NT__ -I/i/dm/include" \
             ./configure_dm --enable-interface=ncurses,vt100,winsyn --enable-network --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
            make
       3-5)timiditydrv.dll
            (configure)
            CC="dmc -Jm -w -mn -5 -o" CPP="fpcpp -D__NT__ -I/i/dm/include" \
             ./configure_dm --enable-interface=windrv,winsyn --enable-network --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
            make
              commentout timiditydrv.h 23:
              23 //#error this stub requires an updated version of <rpcndr.h>
           	make

６．Msys環境下で Pelles C でコンパイル
（１）Pelles C と MSYS のセットアップ
	１）Pelles C のセットアップ
		Pelles C のホームページ（http://www.smorgasbordet.com/pellesc/）からダウンロードしてインストールする。
	２）MSYSのセットアップ(http://sourceforge.net/projects/mingw/　http://mingw.sourceforge.net/MinGWiki/))
		"/etc/fstab"からMINGWのパスの設定の行を消す
		"msys.bat"から"pocc_env.bat"を呼ぶようにする。
		(msys.batの先頭行）
			call pocc_env.bat
		(vcc_env.batの内容）
			@echo off
			call call c:\PellesC\bin\povars32.bat

			Set INCLUDE=c:\DXSDK\include;%INCLUDE%
			Set LIB=c:\DXSDK\lib;%LIB%
				（続く）
				 ----
（２）使用されるライブラリ達のセットアップ
	２−１）pcurses
		"pdcurses-2.6.0-src.tar.bz2"をMingwのサイトからとってきてコンパイルする。
		pccurses.libはlibpdcuses.libに名前を変えないといけない。
		起動バッチファイルにエントリを書き込む		
    ２−２）oggvorbis(http://www.vorbis.com/)
    	"OggVorbis-win32sdk-1.0.1.zip”をとってくる
    	(http://www.vorbis.com/files/1.0.1/windows/OggVorbis-win32sdk-1.0.1.zip)
		起動バッチファイルにエントリを書き込む		
    ２−３）午後のコーダー(http://www.marinecat.net/mct_top.htm)
    	Gogo.dll を午後のコーダーからgogo.hをソースファイルからとりだす。
    		move gogo.h gogo\include\gogo
    		move gogo.dll libgogo.a gogo\lib
		起動バッチファイルにエントリを書き込む		
	２−4）flac(http://flac.sourceforge.net/)
		"http://downloads.sourceforge.net/flac/flac-1.2.1-devel-win.zip" をとってくる。
		Change include\*\export.hの58行目をすべて以下のように変更
			(export.h)
			58 #if defined(FLAC__NO_DLL) || !defined(_MSC_VER) \
				|| !defined(__BORLANDC__) || !defined(__CYGWIN32__) || !defined(__MINGW32__) \
				|| !defined(__WATCOMC__) || !defined(__DMC__)

		起動バッチファイルにエントリを書き込む
	２−５）portaudio(http://www.portaudio.com/)
		コンパイルの仕方はわからないが		portaudio.hをとりだす。
		http://sourceforge.net/project/showfiles.php?group_id=81968 の Csound5.08.2-gnu-win32-f.exe  から抜き出した portaudio.dll を用意する。
		起動バッチファイルにエントリを書き込む
		（portaudio.hさえあればTiMidity++はコンパイルできる）
		portaudio.hさえあればTiMidity++はコンパイルできる。
（３）TiMIdity++のコンパイル
		3-0-1) perl -pe 's/CC\s-o\s\S\S*\s/CC /g' configure >configure_pocc
                (configure中の -o xxxx は Pelles C が受け付けないため)
        3-0-2) 全てのソースの漢字コードをSJIS。改行コードをCR/LFに変換しておく。
        3-1)timw32g.exe
            (configure)
            CC="cc" CPP="pocc.exe -E"  CFLAGS="-MT" ./configure_pocc  \
            --enable-network --enable-w32gui --enable-spline=gauss \
            --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
            make
             mv timidity.exe timw32g.exe
        3-2)twsyng.exe
            (configure)
            CC="cc" CPP="pocc.exe -E"  CFLAGS="-MT" ./configure_pocc  \
            --enable-network --enable-winsyng --enable-spline=linear \
            --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
             mv timidity.exe twsyng.exe
        3-3)twsynsrv.exe
            (configure)
             CC="cc" CPP="pocc.exe -E"  CFLAGS="-MT" ./configure_pocc  \
             --enable-network --enable-winsyng --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
             add config.h following line
                #define TWSYNSRV 1
             (make)
             make
             mv timidity.exe twsynsrv.exe
        3-4)timidity.exe
            (configure)
            CC="cc" CPP="pocc.exe -E"  CFLAGS="-MT" ./configure_pocc  \
            --enable-interface=ncurses,vt100,winsyn --enable-network --enable-spline=linear \
             --enable-audio=w32,vorbis,gogo,ogg,flac,portaudio
            (make)
             make
        3-5)timiditydrv.dll
            (configure)
            CC="cc" CPP="pocc.exe -E"  CFLAGS="-MT" ./configure_pocc  \
            --enable-winsyn --enable-windrv --enable-spline=linear \
              --enable-audio=w32,portaudio
            (make)
             make


2008.4.10 末永　圭司(skeishi@yahoo.co.jp)
