User Tools

Site Tools


doc:dev_blockly

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
doc:dev_blockly [2014/11/01 18:59]
admin
doc:dev_blockly [2015/01/03 18:30]
admin
Line 2: Line 2:
  
  
-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+This is more a installation scrapbook from 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) 
  
-Install ​your own llvm versionas the original ubuntu ​version ​is not build with javascript support+===== 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 
  
-svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm , following http://​llvm.org/​docs/​GettingStarted.html#setting-up-your-environment+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
doc/dev_blockly.txt · Last modified: 2015/01/04 15:09 by admin