Apache Flex Compiler ==================== This Apache Flex Compiler is also known as the 'Falcon' compiler. It is the next-generation replacement to the MXMLC compiler that is currently bundled with the Apache Flex SDK and is based on the Adobe ASC2.0 code base donated to Apache by Adobe Systems Inc. This Compiler may also be packaged with the Apache Flex Cross-Compiler which has additional information in the README_JX file. For detailed information about Apache Flex please visit http://flex.apache.org/ This compiler may eventually replace MXMLC in the Apache Flex SDK, but is also being used as the compiler for the Apache FlexJS SDK. FlexJS is a next-generation SDK that allows the developer to leverage MXML and ActionScript to build applications that not only run as a SWF, but can also be cross-compiled to JavaScript and run natively in a browser or anywhere JavaScript runs. Getting the latest sources via git ================================== Getting the source code is the recommended way to get the Apache Flex Compiler. We also offer an automated installer along with binary distributions on our website at http://flex.apache.org/. You can always checkout the latest source via git using the following command: git clone https://git-wip-us.apache.org/repos/asf/flex-falcon.git flex-falcon cd flex-falcon git checkout develop When working with the sources from Git, the Apache Flex Compiler also requires code from other Apache Flex git repositories or an Apache Flex SDK. These Apache Flex SDK source files are bundled in Apache Flex Falcon source code distributions, so this step is optional when using source code distributions. To get the latest source via git for the Apache Flex SDK use the following command: git clone https://git-wip-us.apache.org/repos/asf/flex-sdk.git flex-sdk cd flex-sdk git checkout develop The Apache Flex SDK requires the Text Layout Framework repository which you can get as follows: git clone https://git-wip-us.apache.org/repos/asf/flex-tlf.git flex-tlf cd flex-tlf git checkout develop To use an Apache Flex SDK, install an Apache Flex SDK on your computer and follow the instructions in 'Install Prerequisites'. Building the Apache Flex Compiler ================================= The Apache Flex Compiler is a large project. It requires some build tools which must be installed prior to building the compiler and it depends on some external software which are downloaded as part of the build process. Some of these have different licenses. See the Software Dependencies section for more information on the external software dependencies. Linux support is currently experimental and while it is possible to compile the SDK it has not been fully tested so you may run into issues. Install Prerequisites --------------------- Before building the Apache Flex Compiler you must install the following software and set the corresponding environment variables using absolute file paths. Relative file paths will result in build errors. ================================================================================== SOFTWARE ENVIRONMENT VARIABLE (absolute paths) ================================================================================== Java SDK 1.6 or greater (*1) JAVA_HOME (for Java 1.7 see note at (*2)) Ant 1.7.1 or greater (*1) ANT_HOME (for Java 1.7 see note at (*2)) Adobe AIR Integration Kit (*3) AIR_HOME Adobe Flash Player Content Debugger (*4) FLASHPLAYER_DEBUGGER Adobe Flash Player playerglobal swcs (*5) PLAYERGLOBAL_HOME Optional: Apache Flex SDK or repository (*6) FLEX_HOME Optional: Apache Flex TLF source (*7) TLF_HOME Optional: Flex Messaging Common (*8) BLAZEDS_HOME ================================================================================== *1) The bin directories for ANT_HOME and JAVA_HOME should be added to your PATH. On Windows, set PATH to PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin On the Mac (bash), set PATH to export PATH="$PATH:$ANT_HOME/bin:$JAVA_HOME/bin" On Linux make sure you path include ANT_HOME and JAVA_HOME. *2) If you are using Java SDK 1.7 or greater on a Mac you must use Ant 1.8 or greater. If you use Java 1.7 with Ant 1.7, ant reports the java version as 1.6 so the JVM args for the data model (-d32/-d64) will not be set correctly and you will get compile errors. *3) The Adobe AIR integration kit for Windows can be downloaded from: http://airdownload.adobe.com/air/win/download/4.0/AdobeAIRSDK.zip The Adobe AIR integration kit for Mac can be downloaded from: http://airdownload.adobe.com/air/mac/download/4.0/AdobeAIRSDK.tbz2 The Adobe AIR integration kit for Linux can be downloaded from: http://airdownload.adobe.com/air/lin/download/2.6/AdobeAIRSDK.tbz2 Download the AIR SDK for your platform and unzip it. Set AIR_HOME to the absolute path of the AIR SDK directory. *4) The Adobe Flash Player content debuggers can be found here: http://www.adobe.com/support/flashplayer/downloads.html On Windows, set FLASHPLAYER_DEBUGGER to the absolute path including the filename of the FlashPlayerDebugger.exe. Note the filename of flash player debugger maybe different. e.g. C:\MyPath\FlashPlayerDebugger.exe On the Mac, set FLASHPLAYER_DEBUGGER to the absolute path of Flash Player Debugger.app/Contents/MacOS/Flash Player Debugger On Linux, set FLASHPLAYER_DEBUGGER to the absolute path of flashplayerdebugger *5) The Adobe Flash Player playerglobal.swc for 11.1 can be downloaded from: http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc Use URL above to download playerglobal11_1.swc. Set PLAYERGLOBAL_HOME to the absolute path of the player directory (not including the version subdirectory). The target-player option controls which PLAYERGLOBAL_HOME subdirectory is used. Other more recent versions of Adobe Flash Player playerglobal.swc can be downloaded from: http://download.macromedia.com/get/flashplayer/updaters//playerglobal_.swc (e.g. http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc) Copy the target playerglobal.swc to the directory: frameworks/libs/player/./playerglobal.swc These can be used with the Apache Flex Compiler but not all have not been fully tested. *6) The FLEX_HOME variable should point to a folder of the flex-sdk sources. If you don’t provide this variable (and TLF_HOME and BLAZEDS_HOME), you may not be able to run all of the tests in the compiler and compiler-jx folders. *7) The TLF_HOME variable should point to a folder containing a folder named textLayout that contains a src folder of the TLF sources. This should be the root of the flex-tlf repository, or can be the frameworks/projects folder of an IDE compatible Flex SDK. *8) The build scripts assume that the root folder containing the source code for Apache Flex BlazeDS ('flex-blazeds') is at the same level as the SDK root folder ('flex-sdk'). See 'Getting the source code', below. If this is not the case on your system, then you must set the BLAZEDS_HOME environment variable to point to your BLAZEDS root folder. If you are using a released artifact, the source should be included in the artifact, so setting BLAZEDS_HOME is not required. Software Dependencies --------------------- The Apache Flex Compiler uses third-party code that will be downloaded as part of the build. The Apache Version 2.0 license is in the LICENSE file. The following dependencies have licenses which are, or are compatible with, the Apache Version 2.0 license. You will not be prompted to acknowledge the download. Most of the jars are installed in lib/external when installed into an Apache Flex SDK and the lib folder in the repository working copy. antlr - https://repo1.maven.org/maven2/org/antlr/antlr-complete/3.5.2/antlr-3.5.2-complete.jar commons-cli - https://repo1.maven.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2-bin.tar.gz commons-io - https://repo1.maven.org/maven2/commons-io/commons-io/2.4/commons-io-2.4.tar.gz commons-lang - https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.tar.gz commons-lang3 - https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar commons-compress - https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.10/commons-compress-1.10.jar guava - https://repo1.maven.org/maven2/com/google/guava/guava/17.0/guava-17.0.jar jburg - https://repo1.maven.org/maven2/net/sourceforge/jburg/jburg/1.10.2/jburg-1.10.2.jar jflex - http://jflex.de/jflex-1.6.0.tar.gz lzma - http://www.java2s.com/Code/JarDownload/lzma/lzma-9.20.jar.zip Using the Binary Distribution ----------------------------- The binary distribution is intended to be installed into an existing Apache Flex SDK or Apache FlexJS SDK. There is an Apache Ant script in the binary distribution that will copy the files into the right places. To run it, use: ant -f installer.xml -DFLEX_HOME= ant main (or just ant since the default target is main) to download the thirdparty dependencies and build the source. Since the third-party dependencies take a little while to download and they don't change very often, they are not cleaned with the regular clean target. To clean the build, of everything other than the downloaded third-party dependencies use ant clean To clean the build, of everything, including the downloaded third-party dependencies use ant wipe (which is just thirdparty-clean followed by clean) To generate a source distribution package and a binary distribution package use ant -Dbuild.number= -Dbuild.noprompt= release The packages can be found in the "out" subdirectory. To get a brief listing of all the targets type ant -projecthelp Running Tests ------------- Before running unit-, functional- or feature-tests you may need to create a compiler/src/tests/unittest.properties file A template is found here compiler/src/main/resources/template-unittest.properties. Thanks for using Apache Flex. Enjoy! The Apache Flex Project