SRCDIR=../lib
#MGL_INSTALLED=y
include ../conf/config.mk
include ../conf/${OSTYPE}.mk

CFLAGS= -g -O -I${SRCDIR} ${INCS_MGL}
ifdef PATCH_YY_BUF_SIZE
CFLAGS+= -DYY_BUF_SIZE=256
endif
LDFLAGS= ${LIBS_MGL} 

SRCS = lex.yy.c mtostr.c nine.c
OBJS = ${SRCS:.c=.xo}


.SUFFIXES: .xo .po

.c.xo: 
	${CC} ${CFLAGS} ${MGLPIC_CFLAGS} -o $*.xo -c $*.c

.c.po: 
	${CC} ${CFLAGS} -o $*.po -p -c $*.c

ifdef GP_DYNAMIC
all: gpnine.so ninetraining
else
all:
endif

gesture.h: form.def genform.sh
	./genform.sh > gesture.h

lex.yy.c : pattern.l
	flex -l pattern.l
ifdef PATCH_YY_BUF_SIZE
	patch < lex.yy.patch
endif

pattern.l : form.def genform.sh genpattern.sh
	./genform.sh -l | \
	sed -e 's/\(return KEYCODE_[^;][^;]*;\)/YY_FLUSH_BUFFER ;\1/g' \
	 > pattern.txt
	./genpattern.sh > pattern.l

gpnine.so: ${OBJS}
	$(SHLIB_LD) $(SHLIB_LDFLAGS) -o gpnine.so ${OBJS} $(LDFLAGS)

match.o:gesture.h

ninetraining : match.o ninetraining.o mtostr.o
	$(CC) -o ninetraining ninetraining.o mtostr.o match.o $(LDFLAGS)


install:
ifdef GP_DYNAMIC
	${INSTALL} -c -s ${PRIV_BIN} gpnine.so ${MGLDIR}
	${INSTALL} -c -s ${PRIV_BIN} ninetraining ${MGL_BIN_DIR}
endif

clean:
	-rm -f *.o *.xo *.so lex.yy.c pattern.l gpnine.so ninetraining *.orig \
	pattern.txt gesture.h
