# *************************************************************
#	Sample Makefile for TOPO
# *************************************************************
#***********************************
# (C) Copyright 1992-1993; dit/upm
#  Distributed under the conditions stated in the
#  TOPO General Public License (see file LICENSE)
#***********************************
# $Id: SampleMakefile,v 1.3 1995/01/23 11:15:27 lotos Exp $

#---> you may wish to change these
SPEC=	spec
DNAME=	ldc
TNAME=	lbc
GLAD=	$(SPEC).gld

ADACPL=	$(TOPOF_ADACPL)
ADARTS=	$(TOPOF_ADARTS)

MAIN=	main
TRGT=	$(SPEC)
SRCS=	$(DNAME).a $(DNAME)_b.a $(TNAME).a $(TNAME)_b.a $(SPEC).a

ADALIB=	$(MAKE) $(MFLAGS) -f $(ADACPL).mk

$(TRGT):	$(SRCS) $(ADACPL).init $(ADACPL).done
	@true

$(ADACPL).init:	$(ADACPL).mk $(SPEC).ctx
	$(ADALIB) init
	$(ADALIB) import LIB="$(TOPOLIB)/kaos/$(ADARTS)"
	$(ADALIB) import LIB="$(TOPOLIB)/labra/$(ADARTS)"
	touch $@

$(ADACPL).done:	$(SRCS)
	for src in $(SRCS); do $(ADALIB) compile SRC="$$src"; done
	$(ADALIB) link MAIN=$(MAIN) TRGT=$(TRGT)
	touch $@

$(ADACPL).mk:	$(SPEC).ctx
	$(TOPOBIN)/topo $(SPEC) -compiler

$(TNAME)_b.a $(TNAME).a:	$(SPEC).lot $(GLAD) $(SPEC).ctx
	$(TOPOBIN)/topo $(SPEC) -verbose -behaviour

$(DNAME)_b.a $(DNAME).a:	$(SPEC).lot $(GLAD) $(SPEC).ctx
	$(TOPOBIN)/topo $(SPEC) -verbose -data

$(SPEC).ctx:
	$(TOPOBIN)/toposet $(SPEC) -language Ada
	$(TOPOBIN)/toposet $(SPEC) -tname $(TNAME) -dname $(DNAME)
	$(TOPOBIN)/toposet $(SPEC) -glad $(GLAD)

clean tidy::	$(ADACPL).mk
	rm -f *~ core topocore
	$(ADALIB) clean
	rm -f $(ADACPL).done
	rm -f $(ADACPL).init
	rm -f $(SPEC).com

clean::
	$(TOPOBIN)/topo $(SPEC) -clean

tidy::
	rm -f $(TRGT)
	$(TOPOBIN)/topo $(SPEC) -tidy
	rm -f $(SPEC).ctx
