# Module specific stuff
UTIL_VERSION = .17
UTIL_NAME = libbsql.so

# Bastard stuff
ifndef CC
CC      = gcc
endif
ifndef AR
AR      = ar
endif
ifndef MAKE
MAKE    = make
endif
ifndef RM
RM      = rm -rf
endif
ifndef CP
CP      = cp -r
endif
ifndef LN
LN      = ln -sf
endif
ifndef MKDIR
MKDIR   = mkdir -p
endif
ifndef TERM
#TERM    = -lcurses
TERM    = -lncurses
endif
ifndef LIBDL
LIBDL   = -ldl
endif
LEX     = lex
YACC    = yacc

ifndef TOP
TOP = ../..
INSTALL_LIB = $(TOP)/lib
endif


# --------------------------------------
SRCS = bsql_lexer.c	\
	bsql_parser.c	\
	db_bsql.c		\
	db_bsqltbl.c	\
	db_bsqltree.c	\
	db_bsqlval.c

OBJS = bsql_lexer.o	\
	bsql_parser.o	\
	db_bsql.o		\
	db_bsqltbl.o	\
	db_bsqltree.o	\
	db_bsqlval.o

DEFINES  = -I$(TOP)/include -I. 
CFLAGS   = -ggdb -rdynamic $(DEFINES) -DUTIL_VERSION=$(UTIL_VERSION)
LIBS     = -lc $(LIBDL) -lbastard
LDFLAGS  = -L$(TOP)/lib $(LIBS)  


# --------------------------------------
all: 	$(UTIL_NAME)

install:  $(UTIL_NAME)
	$(CP) $(UTIL_NAME) $(INSTALL_LIB)/$(UTIL_NAME)

uninstall: 
	$(RM) $(INSTALL_LIB)/$(UTIL_NAME)

clean: 
	$(RM) $(OBJS) $(MODNAME)
	$(RM) bsql_lexer.c bsql_parser.c

# --------------------------------------
$(UTIL_NAME): $(OBJS) 
	$(CC) $(LDFLAGS) -o $@ $^

bsql_lexer.c: bsql_parser.c
	$(LEX) -obsql_lexer.c bsql.l

bsql_parser.c: 
	$(YACC) -d -o bsql_parser.c bsql.y
	# creates bsql_parser.h

.c.o: $(SRCS)
	$(CC) $(CFLAGS) -o $@ -c $<

#test: $(UTIL_NAME)
#	$(CC) $(CFLAGS) -L. $(LDFLAGS) -lbsql -o test test.c
