Apache Flex Cross-Compiler
====================

    This Apache Flex Cross-Compiler is also known as the 'FalconJX' compiler.  It 
    leverages code from the Apache Flex 'Falcon' Compiler but outputs JavaScript
    instead of a SWF.

    For detailed information about Apache Flex please visit
    http://flex.apache.org/

    This compiler is used in 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 Cross-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 falcon
	 cd falcon
	 git checkout develop

    See the main README for instructions on setting up and building the Apache
    Flex 'Falcon' cross-compiler.

Building the Apache Flex Cross-Compiler
=======================================

    The Apache Flex Cross-Compiler is a large project. It requires that the
    Apache Flex Compiler has been built.  See the main README for instructions.

    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 FalconJX Compiler you must install the same
    software as specified in the main README.  In addition, you may also need:

    ==================================================================================
    SOFTWARE                                    ENVIRONMENT VARIABLE (absolute paths)
    ==================================================================================

    Apache FlexJS SDK or repository             ASJS_HOME

    ==================================================================================

    *1) Set the ASJS_HOME variable to the root of the Apache FlexJS SDK or repository.
        This is optional and only required to run the FlexJS dependent tests in
        the compiler-jx folder.

Software Dependencies
---------------------

    The Apache Flex Cross-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.

	args4j = http://search.maven.org/remotecontent?filepath=args4j/args4j/2.0.28/args4j-2.0.28.jar
        Google Closure Compiler - http://github.com/google/closure-compiler/archive/v	20151015.zip
        commons-io - https://repo1.maven.org/maven2/commons-io/commons-io/2.4/commons-io-2.4.tar.gz


Using the Binary Distribution
-----------------------------

    The binary distribution is intended to be installed into an existing 
    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 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
    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), use

        cd <falcon.dir>
        ant all

    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-all

    To clean the build, of everything, including the downloaded third-party
    dependencies use

        ant wipe-all (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 unittest.properties file ( 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>
