######################################################################### 
#									# 
#   File: scorpion/src/IDLlib/libidl/Makefile 
#				 					# 
#   Copyright (C) 1991 Tim Maroney
#									# 
#   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:								# 
#									# 
######################################################################### 

SHELL=/bin/sh

# IMPORTED VARIABLES
LIBDIR=/usr/local/scorpion/lib
INCDIR=/usr/local/scorpion/include
SPECSDIR=/usr/local/scorpion/src/specs
AR=ar ru
CC=cc
IDLC=$(BINDIR)/idlc
PC=pc
CFLAGS=-I$(INCDIR)
IDLCFLAGS=
D_CFLAGS=-g
PFLAGS=
CP=cp
MV=mv
RM=rm -f
LEX=lex
MAKE=make
RANLIB=ranlib
YACC=yacc

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

UTILITYVARS='AR=$(AR)' 'CC=$(CC)' 'IDLC=$(IDLC)' 'PC=$(PC)' 'CFLAGS=$(CFLAGS)' \
              'IDLCFLAGS=$(IDLCFLAGS)' 'PFLAGS=$(PFLAGS)' 'CP=$(CP)' \
              'MV=$(MV)' 'RM=$(RM)' 'LEX=$(LEX)' 'MAKE=$(MAKE)' \
              'YACC=$(YACC)' 'MACHINE=$(MACHINE)' 'SHELL=$(SHELL)' \
              'LINT=$(LINT)' 'RANLIB=$(RANLIB)'

CI=ci
CO=co -l
INSTALLIDLVIEW=true

# LOCAL VARIABLES
LIBRARYOUTPUTFILE=libidl.a
LINTLIB=$(LIBDIR)/lintlib/llib-lliball.ln


SRC=nextOne.c  rmisc.c reader.c scanner.c labels.c wmisc.c \
	IDLstring.c init.c list.c debug.c MsgChar.c \
	array.c wrat.c string.c basics.c alloc.c writeext.c idlr_glb.c \
	converr.c

SRC2=cmmlop.c dump.c getstrttyprm.c idlvlib.c \
        iniivwmsg.c lib.c rcvwdwmsg.c sndcdlwdw.c sndfstnod.c sndwdwmsg.c \
        libcnncmm.c iniacktrl.c inibadacktrl.c chkadr.c sndabomsg.c \
	xivw_utl.c

OFILES=nextOne.o  rmisc.o reader.o scanner.o labels.o wmisc.o \
	IDLstring.o init.o list.o debug.o MsgChar.o \
	array.o wrat.o string.o basics.o alloc.o writeext.o idlr_glb.o\
	converr.o

OFILES2=cmmlop.o dump.o getstrttyprm.o idlvlib.o \
        iniivwmsg.o lib.o rcvwdwmsg.o sndcdlwdw.o sndfstnod.o sndwdwmsg.o \
        libcnncmm.o iniacktrl.o inibadacktrl.o chkadr.o sndabomsg.o \
	xivw_utl.o

DEBUGOBJ=/usr/lib/debug/malloc.o

LINTSRC=IDLstring.c  MsgChar.c      debug.c        iniivwmsg.c    outtokens.c    sndfstnod.c\
	  alloc.c        dump.c         init.c         rcvwdwmsg.c    sndwdwmsg.c\
	  array.c        getstrttyprm.c inseq.c        reader.c       string.c\
	  basics.c       idlr_glb.c     labels.c       rmisc.c        wmisc.c\
	  chkadr.c       idlvlib.c      libcnncmm.c    scanner.c      wrat.c\
	  cmmlop.c       iniacktrl.c    list.c         sndabomsg.c    writeext.c\
	  converr.c      inibadacktrl.c nextOne.c      sndcdlwdw.c   xivw_utl.c \
	  lib.c
###################################################################


System:
	@echo Ignore warnings from runv.c and runvp.c
	-if ($(INSTALLIDLVIEW)) then \
		$(MAKE) 'INCDIR=$(INCDIR)' \
		$(UTILITYVARS) 'INSTALLIDLVIEW=$(INSTALLIDLVIEW)' \
		'LIBRARYOUTPUTFILE=$(LIBRARYOUTPUTFILE)' System1; \
	else \
		$(MAKE) 'INCDIR=$(INCDIR)' \
		$(UTILITYVARS) 'INSTALLIDLVIEW=$(INSTALLIDLVIEW)' \
		'LIBRARYOUTPUTFILE=$(LIBRARYOUTPUTFILE)' System2; \
	fi

System1: $(OFILES) $(OFILES2)
	$(AR) $(LIBRARYOUTPUTFILE) $(OFILES) $(OFILES2)
	$(RANLIB) $(LIBRARYOUTPUTFILE)

System2: $(OFILES) IDLVlibdummy.o
	$(AR) $(LIBRARYOUTPUTFILE) $(OFILES) IDLVlibdummy.o
	$(RANLIB) $(LIBRARYOUTPUTFILE)

DebugLibrary:
	$(MAKE) -f Makefile 'CFLAGS=$(D_CFLAGS)' \
		'INCDIR=$(INCDIR)' 'INSTALLIDLVIEW=$(INSTALLIDLVIEW)'\
		'LIBRARYOUTPUTFILE=libidldebug.a'  'MAKE=$(MAKE)' \
		'AR=$(AR)' 'CC=$(CC)' 'RANLIB=$(RANLIB)' 'MV=$(MV)' \
		System

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

chkadr.o : chkadr.c ivw.h 
cmmlop.o : cmmlop.c ivw.h ivwmsg.h 
iniacktrl.o : iniacktrl.c ivwmsg.h 
inibadacktrl.o : inibadacktrl.c ivwmsg.h 
iniivwmsg.o : iniivwmsg.c ivw.h ivwmsg.h 
rcvwdwmsg.o : rcvwdwmsg.c ivw.h ivwmsg.h 
sndabomsg.o : sndabomsg.c ivwmsg.h 
sndcdlwdw.o : sndcdlwdw.c ivw.h ivwmsg.h 
sndfstnod.o : sndfstnod.c ivw.h ivwmsg.h 
sndwdwmsg.o : sndwdwmsg.c ivw.h ivwmsg.h 
xivw_utl.o: xivw_utl.c xivw_utl.h

# special file to be compiled with debug option
lib.o: lib.c
	$(CC) -c $(D_CFLAGS) $*.c

Install:
	$(RM) $(LIBDEST)/libidl*.a
	$(CP) libidl*.a $(LIBDEST)
	cd $(LIBDEST); \
	    if (test "$(MACHINE)" = "sparc" -o "$(MACHINE)" = "sun" ) then \
		$(RANLIB) -t libidl*.a; \
	    else \
		$(RANLIB) libidl*.a; \
	    fi;

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

Ci:
	$(CI) $(SRC)

Co:
	$(CO) $(SRC)

Copy:
	mkdir $(COPYDIR)/lib
	$(CP) $(SRC) Makefile README $(COPYDIR)/lib

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

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