2008年03月08日
Flex SDK の asc をビルドしてみた
ソース公開された Flex 3 SDK には ActionScript -> ActionScript ByteCode 変換する asc.jar のソースコードも含まれている。これをビルドしてやろうというお話。
下準備
modules/asc/README.txt によると、jdk 1.5 以降が必要とのこと。推奨されている 5.0_13 をインストールした。Ant 1.6.2 以降も必要らしいが、これは Windows で Flex SDK をビルドしてみた ときに入れたので省略。
環境変数設定
cygwin を起動して、PATH と JAVA_HOME と ANT_HOME を設定。
$ cd trunk/modules/asc/build/java $ export JAVA_HOME="c:/Program Files/Java/jdk1.5.0_13" $ export ANT_HOME="c:/apache-ant-1.6.2" $ export PATH="/cygdrive/c/Program Files/Java/jdk1.5.0_13/bin:/cygdrive/c/apache-ant-1.6.2/bin:$PATH"
ビルド
$ ant clean main
出力:
Buildfile: build.xml clean: clean: classes: [javac] Compiling 220 source files to N:\program\as\flexsdk\trunk\modules\asc\build\java\classes [javac] 注:一部の入力ファイルは推奨されない API を使用またはオーバーライドしています。 [javac] 注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。 [javac] 注:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。 [javac] 注:詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。 jar: [jar] Building jar: N:\program\as\flexsdk\trunk\modules\asc\lib\asc.jar [jar] Building MANIFEST-only jar: N:\program\as\flexsdk\trunk\modules\asc\lib\abcdump.jar [jar] Building jar: N:\program\as\flexsdk\trunk\modules\asc\lib\abcdump.jar [jar] Building MANIFEST-only jar: N:\program\as\flexsdk\trunk\modules\asc\lib\ash.jar [jar] Building jar: N:\program\as\flexsdk\trunk\modules\asc\lib\ash.jar main: BUILD SUCCESSFUL Total time: 12 seconds
lib フォルダに asc.jar が出力されている。
確認
1年ほど前に、Tamarin と遊んでみた ときのソースコード
// hoge.as : 正規表現で grep import avmplus.*; var re = RegExp(System.argv[0]); var line; while (line = System.readLine()) if (line.match(re)) System.write(line + '\n');
をビルドしてみる。
$ bin/asc.exe hoge.as hoge.abc, 221 bytes written
できた!
実行は付属の avmplus_s.exe で。
$ bin/windows/avmplus_s.exe hoge.abc -- var < hoge.as var re = RegExp(System.argv[0]); var line;
コマンドライン引数を与えるためには -- が必要になっていてちょっと悩んだ。
おわり
来週末に開かれるという Shibuya.abc で発表したいんだが、先は険しい…。
付け焼刃では火傷しそう。