Perhaps title it "OpenLaszlo Developer Hints" and link to it from "Subversion Build Instructions"
Begin forwarded message: > From: Max Carlson <[email protected]> > Date: 15 December 2010 12:04:52.000 EST > To: OpenLaszlo development list <[email protected]> > Subject: [Diamond] How to rebuild the LFC and HTML .js includes > > I often find myself making experimental changes to the LFC (Laszlo Foundation > Classes) which are included with each application. Fred Feng reminded me to > write a quick FAQ that describes how the LFC and other includes are built. > > First, set up your OpenLaszlo build environment. See > http://wiki.openlaszlo.org/SubversionBuildInstructions for details. > > > =LFC overview= > All LFC source files are found in 'WEB-INF/lps/lfc/'. Once compiled for the > various runtimes, the LFC binary files are found in 'lps/includes/lfc/', e.g. > 'lps/includes/lfc/LFCdhtml.js'. > > All the default base classes for OpenLaszlo can be found here. There are > several file types: > > .lzs - Javascript with OpenLaszlo compiler extensions, e.g. to include files > see '#include "compiler/Library.lzs"' in LaszloLibrary.lzs. Used for > portions of the LFC that aren't runtime specific, e.g. everything not in > kernel/*. > > .js - JavaScript. Used for HTML5-specific code, e.g. kernel/dhtml/* > > .as - Actionscript. Used for Flash-specific code, e.g. kernel/swf9/* > > The compiler treats all files the same way. We use .as and .js to designate > code that uses runtime-specific features. If you find a bug that only > happens in a specific runtime, see the appropriate kernel directory. If the > bug happens across runtimes, check outside the kernel directory. > > =Rebuilding the LFC= > Once the LFC is rebuilt, you can refresh your application and see the changes > immediately. There's no need to restart the OpenLaszlo server but be sure to > clear your browser cache. > > Before rebuilding the LFC, 'cd' to 'WEB-INF/lps/lfc/'. Use 'ant build' to > rebuild all versions of the LFC and 'ant clean' to force a clean build. > > To rebuild the LFC for a specific runtime, you use one of the 'buildlfc' > commands found in 'WEB-INF/lps/lfc/', either 'buildlfc', 'buildlfcdebug', > 'buildlfcprofile' or 'buildlfcbacktrace'. > > > ==Example LFC Build== > For example, to rebuild the non-debug HTML5 LFC, type: > $ cd WEB-INF/lps/lfc/ > $ ./buildlfc --runtime=dhtml > Buildfile: /Users/maxcarlson/openlaszlo/trunk-clean/WEB-INF/lps/lfc/build.xml > [echo] build.url is ${build.url} > [echo] dont-need-svn-info is ${dont-need-svn-info} > > get-env: > > get-svn-info: > > read-svn-info: > > build-version-info: > [echo] version.id computed from > /Users/maxcarlson/openlaszlo/trunk-clean/versions.xml as 5.0.x > [echo] release computed from > /Users/maxcarlson/openlaszlo/trunk-clean/versions.xml as Latest > > build-opt: > > init: > > lfc: > [echo] build.url is http://svn.openlaszlo.org/openlaszlo/trunk > [echo] dont-need-svn-info is true > > get-env: > > get-svn-info: > > read-svn-info: > > build-version-info: > > build-opt: > > init: > > lzl: > [echo] Compiling > /Users/maxcarlson/openlaszlo/trunk-clean/lps/includes/lfc/LFCdhtml.js > > BUILD SUCCESSFUL > Total time: 6 seconds > > > ==Shortcuts to rebuild the LFC== > Here's a list of aliases I use to rebuild common LFC variants, straight from > my ~/.profile: > > alias bd='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfc --runtime=dhtml; popd;' > alias bdd='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfcdebug --runtime=dhtml; > popd;' > alias bdp='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfcprofile > --runtime=dhtml; popd;' > alias bdb='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfcbacktrace > --runtime=dhtml; popd;' > alias bs='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfc --runtime=swf10; popd;' > alias bsd='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfcdebug --runtime=swf10; > popd;' > alias bsb='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfcbacktrace > --runtime=swf10; popd;' > alias bsp='pushd $LPS_HOME/WEB-INF/lps/lfc/; ./buildlfcprofile > --runtime=swf10; popd;' > > These are nice because you can run them from any directory without losing > your place. > > > =HTML Javascript Includes= > Besides the LFC, there are Javascript includes that are used to embed > applications in HTML, e.g. 'lps/includes/embednew.js'. The source for these > files can be found in 'lps/includes/source/'. Use 'ant build' to rebuild any > changes and 'ant clean' to force a clean build. > > Like the LFC, once the includes are rebuilt, you can refresh your application > and see the changes immediately. There's no need to restart the OpenLaszlo > server but be sure to clear your browser cache. > > > ==Example Javascript include build== > $ cd lps/includes/source/ > $ ant build > Buildfile: > /Users/maxcarlson/openlaszlo/trunk-clean/lps/includes/source/build.xml > [echo] build.url is ${build.url} > [echo] dont-need-svn-info is ${dont-need-svn-info} > > get-env: > > get-svn-info: > > read-svn-info: > > build-version-info: > [echo] version.id computed from > /Users/maxcarlson/openlaszlo/trunk-clean/versions.xml as 5.0.x > [echo] release computed from > /Users/maxcarlson/openlaszlo/trunk-clean/versions.xml as Latest > > build-opt: > > init: > > embed: > [echo] build.url is http://svn.openlaszlo.org/openlaszlo/trunk > [echo] dont-need-svn-info is true > > get-env: > > get-svn-info: > > read-svn-info: > > build-version-info: > > build-opt: > > init: > > compress: > [echo] Compiling ../embed-compressed.js > > ... > > BUILD SUCCESSFUL > Total time: 14 seconds > > > ==Shortcuts to rebuild the LFC== > Here's the alias I use to rebuild my Javascript includes: > > alias ci='pushd $LPS_HOME/lps/includes/source;ant; popd;' > > > > > Let me know if you have questions or I missed anything. We can move this up > to the wiki after a brief discussion. Thanks! > _______________________________________________ > Diamond mailing list > [email protected] > https://hedwig.laszlosystems.com/mailman/listinfo/diamond
