Apache Flex (Flex) ================== Apache Flex is an application framework for easily building Flash-based applications for mobile devices, the browser and desktop. For detailed information about Apache Flex please visit http://incubator.apache.org/flex/ Apache Flex is a large project with many pieces. The framework is implemented in Actionscript and the compiler is implemented in Java. Currently supported platforms include: Microsoft Windows Mac OS X Apple iOS Google Android RIM BlackBerry Apache Flex is the software evolution of the popular Adobe Flex SDK project. The community surrounding Flex is vast, diverse, distributed globally, and with all levels of proficiency in software development. It is estimated that there are between 350,000 and 500,000 Flex developers worldwide. Getting the latest sources via Subversion ========================================= You can always checkout the latest source via subversion using the following command: svn co https://svn.apache.org/repos/asf/incubator/flex/trunk flex For further information visit http://incubator.apache.org/flex/source.html Building Apache Flex 4.8 ======================== Apache Flex 4.8 is a parity release from Apache of Adobe Flex 4.6. Apache Flex is a large project. It requires some build tools which must be installed prior to building Flex and it depends on some external software which are downloaded as part of the build process. See the Software Dependencies section for more information on the external software dependencies. From Apache's perspective, the Adobe Flash Player and Adobe AIR have excluded licenses so they can not be bundled with the Apache Flex binaries. They must be installed prior to building Apache Flex. Install Prerequisites --------------------- Adobe Flex 4.6 was certified with AIR 3.1 and Flash Player 11.1. Adobe Flex 4.8 will continue to use these. Before building Flex you must install the following software and set the corresponding environment variables using absolute file paths. Relative file paths will result in build errors. The environment variables PLAYERGLOBAL_HOME, AIR_HOME, FLASHPLAYER_DEBUGGER, PIXELBENDER_HOME and ADOBE_EXTENSION_MANAGER can also be set in the property file called env.properties. See the env-template.properties file for instructions. The Adobe Flash Player playerglobal.swc is needed to compile all the components with the exception of the airframework and airspark components which require airglobal.swc from the AIR Integration Kit. The AIR Integration kit is also needed to build and debug mobile applications. The Flash Player content debugger is used by checkintests and other pieces of the test subsystem to run compiled applications. The Adobe Pixel Bender Toolkit is needed to build some files needed for effects. ================================================================================== SOFTWARE ENVIRONMENT VARIABLE (absolute paths) ================================================================================== Java SDK 1.5 (0_13 or greater) JAVA_HOME or Java SDK 1.6 (*1) Ant 1.7.0 or greater (*1) ANT_HOME Cygwin, git bash or other unix-like shell (if Windows) Adobe AIR Integration Kit (*2) AIR_HOME Adobe Flash Player Content Debugger (*3) FLASHPLAYER_DEBUGGER Adobe Pixel Bender Toolkit (*4) PIXELBENDER_HOME Adobe Flash Player (*5) PLAYERGLOBAL_HOME Adobe Extension Manager CS5 (*6) ADOBE_EXTENSION_MANAGER ================================================================================== *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" *2) The Adobe AIR integration kit for Windows can be downloaded from: http://airdownload.adobe.com/air/win/download/3.1/AdobeAIRSDK.zip The Adobe AIR integration kit for Mac can be downloaded from: http://airdownload.adobe.com/air/mac/download/3.1/AdobeAIRSDK.tbz2 Download the AIR SDK for your platform and unzip it. Set AIR_HOME to the absolute path of the AIR SDK directory. *3) 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 of 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 set FLASHPLAYER_DEBUGGER to the absolute path of flashplayerdebugger *4) The Adobe Pixel Bender Toolkit for Windows can be downloaded from: http://www.adobe.com/go/pixelbender_toolkit_zip/ The Adobe Pixel Bender Toolkit for Mac can be downloaded from: http://www.adobe.com/go/pixelbender_toolkit_dmg/ Download the Pixel Bender Toolkit for your platform and install or unzip it. Set PIXELBENDER_HOME to the absolute path of the Pixel Bender Toolkit directory. *5) The Adobe Flash Player playerglobal.swc for 11.1 can be downloaded from: http://fpdownload.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc Use URL above to download playerglobal11_1.swc. Create the directory, player/11.1 and copy playerglobal11_1.swc to player/11.1/playerglobal.swc. Set PLAYERGLOBAL_HOME to the absolute path of the player directory (not including the version subdirectory). The target-version option controls which PLAYERGLOBAL_HOME subdirectory is used. *6) The Adobe Extension Manager is only required for those creating release or testing changes to the flash-integration swc. Not that if you change APIs on classes that flash-integration depends on, you may need to update flash-integration. The Adobe Extension Manager for Windows can be downloaded from: http://download.macromedia.com/pub/dw_exchange/extension_manager/win/AdobeExtensionManager5All.zip The Adobe Extension Manager for Mac can be downloaded from: http://download.macromedia.com/pub/dw_exchange/extension_manager/mac/AdobeExtensionManager5All.dmg On Windows, set ADOBE_EXTENSION_MANAGER to the absolute path of "Adobe Extension Manager CS5.exe" On the Mac, set ADOBE_EXTENSION_MANAGER to the absolute path of "Adobe Extension Manager CS5.app" FlashPlayer Configuration ------------------------- For testing, the Flash Player's mm.cfg file must have the following entries ErrorReportingEnable=1 TraceOutputFileEnable=1 and a FlashPlayerTrust file must allow local SWFs to access local files. Software Dependencies --------------------- Apache Flex uses third-party code that will be downloaded as part of the Apache Flex build. In addition, there is some optional third-party code that you can choose to download if you would like to take advantage of the features offered and you agree to the license terms. 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. batik - http://archive.apache.org/dist/xmlgraphics/batik/batik-1.6.zip commons-collections - http://archive.apache.org/dist/commons/collections/binaries/commons-collections-3.0.tar.gz commons-discovery - http://archive.apache.org/dist/commons/discovery/binaries/commons-discovery-0.2.tar.gz commons-logging - http://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.0.4.tar.gz javacc - http://java.net/projects/javacc/downloads/download/javacc-5.0.tar.gz saxon9 - http://sourceforge.net/projects/saxon/files/Saxon-B/9.1.0.8/saxonb9-1-0-8j.zip/download velocity - http://archive.apache.org/dist/velocity/engine/1.4/velocity-1.4.tar.gz xalan - http://archive.apache.org/dist/xml/xalan-j/binaries/xalan-j_2_6_0-bin.tar.gz xerces - http://archive.apache.org/dist/xerces/j/Xerces-J-bin.2.9.1.zip The following dependencies have licenses which considers reciprocal licenses so you will be prompted to acknowledge the license before the software is downloaded to your system. These files are installed in frameworks/libs. osmf.swc frameworks/libs Open Source Media Framework v1.0 used for video components This file is extracted from: http://sourceforge.net/projects/osmf.adobe/files/OSMF%201.0%20%28final%20source%2C%20ASDocs%2C%20PDF%20guides%2C%20and%20release%20notes%29/OSMF_1.0.zip/download This software is released under the Mozilla Public License Version 1.1: <http://www.mozilla.org/MPL/> textLayout.swc framework/libs Text Layout Format v2.0 used for text in Spark components This file is extracted from: http://sourceforge.net/projects/tlf.adobe/files/2.0/232/textLayout_build.zip/download This software is released under the Mozilla Public License Version 1.1: <http://www.mozilla.org/MPL/> The following dependencies have licenses which Apache considers to be not compatible with the Apache License Version 2.0. You will be prompted to read and agree to the license terms of the dependency before the software can be downloaded to your system. These are optional components which enable additional features. They are installed in libs/external/optional. flex-messaging-common.jar Provides integration with Adobe BlazeDs. This files are extracted from: http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.6/flex_sdk_4.6.0.23201B.zip This software is released under an Adobe license: <http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf> flex-fontkit.jar afe.jar, adt.jar aglj40.jar rideau.jar Adobe proprietary software which provides embedded font support. These jars are extracted from: http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.6/flex_sdk_4.6.0.23201B.zip This software is released under an Adobe license: <http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf> Using the Binary Distribution ----------------------------- You must download the thirdparty dependencies. When you have all the prerequisites in place and the environment variables set, (see Install Prerequisites above), use cd <flex.dir>/frameworks ant thirdparty-downloads Building the Framework in a Binary Distribution ----------------------------------------------- The source for most of the framework is included in the binary distribution. It can be useful if you wish to debug and/or extend components. When you have all the prerequisites in place and the environment variables set, (see Install Prerequisites above), use cd <flex.dir>/frameworks ant main (or just ant since the default target is main) to download the thirdparty dependencies and build the Flex framework. You may be prompted to acknowledge some of the downloads. 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 super-clean (which is just thirdparty-clean followed by clean) Building the Source in the Source Distribution ---------------------------------------------- The source for both the Flex compiler and the Flex framework is included in the source distribution. The compiler is in the modules directory and the framework is in the frameworks directory. When you have all the prerequisites in place and the environment variables set (see Install Prerequisites above), use cd <flex.dir> ant main (or just ant since the default target is main) to download the thirdparty dependencies and build the source. You may be prompted to acknowledge and/or confirm some of the downloads. 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 super-clean (which is just thirdparty-clean followed by clean) To generate a source distribution package and a binary distribution package use ant -Dbuild.number=<last svn rev> -Dbuild.noprompt= release The packages can be found in the "out" subdirectory. To build the ASDoc package ant asdoc-package To get a brief listing of all the targets type ant -projecthelp Thanks for using Apache Flex. The Apache Flex Project <http://incubator.apache.org/flex/>