######################################################################### 
#									# 
#   File: scorpion/src/xref/frontend/Makefile 
#				 					# 
#   Copyright (C) 1991 Dean Throop
#									# 
#   The Scorpion System is free software in the public domain; you can  # 
#   redistribute it and/or modify it as you wish. We ask that you 	# 
#   retain credits referencing the University of Arizona and that you	# 
#   identify any changes you make.					# 
#									# 
#   Report problems to scorpion-project@cs.arizona.edu			# 
#   Direct all inquiries to:	The Scorpion Project			# 
#				Department of Computer Science		# 
#				Gould-Simpson Building			# 
#				University of Arizona			# 
#				Tucson, AZ 85721			# 
#				U.S.A.					# 
#									# 
#   Revision Log:							# 
#	$Log:$ 
#									# 
#   Edit Log:								# 
#									# 
######################################################################### 

# IMPORTED VARIABLES
SHELL=/bin/sh
BINDIR=/usr/local/scorpion/bin
INCDIR=/usr/local/scorpion/include
SPECSDIR=/usr/local/scorpion/src/specs
LIBDIR=/usr/local/scorpion/lib
CC=cc
IDLC=$(BINDIR)/idlc
PC=pc
CFLAGS=-I$(INCDIR)
IDLCFLAGS=-v
PFLAGS=
CP=cp
MV=mv
SED=sed
RM=rm -f
LEX=lex
MAKE=make
YACC=yacc

LINT=/usr/bin/lint
LINTINC=-I$(INCDIR)
LINTFLAGS=-abx

CI=ci
CO=co -l
INSTALL=install

# LOCAL VARIABLES
CANDIR=$(SPECSDIR)/Candle
IDLCFLAGSLOC=-I$(SPECSDIR) -nc -h -k
LIB=$(LIBDIR)/libidl.a
LINTLIB=$(LIBDIR)/lintlib/llib-llibidl.ln
LINTSRC=frontend.c main.c yacc_parser.c lex_lexer.c

#######################################################################

System: IDLxrefFrontend

IDLxrefFrontend: main.c lex_lexer.o yacc_parser.o frontend.o frontend.h
	$(CC) $(CFLAGS) -o IDLxrefFrontend main.c lex_lexer.o yacc_parser.o frontend.o $(LIB)

frontend.h: frontend.idl ${SPECSDIR}/xrefst.idl
	$(IDLC) ${IDLCFLAGS} $(IDLCFLAGSLOC) frontend.idl

yacc_parser.h yacc_parser.c: parser.y
	$(YACC) -d parser.y
	$(MV) y.tab.h yacc_parser.h
	$(SED) -f yacc.script < y.tab.c > yacc_parser.c
	$(RM) y.tab.c

lex_lexer.c: lexer.l
	$(LEX) lexer.l
	$(SED) -f yacc.script < lex.yy.c > lex_lexer.c
	$(RM) lex.yy.c

lexer_test: lexer_test.c xref_lexer.c
	$(CC) ${CFLAGS} lexer_test lexer_test.c

.c.o:
	$(CC) -c $(CFLAGS) $*.c

frontend.o : frontend.c frontend.h 
lex_lexer.o : lex_lexer.c frontend.h yacc_parser.h 
lexer_test.o : lexer_test.c xref_lexer.c 
main.o : main.c frontend.h 
yacc_parser.o : yacc_parser.c frontend.h

Install:
	$(RM) $(LIBDEST)/IDLxrefFrontend
	$(INSTALL) IDLxrefFrontend ${LIBDEST}

Clean:
	$(RM) y.tab.* lex.yy.c *.o a.out core *.Cdl *.list

Ci:
	$(CI) frontend.idl lexer.l lexer_test.c main.c yacc_parser.y

Co:
	$(CO) frontend.idl lexer.l lexer_test.c main.c parser.y

DelSrc:
	$(RM) *.c *.h *.idl *.l *.y

Lint:
	$(LINT) $(LINTFLAGS) $(LINTINC) $(LINTLIB) $(LINTSRC)
