.SUFFIXES:  .beam .hrl .erl .html .ehtml .fig .gif .yrl .con .buc

.erl.beam: 
	erlc -W -o ../ebin $<

.con.buc: contracts.beam
	./conc $<

.yrl.erl:
	echo "yecc:yecc($*,$*), halt()." | erl -pa ../ebin 

ERL =   ubf proc_socket_server find server\
	test ubf_driver ubf_test file_client\
	contracts contract_manager client plugin_handler\
	leex contract_lex contract_yecc irc_client irc_client_gs ubf_utils\
	wijkwijzer_server wijkwijzer_web wijkwijzer_db

PLUGINS = test_plugin file_plugin irc_plugin server_plugin wijkwijzer_plugin

CONTRACTS = test_plugin file_plugin irc_plugin server_plugin wijkwijzer

BEAM = ${ERL:%=%.beam}
BUC = ${CONTRACTS:%=%.buc}
CON = ${CONTRACTS:%=%.con}
PLUG = ${PLUGINS:%=%.beam}

# make test (tests)
# make server (starts server)

all: ${BEAM} ${BUC} ${PLUG}

test: ${BEAM} ${BUC} ${PLUG}
	erl -noshell -pa ../ebin -s test tests

server: ${BEAM} ${BUC} ${PLUG}
	erl -noshell -pa ../ebin -s test ss


contract_lex.erl: contract.xrl contract_parser.beam leex.beam
	erl -noshell -pa ../ebin -s contract_parser make_lex -s erlang halt

contract_yecc.erl: contract.yrl contract_parser.beam 
	erl -noshell -pa ../ebin -s contract_parser make_yecc -s erlang halt

${PLUG}: contract_parser.beam contract_lex.beam contract_yecc.beam

clean:
	rm -f ${BEAM} ${BUC} ${PLUG} contract_lex.erl contract_yecc.erl
	rm -f contract_parser.beam erl_crash.dump

