| 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/<version.major>/playerglobal<version.major>_<version.minor>.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/<version.major>.<version.minor>/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=<path to Flex or FlexJS SDK |
| |
| The script does not check the FLEX_HOME environment variable as that often |
| points to your primary Flex SDK. |
| |
| If you expand the binary distribution into the "in" folder of an Apache Flex or |
| FlexJS SDK, the installer.xml script should find FLEX_HOME automatically. |
| |
| Another option is to use the InstallApacheFlex (version 3.0 or higher). |
| |
| Building the Source in the Source Distribution |
| ---------------------------------------------- |
| |
| When you have all the prerequisites in place and the environment variables |
| set (see Install Prerequisites above), one final thing to check is whether |
| the folder contain the source code is in your Flash Player Trust files as |
| the build script runs the Flash Player Debugger as part of its automated |
| tests. Once you've done that, use |
| |
| cd <falcon.dir> |
| 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=<YYYYMMDD> -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 |
| <http://flex.apache.org> |