sql_DATA := \
  versioning.sql \
  exchange-0001.sql \
  exchange-0002.sql \
  exchange-0003.sql \
  exchange-0004.sql \
  exchange-0005.sql \
  procedures.sql

sql_INIT := init.sql

procedures.sql: procedures.sql.in exchange_do_*.sql exchange_statistics_*.sql exchange_trigger_*.sql
	chmod +w $@ 2> /dev/null || true
	gcc -E -P -undef - < procedures.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
	chmod ugo-w $@

exchange-0002.sql: exchange-0002.sql.in 0002-*.sql
	chmod +w $@ 2> /dev/null || true
	gcc -E -P -undef - < exchange-0002.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
	chmod ugo-w $@

exchange-0003.sql: exchange-0003.sql.in 0003-*.sql
	chmod +w $@ 2> /dev/null || true
	gcc -E -P -undef - < exchange-0003.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
	chmod ugo-w $@

exchange-0004.sql: exchange-0004.sql.in 0004-*.sql
	chmod +w $@ 2> /dev/null || true
	gcc -E -P -undef - < exchange-0004.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
	chmod ugo-w $@

gen_sql: procedures.sql exchange-0002.sql exchange-0003.sql exchange-0004.sql

.DEFAULT_GOAL := gen_init
gen_init: gen_sql $(sql_DATA)
	@printf "" > $(sql_INIT)
	@cat $(sql_DATA) >> $(sql_INIT)

clean:
	rm -f procedures.sql
	rm -f exchange-0002.sql
	rm -f exchange-0003.sql
	rm -f exchange-0004.sql
	rm $(sql_INIT)

exec: gen_init
	psql --host=localhost --port=5432 --username=mte --password --dbname="taler-exchange" --file=$(sql_INIT)

create_database:
	createdb --host=localhost --port=5432 --username=mte --password "taler-exchange"

drop_database:
	dropdb --host=localhost --port=5432 --username=mte --password "taler-exchange"

reset_database: drop_database create_database
