######################################################################### 
#									# 
#   File: scorpion/src/idlc/rep/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:								# 
#									# 
######################################################################### 

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

CC=cc
IDLC=$(BINDIR)/idlc
PC=pc
CFLAGS=-I$(INCDIR)
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

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
CANDIR=$(SPECSDIR)/Candle
UNCCANDIR=../specs
LINTLIB=$(LIBDIR)/lintlib/llib-llibidl.ln $(LIBDIR)/lintlib/llib-lliberr.ln
LIB=$(LIBDIR)/libidl.a $(LIBDIR)/liberr.a
IDLCFLAGSLOC=-S -I$(CANDIR) -I$(SPECSDIR) -I$(UNCCANDIR) -h  -k  -nc
IDLFILES=$(CANDIR)/CandleSyntax.idl $(CANDIR)/CandleSemantic.idl \
	   $(CANDIR)/CandleRep.idl \
	   $(CANDIR)/Candle.idl $(CANDIR)/CandleContext.idl \
	   $(UNCCANDIR)/UNCCandleSyntax.idl $(UNCCANDIR)/UNCCandleSemantic.idl \
	   $(UNCCANDIR)/UNCCandleRep.idl $(CANDIR)/UNCCandle.idl Rep.idl

SRC=main.c misc.c size.c coloring.c privates.c find.c init.c newname.c \
	prelude.c restrict.c type.c copy.c newrep.c remove.c  nodeid.c mark.c \
	phase_dep.c phase_indep.c pascal.c check_privates.c \
	macros.h Rep.idl

OBJ=main.o misc.o size.o coloring.o privates.o find.o init.o newname.o \
	prelude.o restrict.o type.o copy.o newrep.o remove.o nodeid.o mark.o \
	phase_dep.o phase_indep.o pascal.o check_privates.o

LINTSRC=main.c misc.c size.c coloring.c privates.c find.c init.c newname.c \
	prelude.c restrict.c type.c copy.c newrep.c remove.c  nodeid.c mark.c \
 	phase_dep.c phase_indep.c pascal.c check_privates.c \
	Rep1.c Rep2.c Rep3.c

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

IDLrep :  $(OBJ) Rep1.o Rep2.o Rep3.o
	$(CC) -o IDLrep $(CFLAGS) $(OBJ) Rep1.o Rep2.o Rep3.o $(LIB)

System :  IDLrep

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

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

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

Rep1.o : Rep1.c Rep.h 
Rep2.o : Rep2.c Rep.h 
Rep3.o : Rep3.c Rep.h 

Rep1.o Rep2.o Rep3.o:
	if (test "$(MACHINE)" = "sparc") then \
		$(CC) -c $(NO_CFLAGS) $*.c; \
	else \
		$(CC) -c $(CFLAGS) $*.c; \
	fi

check_privates.o : check_privates.c Rep.h macros.h 
coloring.o : coloring.c Rep.h macros.h 
copy.o : copy.c Rep.h macros.h 
find.o : find.c Rep.h macros.h 
init.o : init.c Rep.h macros.h 
main.o : main.c Rep.h macros.h 
mark.o : mark.c Rep.h macros.h 
misc.o : misc.c Rep.h macros.h 
newname.o : newname.c Rep.h macros.h 
newrep.o : newrep.c Rep.h macros.h 
nodeid.o : nodeid.c Rep.h macros.h 
pascal.o : pascal.c Rep.h macros.h 
phase_dep.o : phase_dep.c Rep.h macros.h 
phase_indep.o : phase_indep.c Rep.h 
prelude.o : prelude.c Rep.h macros.h 
privates.o : privates.c Rep.h 
remove.o : remove.c Rep.h macros.h 
restrict.o : restrict.c Rep.h macros.h 
size.o : size.c Rep.h macros.h 
type.o : type.c Rep.h macros.h 

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

# Not sure that these files can be generated as such.
Ci: 
	$(CI) $(SRC) Rep1.c Rep2.c Rep.h

Co:
	$(CO) $(SRC) Rep1.c Rep2.c Rep.h
Copy:
	mkdir $(COPYDIR)/IDLrep
	$(CP) $(SRC) Rep1.c Rep2.c Rep.h README $(COPYDIR)/IDLrep

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

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