# Makefile for GNU CHILL compiler runtime library.
#   Copyright (C) 1987, 88, 90-94, 1998, 1999 Free Software Foundation, Inc.

#This file is part of GNU CC.

#GNU CC is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2, or (at your option)
#any later version.

#GNU CC is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with GNU CC; see the file COPYING.  If not, write to
#the Free Software Foundation, 59 Temple Place - Suite 330,
#Boston, MA 02111-1307, USA.  */

# This was cribbed from the libf2c, libiberty and libstdc++ Makefile.in
# files.  Some of this stuff may be unnecessary and worthless.

SHELL = /bin/sh

#### Start of system configuration section. ####

srcdir = @srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
target_alias = @target_alias@
gcc_version = @gcc_version@
gcc_version_trigger = @gcc_version_trigger@

libdir = $(exec_prefix)/lib
libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)

# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true

# Not configured per top-level version, since that doesn't get passed
# down at configure time, but overrridden by the top-level install
# target.
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@

AR = @AR@
AR_FLAGS = rc

RANLIB = @RANLIB@

CC = @CC@
CFLAGS = @CFLAGS@
ALL_CFLAGS = -I. -I$(srcdir) $(CPPFLAGS) $(DEFS) $(CFLAGS)

.SUFFIXES:
.SUFFIXES: .c .o

.c.o:
	$(CC) -c $(ALL_CFLAGS) $(INCLUDES) $<

# Lists of required functions for each archive.

LIBOBJS1 = allgmem.o allmem.o allocate.o cause.o exhstack.o exh.o retmem.o \
	   unhex.o unhex1.o rtsdummy.o terminate.o

IOOBJS = basicio.o chillstdio.o delete.o eoln.o existing.o format.o getassoc.o \
	 gettextaccess.o gettextindex.o gettextrecord.o getusage.o \
	 indexable.o ioerror.o isassociated.o outoffile.o readable.o \
	 readrecord.o sequencible.o settextaccess.o settextindex.o \
	 settextrecord.o variable.o writeable.o writerecord.o

PSOBJS = andps.o cardps.o concatps.o copyps.o diffps.o eqps.o ffsetclrps.o \
	ffsetps.o flsetclrps.o flsetps.o inbitstr.o inps.o leps.o ltps.o \
	neps.o notps.o orps.o setbitps.o setbits.o sliceps.o xorps.o

STROBJS = concatstr.o eqstr.o ltstr.o memmove.o

TIMEOBJS = abstime.o inttime.o waituntil.o remaintime.o convdurrtstime.o \
	   checkcycle.o

TASKOBJS = continue.o delaycase.o printbuffer.o printevent.o queuelength.o \
	   sendbuffer.o waitbuffer.o

OBJS = $(LIBOBJS1) $(IOOBJS) $(PSOBJS) $(STROBJS) $(TIMEOBJS) $(TASKOBJS)

libchill.a: $(OBJS)
	$(AR) $(AR_FLAGS) $@ $(OBJS)
	$(RANLIB) $@

allgmem.o: allgmem.c rtltypes.h
allmem.o: allmem.c rtltypes.h
allocate.o: allocate.c rtltypes.h
cause.o: cause.c
exhstack.o: exhstack.c rtltypes.h
exh.o: exh.c rtltypes.h
retmem.o: retmem.c
unhex.o: unhex.c
unhex1.o: unhex1.c
rtsdummy.o: rtsdummy.c rtltypes.h
terminate.o: terminate.c rtltypes.h
basicio.o: basicio.c fileio.h
chillstdio.o: chillstdio.c iomodes.h
delete.o: delete.c fileio.h
eoln.o: eoln.c fileio.h
existing.o: existing.c fileio.h
format.o: format.c bitstring.h auxtypes.h iomodes.h format.h fileio.h ioerror.h
getassoc.o: getassoc.c fileio.h
gettextaccess.o: gettextaccess.c fileio.h
gettextindex.o: gettextindex.c fileio.h
gettextrecord.o: gettextrecord.c fileio.h
getusage.o: getusage.c fileio.h
indexable.o: indexable.c fileio.h
ioerror.o: ioerror.c
isassociated.o: isassociated.c fileio.h
outoffile.o: outoffile.c fileio.h
readable.o: readable.c fileio.h
readrecord.o: readrecord.c fileio.h
sequencible.o: sequencible.c fileio.h
settextaccess.o: settextaccess.c fileio.h
settextindex.o: settextindex.c fileio.h
settextrecord.o: settextrecord.c fileio.h
variable.o: variable.c fileio.h
writeable.o: writeable.c fileio.h
writerecord.o: writerecord.c fileio.h
andps.o: andps.c powerset.h
cardps.o: cardps.c powerset.h
concatps.o: concatps.c powerset.h
copyps.o: copyps.c powerset.h
diffps.o: diffps.c powerset.h
eqps.o: eqps.c powerset.h
ffsetclrps.o: ffsetclrps.c powerset.h
ffsetps.o: ffsetps.c powerset.h
flsetclrps.o: flsetclrps.c powerset.h
flsetps.o: flsetps.c powerset.h
inbitstr.o: inbitstr.c powerset.h
inps.o: inps.c powerset.h
leps.o: leps.c powerset.h
ltps.o: ltps.c powerset.h
neps.o: neps.c powerset.h
notps.o: notps.c powerset.h
orps.o: orps.c powerset.h
setbitps.o: setbitps.c powerset.h
setbits.o: setbits.c powerset.h
sliceps.o: sliceps.c powerset.h
xorps.o: xorps.c powerset.h
concatstr.o: concatstr.c
eqstr.o: eqstr.c
ltstr.o: ltstr.c
memmove.o: memmove.c
abstime.o: abstime.c rtltypes.h
inttime.o: inttime.c
waituntil.o: waituntil.c rtltypes.h rts.h
remaintime.o: remaintime.c rts.h
convdurrtstime.o: convdurrtstime.c rts.h
checkcycle.o: checkcycle.c rtltypes.h rts.h
continue.o: continue.c rtltypes.h rts.h
delaycase.o: delaycase.c rtltypes.h rts.h
printbuffer.o: printbuffer.c rtltypes.h rts.h
printevent.o: printevent.c rtltypes.h rts.h
queuelength.o: queuelength.c rtltypes.h rts.h
sendbuffer.o: sendbuffer.c rtltypes.h rts.h
waitbuffer.o: waitbuffer.c rtltypes.h rts.h

$(PSOBJS): $(srcdir)/powerset.h
librmt.o: $(srcdir)/rtltypes.h
chillrt0.o: chillrt0.c $(srcdir)/rtltypes.h $(srcdir)/iomodes.h $(srcdir)/auxtypes.h
$(LIBOBJS1): $(srcdir)/rtltypes.h
$(TIMEOBJS): $(srcdir)/rtltypes.h $(srcdir)/rts.h
$(TASKOBJS): $(srcdir)/rts.h $(srcdir)/rtltypes.h
$(IOOBJS): $(srcdir)/fileio.h $(srcdir)/bitstring.h $(srcdir)/auxtypes.h \
	   $(srcdir)/iomodes.h $(srcdir)/format.h $(srcdir)/ioerror.h

# Flags to pass to a recursive make.
FLAGS_TO_PASS = \
	"AR=$(AR)" \
	"AR_FLAGS=$(AR_FLAGS)" \
	"CC=$(CC)" \
	"CFLAGS=$(CFLAGS)" \
	"LIBCFLAGS=$(LIBCFLAGS)" \
	"EXTRA_OFILES=$(EXTRA_OFILES)" \
	"HDEFINES=$(HDEFINES)" \
	"INSTALL=$(INSTALL)" \
	"INSTALL_DATA=$(INSTALL_DATA)" \
	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
	"LDFLAGS=$(LDFLAGS)" \
	"LOADLIBES=$(LOADLIBES)" \
	"PICFLAG=$(PICFLAG)" \
	"RANLIB=$(RANLIB)" \
	"SHELL=$(SHELL)" \
	"prefix=$(prefix)" \
	"exec_prefix=$(exec_prefix)" \
	"libdir=$(libdir)" \
	"libsubdir=$(libsubdir)" \
	"tooldir=$(tooldir)"

all: chillrt0.o libchill.a
	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all

Makefile: Makefile.in config.status
	$(SHELL) config.status

config.status: configure
	rm -f config.cache
	CONFIG_SITE=no-such-file CC='$(CC)' AR='$(AR)' CFLAGS='$(CFLAGS)' \
	CPPFLAGS='$(CPPFLAGS)' $(SHELL) config.status --recheck

${srcdir}/configure: configure.in
	rm -f config.cache
	cd ${srcdir} && autoconf

install: all
	$(INSTALL_DATA) libchill.a $(libsubdir)$(MULTISUBDIR)/libchill.a.n
	$(RANLIB) $(libsubdir)$(MULTISUBDIR)/libchill.a.n
	mv $(libsubdir)$(MULTISUBDIR)/libchill.a.n $(libsubdir)$(MULTISUBDIR)/libchill.a
	$(INSTALL_DATA) chillrt0.o $(libsubdir)$(MULTISUBDIR)/chillrt0.o
	@rootme=`pwd`/ ; export rootme ; \
	$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install


check uninstall install-strip dist installcheck installdirs info install-info clean-info dvi:

mostlyclean:
	rm -f *.o
	@$(MULTICLEAN) multi-clean DO=mostlyclean

clean: mostlyclean
	rm -f config.log libchill.a
	@$(MULTICLEAN) multi-clean DO=clean

distclean: clean
	@$(MULTICLEAN) multi-clean DO=distclean
	rm -f config.cache config.status Makefile configure

maintainer-clean realclean: distclean

.PHONY: mostlyclean clean distclean maintainer-clean all check uninstall \
	install-strip dist installcheck installdirs