# ACL:license
#  ----------------------------------------------------------------------
#  This software and ancillary information (herein called "SOFTWARE")
#  called POOMA (Parallel Object-Oriented Methods and Applications) is
#  made available under the terms described here.  The SOFTWARE has been
#  approved for release with associated LA-CC Number LA-CC-98-65.
#  
#  Unless otherwise indicated, this SOFTWARE has been authored by an
#  employee or employees of the University of California, operator of the
#  Los Alamos National Laboratory under Contract No. W-7405-ENG-36 with
#  the U.S. Department of Energy.  The U.S. Government has rights to use,
#  reproduce, and distribute this SOFTWARE. The public may copy, distribute,
#  prepare derivative works and publicly display this SOFTWARE without 
#  charge, provided that this Notice and any statement of authorship are 
#  reproduced on all copies.  Neither the Government nor the University 
#  makes any warranty, express or implied, or assumes any liability or 
#  responsibility for the use of this SOFTWARE.
#  
#  If SOFTWARE is modified to produce derivative works, such modified
#  SOFTWARE should be clearly marked, so as not to confuse it with the
#  version available from LANL.
#  
#  For more information about POOMA, send e-mail to pooma@acl.lanl.gov,
#  or visit the POOMA web page at http://www.acl.lanl.gov/pooma/.
#  ----------------------------------------------------------------------
# ACL:license

#
# include PETE make information
# (support easy testing)
#
ifndef TEST
MAKEOPERATORS = $(PETEDIR)/$(PETEARCHDIR)/bin/MakeOperators
else
MAKEOPERATORS = ./MakeOperators
endif

#
# the files we will need to build
#

COMMONFILES = \
	PoomaOperatorTags.h

ARRAYFILES = \
	ArrayOperators.h \
	PoomaArrayOperators.h \
	VectorArrayOperators.h

DYNAMICARRAYFILES = \
	DynamicArrayOperators.h \
	PoomaDynamicArrayOperators.h \
	VectorDynamicArrayOperators.h

FIELDFILES = \
	FieldOperators.h \
	PoomaFieldOperators.h \
	VectorFieldOperators.h

ALLFILES = $(COMMONFILES) $(ARRAYFILES) $(DYNAMICARRAYFILES) $(FIELDFILES)


#
# the standard build targets
#

default: $(ALLFILES)

clean:
	rm -f $(ALLFILES)

install: $(ALLFILES)
	cp -f PoomaOperatorTags.h ..
	cp -f ArrayOperators.h ../../Array
	cp -f PoomaArrayOperators.h ../../Array
	cp -f VectorArrayOperators.h ../../Array
	cp -f PoomaDynamicArrayOperators.h ../../DynamicArray
	cp -f VectorDynamicArrayOperators.h ../../DynamicArray
	cp -f DynamicArrayOperators.h ../../DynamicArray
	cp -f FieldOperators.h ../../Field
	cp -f PoomaFieldOperators.h ../../Field
	cp -f VectorFieldOperators.h ../../Field


#
# Common operations
#

PoomaOperatorTags.h:
	$(MAKEOPERATORS) --operators PoomaOps.in \
	--guard POOMA_POOMA_POOMAOPERATORTAGS_H \
	--no-expression --op-tags \
	--o PoomaOperatorTags.h

#
# Array-related operations
#

ArrayOperators.h:
	$(MAKEOPERATORS) --classes PoomaClass.in \
	--guard POOMA_ARRAY_ARRAYOPERATORS_H \
	--no-expression \
	--o ArrayOperators.h

PoomaArrayOperators.h:
	$(MAKEOPERATORS) --classes PoomaClass.in --operators PoomaOps.in \
	--guard POOMA_POOMA_POOMAARRAYOPERATORS_H \
	--no-expression \
	--o PoomaArrayOperators.h

VectorArrayOperators.h:
	$(MAKEOPERATORS) --classes PoomaVectorClass.in \
	--guard POOMA_POOMA_VECTORARRAYOPERATORS_H \
	--operators PoomaVectorOps.in \
	--no-expression --scalars \
	--o VectorArrayOperators.h

#
# DynamicArray-related operations
#

DynamicArrayOperators.h:
	$(MAKEOPERATORS) --classes PoomaDynamicArray.in \
	--guard POOMA_DYNAMIC_ARRAY_DYNAMICARRAYOPERATORS_H \
	--no-expression --extra-classes \
	--o DynamicArrayOperators.h

PoomaDynamicArrayOperators.h:
	$(MAKEOPERATORS) --classes PoomaDynamicArray.in \
	--guard POOMA_POOMA_POOMADYNAMICARRAYOPERATORS_H \
	--operators PoomaOps.in \
	--no-expression --extra-classes \
	--o PoomaDynamicArrayOperators.h

VectorDynamicArrayOperators.h:
	$(MAKEOPERATORS) --classes PoomaDynamicArrayVector.in \
	--guard POOMA_POOMA_VECTORDYNAMICARRAYOPERATORS_H \
	--operators PoomaVectorOps.in \
	--no-expression --scalars \
	--o VectorDynamicArrayOperators.h

#
# Field-related operations
#

FieldOperators.h:
	$(MAKEOPERATORS) --classes PoomaField.in \
	--guard POOMA_FIELD_FIELDOPERATORS_H \
	--no-expression \
	--o FieldOperators.h

PoomaFieldOperators.h:
	$(MAKEOPERATORS) --classes PoomaField.in \
	--guard POOMA_FIELD_POOMAFIELDOPERATORS_H \
	--operators PoomaOps.in \
	--no-expression \
	--o PoomaFieldOperators.h

VectorFieldOperators.h:
	$(MAKEOPERATORS) --classes PoomaFieldVector.in \
	--guard POOMA_POOMA_VECTORFIELDOPERATORS_H \
	--operators PoomaVectorOps.in \
	--no-expression --scalars \
	--o VectorFieldOperators.h

# ACL:rcsinfo
#  ----------------------------------------------------------------------
#  $RCSfile: makefile,v $   $Author: swhaney $
#  $Revision: 1.8 $   $Date: 2000/03/07 13:18:06 $
#  ----------------------------------------------------------------------
# ACL:rcsinfo
