all: perl-bindings ruby-bindings python-bindings lua-bindings
all-multi: perl-bindings-multi ruby-bindings-multi python-bindings-multi lua-bindings-multi

perl-bindings:
	swig -Wall -perl -outdir perl -c++ opal.i
	ln -sf ../../src/timer.cc perl
	mv -f opal_wrap.cxx perl

python-bindings: 
	swig -Wall -python -builtin -outdir python -c++ opal.i
	mv -f opal_wrap.cxx python


ruby-bindings:
	swig -Wall -ruby -c++ -outdir ruby opal.i
	ln -sf ../../src/timer.cc ruby
	mv -f opal_wrap.cxx ruby/opal_wrap.cpp

lua-bindings:
	swig -Wall -lua -c++ -outdir lua opal.i
	ln -sf ../../src/timer.cc lua
	mv -f opal_wrap.cxx lua/opal_wrap.cc

perl-bindings-multi:
	swig -Wall -DUSE_MULTICLASS -perl -outdir perl -c++ opal.i
	ln -sf ../../src/timer.cc perl
	mv -f opal_wrap.cxx perl

python-bindings-multi: 
	swig -Wall -DUSE_MULTICLASS -python -builtin -outdir python -c++ opal.i
	mv -f opal_wrap.cxx python

ruby-bindings-multi:
	swig -Wall -DUSE_MULTICLASS -ruby -c++ -outdir ruby opal.i
	ln -sf ../../src/timer.cc ruby
	mv -f opal_wrap.cxx ruby/opal_wrap.cpp

lua-bindings-multi:
	swig -Wall -DUSE_MULTICLASS -lua -c++ -outdir lua opal.i
	ln -sf ../../src/timer.cc lua
	mv -f opal_wrap.cxx lua/opal_wrap.cc
