#
# Makefile to create the Ipcs database
# 

EXTRACT_HELP=/usr/local/astium/setup/db/scripts/extract-help
ifeq ($(DB),sqlite)
	DBCMD=grep -v ^GRANT | sqlite3 astium.db
else
	DBCMD=psql --variable ON_ERROR_STOP=yes -q -U astium -d astium
endif

all: ipcs.created

IPCS_TABLES=cb_cloud cb_interface_cloudnode cb_node cb_phys_interface cb_provisioning_client

IPCS_DATA=astglobals cb_cloud cb_interface_cloudnode cb_node cb_phys_interface cb_provisioning_client

IPCS_TRIGGERS=""

ipcs.created: $(IPCS_TABLES:%=%.table.created) $(IPCS_DATA:%=%.data.created) ipcs.help
ifneq ($(DB),sqlite)
	cat foreign.keys | $(DBCMD) 
	cat ipcs.functions | $(DBCMD)
	cat ipcs.triggers | $(DBCMD)
endif
	cat ipcs.views | $(DBCMD)
	touch ipcs.created

ipcs.help: $(IPCS_TABLES:%=%.table.help)

%.table.created: %.table
	cat $< | $(DBCMD)
	touch $<.created

%.table.help: %.table
	$(EXTRACT_HELP) $(PWD)/$< | $(DBCMD) 
	touch $<.help

%.triggers.created: %.triggers
	cat $< | $(DBCMD) 
	touch $<.created

%.data.created: %.data
	cat $< | $(DBCMD)
	touch $<.created

%.table: %.table.m4
	m4 < $< > $@

clean:	
	rm -f *.created
