User Tools

Site Tools


doc:dev_blockly

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:dev_blockly [2014/11/01 13:42] – created admindoc:dev_blockly [2015/01/04 15:09] (current) admin
Line 1: Line 1:
-*How to set up Blockly*+====== How to set up Blockly ======
  
-This is more a maintaince handbook for the OOBD team themself as anything the normal developer need to be worried about, so just forget this page 
  
-Download the [[http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html#sdk-downloads|emscripten- Package]] and install in ~/bin by following the instructions. Make sure to install the other listed programs (cmake,nodejs,..)  first (clang and llvm is not listed as needed,please install this too)+This is more a installation scrapbook from the OOBD team themself as anything the normal developer need to be worried aboutso just forget this page :-)
  
-Install your own llvm version, as the original ubuntu version is not build with javascript support 
  
-svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm+===== Install emscripten ===== 
 +The package under Ubuntu 14.04 is too old (1.10), but we'll need 1.12.1 to have the fastcomp compiler active. The older version generates a 'undefined setjmp()' error 
  
 +So download the [[http://kripken.github.io/emscripten-site/docs/building_from_source/building_emscripten_from_source_using_the_sdk.html#building-emscripten-from-source-using-the-sdk|actual SDK]] and build it locally. 
 +  
 +===== Compile Luac as javascript binary =====
 +
 +Download the actual lua archive (http://www.lua.org/ftp/). Keep in mind that OOBD (actual) still uses the older lua 5.1 system. Unpack the archive and do some modifications in the make files:
 +
 +
 +in main Makefile, add a new target (emcc):
 +
 +  # Convenience platforms targets.
 +  PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris emcc
 +
 +  
 +In scr/Makefile
 +
 +replace the gcc compiler against emcc
 +
 +  CC= emcc
 +  
 +make a note of the compiler flags, which are used (e.g. ''-O2 -Wall''), as they are used again later.
 +
 +Make sure **not** to use the -DLUA_USE_POSIX directive, because it makes the compiler to use  _setjmp/_longjmp instead a "normal" setjmp/longjmp, which fails later when you run the .js result....
 +
 +  
 +comment the LIBS directive, as it seems not to be used and creates a warning
 +
 +  # LIBS= -lm $(MYLIBS)
 +
 +
 +creates a new target with only luac, but without lua itself
 +
 +  ALL_C= $(LUA_A) $(LUAC_T)
 +  comp:   $(ALL_C)
 +
 +Add the new defined target as emcc build target
 +        
 +  emcc:
 +        $(MAKE) comp MYCFLAGS=
 +
 +
 +Start the build process 
 +
 +  emmake make emcc
 +  
 +change into the source dir
 +  cd src/
 +  
 +build luac.js
 +
 +  emcc -O2 -Wall  -o luac.js  luac.o print.o liblua.a
 +
 +
 +test it
 +  nodejs luac.js
 +  
 +build html wrapper
 +
 +  emcc -o luac.html  luac.o print.o liblua.a
 +
 +and load it via local webserver (''php -S localhost:8000'') into browser for testing
 +
 +
 +===== Create own blockly Content =====
 +
 +  cp blockly_compressed.js blockly_uncompressed.js lua_compressed.js ../web/blockly/
  
doc/dev_blockly.txt · Last modified: 2015/01/04 15:09 by admin