######################################################################### 
#									# 
#   File: scorpion/src/idlc/semantic/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:								# 
#     Jan 9 1985 (shannon) Created.					# 
#									# 
######################################################################### 

# IMPORTED VARIABLES
SHELL=/bin/sh
INCDIR=/usr/local/scorpion/include
BINDIR=/usr/local/scorpion/bin
LIBDIR=/usr/local/scorpion/lib
SPECSDIR=/usr/local/scorpion/src/specs

CC=cc
IDLC=$(BINDIR)/idlc
PC=pc
CFLAGS=-I$(INCDIR) -O
NO_CFLAGS=-I$(INCDIR)
IDLCFLAGS=-v
PFLAGS=
CP=cp
MV=mv
RM=rm -f
LEX=lex
MAKE=make
MACHINE=sparc
YACC=yacc

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

CI=ci
CO=co
INSTALL=

# LOCAL VARIABLES
CANDIR=$(SPECSDIR)/Candle
UNCCANDIR=../specs
LIB=$(LIBDIR)/libidl.a $(LIBDIR)/liberr.a
LINTLIB=$(LIBDIR)/lintlib/llib-llibidl.ln $(LIBDIR)/lintlib/llib-lliberr.ln
IDLCFLAGSLOC=-S -I$(CANDIR) -I$(SPECSDIR) -I$(UNCCANDIR) -h -k -nc
IDLFILES=Semantic.idl $(CANDIR)/CandleSyntax.idl \
	   $(CANDIR)/CandleSemantic.idl $(CANDIR)/CandleContext.idl \
	   $(CANDIR)/CandleRep.idl $(CANDIR)/Candle.idl \
	   $(UNCCANDIR)/UNCCandleSyntax.idl \
	   $(UNCCANDIR)/UNCCandleSemantic.idl $(UNCCANDIR)/UNCCandleRep.idl

SRC=analyze.c analyze2.c analyze3.c assert.c \
	class.c copy.c copyassert.c find.c \
	init.c main.c misc.c \
	prelude.c privates.c \
	sort.c type.c without.c import.c macros.h Semantic.idl

OBJ=analyze.o analyze2.o analyze3.o assert.o \
	class.o copy.o copyassert.o find.o \
	init.o main.o misc.o \
	prelude.o privates.o \
	sort.o type.o without.o import.o 

LINTSRC=analyze.c analyze2.c analyze3.c assert.c class.c copy.c \
	copyassert.c find.c init.c main.c misc.c prelude.c privates.c\
	sort.c type.c without.c import.c Semantic1.c Semantic2.c Semantic3.c

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

IDLsa:	$(OBJ) Semantic1.o Semantic2.o Semantic3.o $(LIB)
	$(CC) -o IDLsa $(CFLAGS) $(OBJ) Semantic1.o Semantic2.o Semantic3.o $(LIB)

System: IDLsa

Semantic.h : $(IDLFILES)
	$(IDLC) $(IDLCFLAGS) $(IDLCFLAGSLOC) Semantic.idl

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

Semantic1.o Semantic2.o Semantic3.o: 
	if (test "$(MACHINE)" = "sparc") then \
		$(CC) -c $(NO_CFLAGS) $*.c; \
	else \
		$(CC) -c $(CFLAGS) $*.c; \
	fi

Semantic1.o : Semantic1.c Semantic.h 
Semantic2.o : Semantic2.c Semantic.h 
Semantic3.o : Semantic3.c Semantic.h 

analyze.o : analyze.c Semantic.h macros.h 
analyze2.o : analyze2.c Semantic.h macros.h 
analyze3.o : analyze3.c Semantic.h macros.h 
assert.o : assert.c Semantic.h macros.h 
class.o : class.c Semantic.h macros.h 
copy.o : copy.c Semantic.h macros.h 
copyassert.o : copyassert.c Semantic.h macros.h 
find.o : find.c Semantic.h macros.h 
import.o : import.c Semantic.h macros.h 
init.o : init.c Semantic.h macros.h 
main.o : main.c Semantic.h macros.h 
misc.o : misc.c Semantic.h macros.h 
prelude.o : prelude.c Semantic.h macros.h 
privates.o : privates.c Semantic.h macros.h 
sort.o : sort.c Semantic.h macros.h 
type.o : type.c Semantic.h macros.h 
without.o : without.c Semantic.h macros.h 

Install:
	$(RM) $(LIBDEST)/IDLsa
	$(INSTALL) IDLsa $(LIBDEST)

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

Ci:
	$(CI) $(SRC) Semantic1.c Semantic2.c Semantic.h

Co:
	$(CO)  $(SRC) Semantic1.c Semantic2.c Semantic.h

Copy:
	mkdir $(COPYDIR)/semantic
	$(CP) $(SRC) Semantic1.c Semantic2.c Semantic.h README $(COPYDIR)/semantic

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

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