Building WebDSL on Linux (developers)
We use the following subversion repository: https://svn.strategoxt.org/repos/WebDSL/webdsls/trunk
Install automake, autoconf, libtool and pkg-config from your favorite package manager. GNU Automake 1.10.2 and GNU Autoconf 2.63 do the job in Ubuntu.
Install Nix (described here) and use it to retrieve
nix-channel --add http://hydra.nixos.org/jobset/strategoxt/strategoxt-packages/channel/latest
nix-channel --update
nix-env -i aterm sdf2-bundle strategoxt java-front strc-java
Note: do not install automake and autoconf using nix, these packages are currently not supported. Instead, install them using your operating system's package manager (e.g., 'sudo apt-get install automake autoconf build-essential' on Debian/Ubuntu-based distributions).
Now add the nix library path to your library search path by adding the following line to your ~/.bashrc or ~/.profile:
export PKG_CONFIG_PATH=~/.nix-profile/lib/pkgconfig
If all the dependencies all successfully installed, you should be able to build WebDSL as follows:
svn co https://svn.strategoxt.org/repos/WebDSL/webdsls/trunk/
cd trunk
./bootstrap
./configure --prefix=/<path where you want to install webdsl>
make
make install
ldconfig
The last two lines should be executed as root, or with sudo.
Troubleshooting
If you forgot to run ldconfig, the dynamic linker will present the following message:
Removing servlet project files and dist directory.
Loading application settings (application.ini)...
Creating Java Servlet application in .servletapp...
Copying your application files...
Building application...
/usr/local/bin/webdslc --servlet -i test.app
/usr/local/bin/webdslc: error while loading shared libraries: libwebdsl-front.so.0: cannot open shared object file: No such file or directory
make: *** [test.appc] Error 127
On some (64-bit?) systems the default stack size of Linux is too small for successful compilation. In this case, segmentation faults will appear during the Stratego compilation. The following command enables unlimited stack size for processes:
ulimit -s unlimited
