#
# Makefile for error-table routines
#
# Copyright 1987, 1989 MIT Student Information Processing Board
# For copyright info, see mit-sipb-cr.h.

srcdir=@srcdir@
include @TOP_OBJDIR@/src/config/Makefile.config
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@

all: compile_et ${TOP_INCDIR}/afs/com_err.h ${TOP_INCDIR}/afs/error_table.h ${TOP_INCDIR}/afs/mit-sipb-cr.h ${TOP_LIBDIR}/libcom_err.a

buildtools: compile_et

${TOP_INCDIR}/afs/com_err.h: com_err.h
	${INSTALL_DATA} $? $@

${TOP_INCDIR}/afs/error_table.h: error_table.h
	${INSTALL_DATA} $? $@

${TOP_INCDIR}/afs/mit-sipb-cr.h: mit-sipb-cr.h
	${INSTALL_DATA} $? $@

${TOP_LIBDIR}/libcom_err.a: libcom_err.a
	${INSTALL_DATA} $? $@

et_lex.lex.c: et_lex.lex.l
	$(RM) -f et_lex.lex.c
	$(LEX) -t $(srcdir)/et_lex.lex.l > et_lex.lex.c

compile_et:	compile_et.o error_table.o
	case $(SYS_NAME) in \
	*_linux* | *_umlinux* ) \
	${CC} ${CFLAGS} -o compile_et compile_et.o error_table.o -L${TOP_LIBDIR} -lafsutil;; \
	* ) \
	${CC} ${CFLAGS} -o compile_et compile_et.o error_table.o -L${TOP_LIBDIR} -lafsutil -ll;; \
	esac

libcom_err.a: error_msg.o et_name.o com_err.o AFS_component_version_number.o
	$(RM) -f $@
	$(AR) crv $@ error_msg.o et_name.o com_err.o AFS_component_version_number.o
	$(RANLIB) $@

#
# When we build this file, we're using a .c file that's in the object directory,
# so we need to add the source directory to the includes to pick up local headers.
#
error_table.o: error_table.c
	$(CC) $(CFLAGS) -I${srcdir} @CFLAGS_NOUNUSED@ -c $<

#
# Installation targets
#
install: compile_et com_err.h error_table.h mit-sipb-cr.h libcom_err.a
	${INSTALL} -d ${DESTDIR}${bindir}
	${INSTALL} -d ${DESTDIR}${includedir}/afs
	${INSTALL} -d ${DESTDIR}${libdir}/afs
	${INSTALL_PROGRAM} compile_et ${DESTDIR}${bindir}/afs_compile_et
	${INSTALL_DATA} com_err.h ${DESTDIR}${includedir}/afs/com_err.h
	${INSTALL_DATA} error_table.h ${DESTDIR}${includedir}/afs/error_table.h
	${INSTALL_DATA} mit-sipb-cr.h ${DESTDIR}${includedir}/afs/mit-sipb-cr.h
	${INSTALL_DATA} libcom_err.a ${DESTDIR}${libdir}/afs/libcom_err.a

dest: compile_et com_err.h error_table.h mit-sipb-cr.h libcom_err.a
	${INSTALL} -d ${DEST}/bin
	${INSTALL} -d ${DEST}/include/afs
	${INSTALL} -d ${DEST}/lib/afs
	${INSTALL_PROGRAM} compile_et ${DEST}/bin/afs_compile_et
	${INSTALL_DATA} com_err.h ${DEST}/include/afs/com_err.h
	${INSTALL_DATA} error_table.h ${DEST}/include/afs/error_table.h
	${INSTALL_DATA} mit-sipb-cr.h ${DEST}/include/afs/mit-sipb-cr.h
	${INSTALL_DATA} libcom_err.a ${DEST}/lib/afs/libcom_err.a

clean:
	$(RM) -f *~ \#* *.bak *.otl *.aux *.toc *.PS *.dvi *.x9700 *.ps \
		*.cp *.fn *.ky *.log *.pg *.tp *.vr *.o libcom_err.a \
		com_err.o compile_et et.ar TAGS y.tab.c lex.yy.c error_table.c \
		et_lex.lex.c test1.h test1.c test2.h test2.c \
		eddep makedep core AFS_component_version_number.c

test:
	cd test; $(MAKE)

compile_et.o:  AFS_component_version_number.c
error_table.o: et_lex.lex.c

include ../config/Makefile.version
