include ../Makefile.global

MODULES = 
ALLDEP = .ec_info
BIN = gtest #test
CFLAGS = ${CCFLAGS} ${DCFLAGS} ${BCFLAGS}
LFLAGS = ${CLFLAGS} ${DLFLAGS} ${BLFLAGS}

# Miscellaneous section
all: c o ${BIN} recipe.sql
clean:
	rm -rf c o; rm -f tags core tables/* ${BIN} x
tags: *.esql
	sqltags *.esql

c:
	mkdir c
o:
	mkdir o

test: gtest
	./gtest

ttest: o/main.o ${MODULES}
	${CC} -o ttest o/main.o ${MODULES} ../isdk/isdk.o ../api/gapi/tapi.o ../browse/ipcbrowse/ipcbrowse.o ../kernel/kernel.o ${TLFLAGS} ${LFLAGS}
gtest: o/main.o ${MODULES}
	${CC} -o gtest o/main.o ${MODULES} ../isdk/isdk.o ../api/gapi/gapi.o ../browse/ipcbrowse/ipcbrowse.o ../kernel/kernel.o ${GLFLAGS} ${LFLAGS}

.ec_info: *.fml
	${ECPP} -g -o .ec_info *.fml
o/main.o: main.ec ${ALLDEP} c/modules.h
	${ECPP} -c .ec_info -o c/main.c main.ec
	${CC} ${CCFLAGS} -c -o o/main.o c/main.c
recipe.sql: recipe.esql
	../bin/esqlpp recipe.esql >recipe.sql || (rm recipe.sql && false)

c/modules.h: ${MODULES}
	ls *.ec |perl -e 'print "/*\n * This file was generated automatically, don'\''t edit!!\n */\n\n#ifndef _MODULES_H\n#define _MODULES_H\n\n"; while(<>){$$_=~s/^(\w+)\.ec$$/void ec_\1_init();/o; print;}print "\n#endif\n";' >c/modules.h
