######################################################################### 
#									# 
#   File: scorpion/src/candlewalk/Makefile 
#				 					# 
#   Copyright (C) 1991 Karen Shannon
#									# 
#   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:								# 
#     (shannon) Created.					# 
#									# 
######################################################################### 

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

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

UTILITYVARS='CC=$(CC)' 'IDLC=$(IDLC)' 'PC=$(PC)' 'CFLAGS=$(CFLAGS)' \
	      'IDLCFLAGS=$(IDLCFLAGS)' 'PFLAGS=$(PFLAGS)' 'CP=$(CP)' \
	      'MV=$(MV)' 'RM=$(RM)' 'LEX=$(LEX)' 'MAKE=$(MAKE)' \
	      'YACC=$(YACC)'
CI=ci
CO=co -l
INSTALL=install

# LOCAL VARIABLES
SPECSDIR=$(SRCDIR)/specs
LINTLIB=$(LIBDIR)/lintlib/llib-llibidl.ln
LIB=$(LIBDIR)/libidl.a
CANDIR=$(SPECSDIR)/Candle
IDLCFLAGSLOC=-I$(CANDIR) -nc -k -h

SRC=main.c ProcessCompUnit.c TexIdlTabs.c TexIdlComm.c CheckIdlKeyWord.c \
	firsdex.c rm1char.c PrintTexString.c FormatString.c \
	rmlastchar.c
OBJ=main.o ProcessCompUnit.o TexIdlTabs.o TexIdlComm.o CheckIdlKeyWord.o \
	firsdex.o rm1char.o PrintTexString.o FormatString.o \
	rmlastchar.o candlewalk.o
IDLFILES=candlewalk.idl ${CANDIR}/CandlePos.idl $(CANDIR)/UNCCandlePos.idl \
		${CANDIR}/Candle.idl ${CANDIR}/UNCCandle.idl\
		${CANDIR}/CandleRep.idl ${CANDIR}/CandleSemantic.idl \
		${CANDIR}/CandleSyntax.idl
LINTSRC=$(SRC) candlewalk.c

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

System: candlewalk

candlewalk: ${OBJ} ${LIB}
	cc ${CFLAGS} -o candlewalk ${OBJ} ${LIB}

candlewalk.h: ${IDLFILES}
	$(IDLC) $(IDLCFLAGS) $(IDLCFLAGSLOC) candlewalk.idl

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

CheckIdlKeyWord.o : CheckIdlKeyWord.c 
FormatString.o : FormatString.c candlewalk.h 
PrintTexString.o : PrintTexString.c candlewalk.h 
ProcessCompUnit.o : ProcessCompUnit.c candlewalk.h 
TexIdlComm.o : TexIdlComm.c candlewalk.h 
TexIdlTabs.o : TexIdlTabs.c candlewalk.h 
candlewalk.o : candlewalk.c candlewalk.h 
	if (test "$(MACHINE)" = "sparc") then \
		$(CC) -c $(NO_CFLAGS) $*.c; \
	else \
		$(CC) -c $(CFLAGS) $*.c; \
	fi

firsdex.o : firsdex.c 
fix.o : fix.c candlewalk.h 
main.o : main.c candlewalk.h 
rm1char.o : rm1char.c 
rmlastchar.o : rmlastchar.c 

Checkout:
	$(RM) test/candlewalktest.out2
	make 'SRCDIR=$(SRCDIR)' 'SPECSDIR=$(SPECSDIR)' 'BINDIR=$(BINDIR)' Checkout1
	$(BINDIR)/candlewalk -FP - <$(SRCDIR)/idlc/test/test.Cdl >test/candlewalktest.out2
	sh -c 'cmp -s test/candlewalktest.out1 test/candlewalktest.out2 &&(echo "files candlewalktest.out1 candlewalktest.out2 agree"; echo "candlewalk Passed Installation Check") || (echo "*** candlewalk Failed Installation Check") '

Checkout1:
	cd $(SRCDIR)/idlc/test;make -s 'SPECSDIR=$(SPECSDIR)' 'BINDIR=$(BINDIR)' test.Cdl

Clean:
	$(RM) *.o a.out core *.Cdl *.list

Install:
	$(RM) $(BINDEST)/candlewalk
	$(INSTALL) candlewalk ${BINDEST}

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

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