Cygwin

Cygwin による Flex

環境構築

Cygwin 最小インストール

インストーラ http://cygwin.com/setup-x86_64.exe

インストール setup-x86_64.exe -q -R C:\cygwin64 -s ftp://ftp.iij.ad.jp/pub/cygwin -l C:\cygwin64\.cygwin -D -P base-cygwin,base-files -L

-q--quiet-mode無質問インストール
-R--rootルートインストールディレクトリ
-s--siteダウンロードサイト
-l--local-package-dirローカルパッケージディレクトリ、ダウンロードされたアーカイブが入る
-D--downloadインターネットからダウンロード
-P--packages対象パッケージ、ここではまったく最低限の base-cygwin と base-files を入れる指定
-L--local-installローカルからインストール

-R, -s, -l は機能の示すとおり最初だけ記述する。他のパッケージ、たとえば make を入れるなら setup-x86_64.exe -q -D -P make -L で構わない。

ホームディレクトリを作るために、c:\cygwin64\bin\mintty.exe のショートカットの起動オプションを /bin/bash --login -i と書き換え、そのショートカットから起動。

Cygwin における環境変数の扱い

cygpath を使う。cygpath C:\\cygwin64\\usr で /usr が結果として返り、cygpath -w /usr で C:\cygwin64\usr が返る。bash ではバックスラッシュはエスケープ記号なので二重に書く。

~/.bash_profile の末尾などに export 名前=値 と列記しておく。

export AIR_SDK=`cygpath -w /usr/local/airsdk` などとたとえば /usr/local/airsdk に後述の AIR SDK.zip を解凍した場合、バッククォートで Windows パスがインライン展開できる。

以降利便のため、Windows のセミコロンセパレータ形式を Windows パス、Unix のコロンセパレータ形式を Unix パスと記述していく。

vim

インストール setup-x86_64.exe -q -D -P vim -L

設定テキストファイル ~/.vimrc 。実体。好みにより変更。

Java SDK

Flex SDK の実行に絶対必要。

インストーラ Java SE Downloads

cygwin ck terminal emulator java の実行ファイルが出力する CP932 の文字列に自動追従できるターミナルエミュレータ。インストール方法は同梱 .html に詳細。

環境変数 JAVA_HOME に Windows パスを通す。cygpath を使わずベタに書く方がいいかもしれない。主に C:\\Program\ Files\\Java\\jdk~ である。ベタ記述ではパスの空白はエスケープ対象。ダブルクォートは Cygwin が見ない。

スクリプト cygjava を Unix パス下に置いて、実行属性をつけて ./cygjava createsymlinks と入力。カレントに java 関連実行ファイルへの間接リンクを張るので適宜調節。

Apache Ant

バイナリ http://ant.apache.org/bindownload.cgi

インストール Cygwin から unzip apache-ant-*-bin.zip

解凍ディレクトリ/bin に Unix パス、環境変数 ANT_HOME に解凍ディレクトリを Windows パス。

ant を実行して動作確認。

Flex SDK

かなりの割合で java.exe に依存している。

バイナリ http://flex.apache.org/download-binaries.html

インストール Cygwin から unzip apache-flex-sdk-*-bin.zip

環境変数 FLEX_HOME に解凍ディレクトリを Windows パスで。

chmod +x 解凍ディレクトリ/bin/* として実行属性をつけておく。

http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc を PLAYERGLOBAL_HOME/11.1/playerglobal.swc にリネーム。PLAYERGLOBAL_HOME は Windows パス。文字列 1.11 はバージョンによるので SDK に合ったものを持ってくる。

mxmlc をパラメータなしで実行して動作すれば設定成功。

Adobe AIR SDK

Adobe AIR デベロッパーセンター SDK(コンパイラなしの方を選ぶ)

インストール Cygwin から unzip AdobeAIRSDK.zip(おおむねこの名前)

環境変数 AIR_HOME を解凍ディレクトリに Windows パスで。

amxmlc をパラメータなしで実行して動作すれば設定成功。

解凍ディレクトリ/bin を Unix パスに、chmod +x 解凍ディレクトリ/bin/adl.exe とし、~/.bash_profile あたりに alias adl='adl -runtime (AIRのランタイムフォルダ)' と書いておく。ランタイムフォルダはたいてい C:\\Program\ Files\ \(x86\)\\Common\ Files になる。エスケープ文字に注意。

直後あたりに alias adt='java -jar $AIR_HOME/lib/adt.jar $@' と追記。

Flash player debugger

Adobe Flash Player Support Center から content debugger を持ってくる。三種類あるが AIR/Flex なら Plugin ではなく Projector だろうと思う(要追試)。

自分の環境に合った Download the Flash Player for Windows 8 * debugger (.msu)をダウンロード、実行。Windows 8 ではリリースビルドだけが WindowsUpdate で入るため、デバッガは別途入れる必要がある。他 OS では Player に同梱されている。

環境変数 FLASHPLAYER_DEBUGGER に Windows パスで実行ファイル名を直接指定する。

Adobe Pixel Bender Toolkit

Pixel Bender テクノロジーセンター から Toolkit を持ってくる。

環境変数 PIXELBENDER_HOME に Windows パスでインストールフォルダを設定。インストール時に無指定なら "C:\Program Files (x86)\Adobe\Adobe Utilities - CS5\Pixel Bender Toolkit 2" になる。空白と両括弧は要エスケープ。

コンパイルテスト

[ Hello.xml ] <?xml version="1.0" encoding="utf-8"?> <application xmlns="http://ns.adobe.com/air/application/3.9"> <id>samples.adobe.Hello</id> <versionNumber>1.0</versionNumber> <filename>Hello</filename> <initialWindow> <content>Hello.swf</content> <visible>true</visible> <width>400</width> <height>200</height> </initialWindow> </application> [ Hello.mxml ] <?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="Hello World"> <s:Label text="Hello AIR" horizontalCenter="0" verticalCenter="0"/> </s:WindowedApplication>

のようにファイルを二つ作り、amxmlc Hello.mxml でコンパイル、adl Hello.xml で AIR から実行。

配布ファイルの作成

adt -certificate -cn SelfSigned 1024-RSA sampleCert.pfx samplePassword

adt -package -storetype pkcs12 -keystore sampleCert.pfx Hello.air Hello.xml Hello.swf (他の同梱ファイルがあればここに続記)

パスワードを求められるので、ここでは samplePassword と入力。

自己書名されたインストーラ Hello.air が生成されるので、適当に。

apt-cyg の利用

事前条件

最小インストールとして、パッケージ base-cygwin,base-files,awk,bzip2,patch,subversion,wget,which を揃える。

インストール

ソース svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/; chmod +x /bin/apt-cyg

パッチ apt-cyg.patch を patch /bin/apt-cyg apt-cyg.patch としてパッチを当てる。

/bin/apt-cyg の中にある x86 という文字列を x86_64 に変更。

最新 gcc のビルド

事前条件

最小インストールとして、パッケージ base-cygwin,base-files,gcc-g++,autoconf,automake,make,git,vim,bison,flex を揃える。

export LIBRARY_PATH=/usr/local/lib としておく。

ディリクトリ /src に tar xf (ファイル名) でアーカイブを展開し、作業ディレクトリとして /src/build/(プログラム名など) をプログラムごとに作成、その中でビルドする。gcc 以外は展開したディレクトリで直接ビルドしてもかまわない。

configure スクリプトのオプションに注意して、./configure ~ && make && make install する。

gmp

サイト http://gmplib.org/ からアーカイブを持ってくる。

configure --enable-cxx

mpfr

サイト http://mpfr.org/ からアーカイブを持ってくる。

configure

mpc

サイト http://multiprecision.org/ からアーカイブ を持ってくる。

configure --enable-static --disable-shared

isl

サイト http://freecode.com/projects/isl からアーカイブ を持ってくる。

configure

CLooG

サイト http://www.cloog.org/ からアーカイブ を持ってくる。

configure

gcc

ディレクトリ /src で git clone git://gcc.gnu.org/git/gcc.git としてソースを持ってくる。

configure --srcdir=/src/gcc -C --build=x86_64-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --disable-__cxa_atexit --with-dwarf2 --with-tune=generic --enable-languages=c,c++,lto --enable-graphite --enable-threads=posix --enable-libgomp --disable-libitm --enable-libquadmath --enable-libquadmath-support --enable-libssp --enable-libgcj-sublibs --disable-java-awt --disable-symvers --with-ecj-jar=/usr/share/java/ecj.jar --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/local/include/cloog --with-system-zlib

このオプションでのビルド結果は /usr/local/bin/x86_64-pc-cygwin-g++.exe になる。

自作プログラムで使うなら ./configure CXX=x86_64-pc-cygwin-g++ などのようにフラグを指定すること。

./aotugen.sh --prefix=/opt/mono/master/ --build=x86_64-pc-cygwin --with-llvm=/opt/mono/master --with-gc