Table of Contents

How to set up Blockly

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 :-)

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