#!/bin/sh

BASE=/u/g/release/Source
UTIL=${BASE}/src/utilities
SRC=${UTIL}/lexi

make_mf\
    +A BASE=${BASE}\
    +A UTIL=${UTIL}\
    +A SRC=${SRC}\
    +A SRCX=${UTIL}/shared\
    +W ...\
    +V 'EXTRA=auto'\
    -o .../lexi\
    -Yansi -Xs\
    -I ${SRC}\
    -I ${UTIL}/shared\
    ${SRC}/*.c\
    ${UTIL}/shared/*.c\
    > Makefile

cat >> Makefile << EOF

LEXI=lexi
SID=sid
SIDOPTS=-l ossg-c -s no-lines

SID_OUT=\${SRC}/syntax.c \${SRC}/syntax.h
LEXI_OUT=\${SRC}/lexer.h \${SRC}/keyword.h

auto : \${SID_OUT} \${LEXI_OUT}

\${SRC}/syntax.c : \${SRC}/syntax.sid \${SRC}/syntax.act
	@\${REMOVE} \${SID_OUT}
	\${SID} \${SIDOPTS} \${SRC}/syntax.sid \${SRC}/syntax.act \${SID_OUT}

\${SRC}/lexer.h : \${SRC}/lexer.lxi
	@\${REMOVE} \${SRC}/lexer.h
	\${LEXI} \${SRC}/lexer.lxi \${SRC}/lexer.h

\${SRC}/keyword.h : \${SRC}/lexer.lxi
	@\${REMOVE} \${SRC}/keyword.h
	\${LEXI} -k \${SRC}/lexer.lxi \${SRC}/keyword.h

auto_clobber :
	\${REMOVE} \${SID_OUT} \${LEXI_OUT}
EOF
