#
# this is a GNUmakefile.  It must be processed with GNU make.
#

TARGET_ARCH=
TOP=../..

# you should define the make variables LOBJS and HEADERS before the
# include directive.  LOBJS is a list of Library OBJects that belong
# in libiac++.a.  HEADERS is a list of public header files that belong
# in iac++/include.

LOBJS =  IntDI.o BitDI.o UcharDI.o FloatDI.o ComplexDI.o \
	FloatCI.o \
	IntDDTempl.o BitDDTempl.o UcharDDTempl.o \
	FloatDDTempl.o ComplexDDTempl.o \
	Neighborhood.o

HEADERS=IntDI.h IntImageOps.h \
	BitDI.h BitImageOps.h \
	UcharDI.h UcharImageOps.h \
	FloatDI.h FloatImageOps.h \
	ComplexDI.h ComplexImageOps.h \
	FloatCI.h \
	Image.h CoreImage.h AuxImage.h ImgRestrictAssn.h ImageIter.h \
	BaseI.h BaseImageIter.h \
	ClosureI.h \
	Pixel.h \
    BaseDT.h DDTempl.h ClosureDT.h \
	IntDDTempl.h IntConvolutions.h \
	BitDDTempl.h BitConvolutions.h \
	UcharDDTempl.h UcharConvolutions.h \
	FloatDDTempl.h FloatConvolutions.h \
	ComplexDDTempl.h ComplexConvolutions.h \
    BaseNbh.h Neighborhood.h NeighborhoodOps.h


SRCS=CoreImage.c ImageIter.c \
	BaseI.c BaseImageIter.c \
	ConstI.c FunctionI.h VectorI.h \
	ConstImageIter.c VectorImageIter.c \
	ClosureI.c \
	DDTempl.c InvariantDT.c FunctionDT.c \
	Neighborhood.c #InvariantNbh.c

SIMPLETESTS=test000
TESTS=

OTHER_CFLAGS= -O

XTRACCFLAGS=

CLOSUREARGS = #-ptr./ptrepository -ptr../valueset/ptrepository
CLOSUREOBJS= placebos1.o placebos2.o closure.o
#CLOSUREOBJS= fred.o mary.o john.o
BLASTABLE_PTFILES = ___ad__FRC14IA_IntPointSetT1 \
	___ls__FR7ostreamRC8IA_IntPoint \
	IA_ValueSet IA_Array \
	IA_BasePS IA_PSPred IA_Point IA_Set IA_PSIter

include ${TOP}/src/gnumake.templ

# temporary stuff to override depot during the new-image experimental stages
INCLUDEFLAGS= -I. -I${INCDIR} ${EXTRAINCLUDES}
LDLIBS = -L${TOP}/lib ${OTHERLIBS} -liac++ -lm

lib: closure

depend: # ${GENERATED_CFILES}

closure: ${SRCS}

IntDI.o: IntImageOps.c IntImageOps.h
BitDI.o: BitImageOps.c BitImageOps.h
UcharDI.o: UcharImageOps.c UcharImageOps.h
FloatDI.o: FloatImageOps.c FloatImageOps.h
ComplexDI.o: ComplexImageOps.c ComplexImageOps.h
#
IntDDTempl.o: IntConvolutions.c IntConvolutions.h
BitDDTempl.o: BitConvolutions.c BitConvolutions.h
UcharDDTempl.o: UcharConvolutions.c UcharConvolutions.h
FloatDDTempl.o: FloatConvolutions.c FloatConvolutions.h
ComplexDDTempl.o: ComplexConvolutions.c ComplexConvolutions.h
#
Neighborhood.o: NeighborhoodOps.c NeighborhoodOps.h

GENBOPMETA = ./generate-bo.perl
BOPMETAFILES = $(foreach pw,pw sr,$(foreach comm,c nc,$(foreach arity,II Is sI,$(foreach isop,op fn,opgen-templs/b${pw}_${comm}_${arity}_${isop}))))
UOPMETAFILES = opgen-templs/upw opgen-templs/constructor opgen-templs/conversion
REDMETAFILES = $(foreach op,op fn,opgen-templs/reduce_${op}_nz)
OPMETAFILES = ${BOPMETAFILES} ${UOPMETAFILES} ${REDMETAFILES}

${BOPMETAFILES}: ${GENBOPMETA}
	- mkdir opgen-templs
	for pw in pw sr; do for comm in c nc; do for arity in II Is sI; do for optype in op fn; do \
	${PERL} ${GENBOPMETA} -$$pw -$$comm -$$arity -$$optype > opgen-templs/b$${pw}_$${comm}_$${arity}_$${optype}; \
	done; done; done; done

opgen-templs/upw: unary-op.templ
	- mkdir opgen-templs
	rm -f $@
	cp unary-op.templ $@

opgen-templs/constructor: constructor.templ
	- mkdir opgen-templs
	rm -f $@
	cp constructor.templ $@

opgen-templs/conversion: conversion.templ
	- mkdir opgen-templs
	rm -f $@
	cp conversion.templ $@

${REDMETAFILES}: reduce_op_nz reduce_fn_nz
	- mkdir opgen-templs
	for op in op fn; do \
		rm -f opgen-templs/reduce_$${op}_nz; \
		(cp reduce_$${op}_nz opgen-templs/reduce_$${op}_nz); \
	done

GENCOPS = ./generate-ops-c.perl
GENHOPS = ./generate-ops-h.perl

IntImageOps.c: int-operations.desc ${OPMETAFILES} ${GENCOPS}
	rm -f $@
	${PERL} ${GENCOPS} < int-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint int > $@
	chmod a-w $@

IntImageOps.h: int-operations.desc ${GENHOPS}
	rm -f $@
	${PERL} ${GENHOPS} < int-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint int > $@
	chmod a-w $@

BitImageOps.c: bit-operations.desc ${OPMETAFILES} ${GENCOPS}
	rm -f $@
	${PERL} ${GENCOPS} < bit-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint IA_Bit > $@
	chmod a-w $@

BitImageOps.h: bit-operations.desc ${GENHOPS}
	rm -f $@
	${PERL} ${GENHOPS} < bit-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint IA_Bit > $@
	chmod a-w $@

UcharImageOps.c: uchar-operations.desc ${OPMETAFILES} ${GENCOPS}
	rm -f $@
	${PERL} ${GENCOPS} < uchar-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint u_char > $@
	chmod a-w $@

UcharImageOps.h: uchar-operations.desc ${GENHOPS}
	rm -f $@
	${PERL} ${GENHOPS} < uchar-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint u_char > $@
	chmod a-w $@

FloatImageOps.c: float-operations.desc ${OPMETAFILES} ${GENCOPS}
	rm -f $@
	${PERL} ${GENCOPS} < float-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint float > $@
	chmod a-w $@

FloatImageOps.h: float-operations.desc ${GENHOPS}
	rm -f $@
	${PERL} ${GENHOPS} < float-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint float > $@
	chmod a-w $@

ComplexImageOps.c: complex-operations.desc ${OPMETAFILES} ${GENCOPS}
	rm -f $@
	${PERL} ${GENCOPS} < complex-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint complex > $@
	chmod a-w $@

ComplexImageOps.h: complex-operations.desc ${GENHOPS}
	rm -f $@
	${PERL} ${GENHOPS} < complex-operations.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint complex > $@
	chmod a-w $@

#
#
#

CONVMETAFILES = absorber template-reduction

IntConvolutions.c: gen-conv-c.perl ${CONVMETAFILES} int-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-c.perl < int-convolutions.desc  | \
		${PERL} ./encore.nonnative.perl IA_IntPoint int | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *int *> *>-IA_IntDDTemplate-g' > $@
	chmod a-w $@

IntConvolutions.h: gen-conv-h.perl int-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-h.perl < int-convolutions.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint int | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *int *> *>-IA_IntDDTemplate-g' > $@
	chmod a-w $@

BitConvolutions.c: gen-conv-c.perl ${CONVMETAFILES} bit-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-c.perl < bit-convolutions.desc  | \
		${PERL} ./encore.nonnative.perl IA_IntPoint IA_Bit | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *IA_Bit *> *>-IA_BitDDTemplate-g' > $@
	chmod a-w $@

BitConvolutions.h: gen-conv-h.perl bit-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-h.perl < bit-convolutions.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint IA_Bit | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *IA_Bit *> *>-IA_BitDDTemplate-g' > $@
	chmod a-w $@

UcharConvolutions.c: gen-conv-c.perl ${CONVMETAFILES} uchar-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-c.perl < uchar-convolutions.desc  | \
		${PERL} ./encore.nonnative.perl IA_IntPoint u_char | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *u_char *> *>-IA_UcharDDTemplate-g' > $@
	chmod a-w $@

UcharConvolutions.h: gen-conv-h.perl uchar-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-h.perl < uchar-convolutions.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint u_char | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *u_char *> *>-IA_UcharDDTemplate-g' > $@
	chmod a-w $@

FloatConvolutions.c: gen-conv-c.perl ${CONVMETAFILES} float-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-c.perl < float-convolutions.desc  | \
		${PERL} ./encore.nonnative.perl IA_IntPoint float | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *float *> *>-IA_FloatDDTemplate-g' > $@
	chmod a-w $@

FloatConvolutions.h: gen-conv-h.perl float-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-h.perl < float-convolutions.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint float | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *float *> *>-IA_FloatDDTemplate-g' > $@
	chmod a-w $@

ComplexConvolutions.c: gen-conv-c.perl ${CONVMETAFILES} complex-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-c.perl < complex-convolutions.desc  | \
		${PERL} ./encore.nonnative.perl IA_IntPoint complex | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *complex *> *>-IA_ComplexDDTemplate-g' > $@
	chmod a-w $@

ComplexConvolutions.h: gen-conv-h.perl complex-convolutions.desc
	rm -f $@
	${PERL} ./gen-conv-h.perl < complex-convolutions.desc | \
		${PERL} ./encore.nonnative.perl IA_IntPoint complex | \
	 sed -e 's-IA_DDTemplate *< *IA_Image *< *IA_IntPoint *, *complex *> *>-IA_ComplexDDTemplate-g' > $@
	chmod a-w $@

NEIGHBMETAFILES=neighborhood-reduction

NeighborhoodOps.c:${NEIGHBMETAFILES}

NeighborhoodOps.h: gen-neighborhood-h.perl neighborhood-ops.desc
	rm -f $@
	${PERL} ./gen-neighborhood-h.perl < neighborhood-ops.desc > $@
	chmod a-w $@

NeighborhoodOps.c: gen-neighborhood-c.perl neighborhood-ops.desc
	rm -f $@
	${PERL} ./gen-neighborhood-c.perl < neighborhood-ops.desc > $@
	chmod a-w $@

print:
	enscript -2rGPps335 ${HEADERS} ${SRCS}

spotless:
	/bin/rm -rf ptrepository
	rm -f ${BOPMETAFILES}
	rm -f IntConvolutions.[ch] BitConvolutions.[ch] UcharConvolutions.[ch] FloatConvolutions.[ch] ComplexConvolutions.[ch]
	rm -f IntImageOps.[ch] BitImageOps.[ch] UcharImageOps.[ch] FloatImageOps.[ch] ComplexImageOps.[ch]

spotless:

checkin:
	ci $(SRCS) $(HEADRS)

# weird ObjectCenter support

ifneq (${LOBJS},)

LSRCS = ${patsubst %.o,%.c,${LOBJS}}
oclib_src:
	!load ${CCFLAGS} ${LSRCS}

oclib_obj:
	!load ${CCFLAGS} ${LOBJS}

OCSRCS = ${patsubst %.o,%_src,${LOBJS}}
OCOBJS = ${patsubst %.o,%_obj,${LOBJS}}

${OCSRCS}: %_src: %.c
	!load ${CCFLAGS} $<

${OCOBJS}: %_obj: %.o
	!load ${CCFLAGS} $<
endif

# dependencies
AuxImage.o : AuxImage.c CoreImage.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/ValueSet.h \
  ../../include/Set.h ../../include/IntPointSet.h ../../include/BasePS.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h VectorI.h ConstI.h \
  ImageIter.h BaseImageIter.h image_errors.h 
BaseI.o : BaseI.c ../../include/PSIter.h ../../include/BaseIPSIter.h ../../include/BasePS.h \
  ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h ../../include/FloatPoint.h \
  ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h BaseI.h ../../include/ValueSet.h \
  VectorI.h BaseImageIter.h restrict.h LazyXlationI.h OtherImageIter.h 
BaseImageIter.o : BaseImageIter.c BaseImageIter.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/ia.h ../../include/FloatPoint.h BaseI.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  ../../include/ValueSet.h 
BitConvolutions.o : BitConvolutions.c 
BitDDTempl.o : BitDDTempl.c ../../include/PSIter.h ../../include/BaseIPSIter.h \
  ../../include/BasePS.h ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/FloatPoint.h ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h ImageIter.h BaseImageIter.h \
  CoreImage.h ../../include/ValueSet.h BaseI.h Pixel.h AuxImage.h ../../include/Bit.h \
  ../../include/Closure.h ImgRestrictAssn.h InvariantDT.h BaseDT.h ClosureDT.h \
  BitDDTempl.h DDTempl.h BitDI.h Image.h BitImageOps.h BitConvolutions.h VectorI.h \
  BitConvolutions.c 
BitDI.o : BitDI.c BitDI.h ../../include/Bit.h CoreImage.h ../../include/ia.h \
  ../../include/Point.h ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/ValueSet.h \
  ../../include/Set.h ../../include/IntPointSet.h ../../include/BasePS.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Closure.h ImgRestrictAssn.h Image.h BitImageOps.h VectorI.h ConstI.h \
  ClosureI.h ErrorI.h ImageIter.h BaseImageIter.h ../../include/PSIter.h ../../include/BaseIPSIter.h \
  restrict.h BitImageOps.c 
BitImageOps.o : BitImageOps.c 
ClosureI.o : ClosureI.c 
ComplexConvolutions.o : ComplexConvolutions.c 
ComplexDDTempl.o : ComplexDDTempl.c ../../include/PSIter.h ../../include/BaseIPSIter.h \
  ../../include/BasePS.h ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/FloatPoint.h ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h ImageIter.h BaseImageIter.h \
  CoreImage.h ../../include/ValueSet.h BaseI.h Pixel.h AuxImage.h ../../include/Bit.h \
  ../../include/Closure.h ImgRestrictAssn.h InvariantDT.h BaseDT.h ClosureDT.h \
  ComplexDDTempl.h DDTempl.h ComplexDI.h Image.h IntDI.h IntImageOps.h ComplexImageOps.h \
  ComplexConvolutions.h VectorI.h ComplexConvolutions.c 
ComplexDI.o : ComplexDI.c VectorI.h BaseI.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  ../../include/ValueSet.h ConstI.h ClosureI.h ErrorI.h ImageIter.h BaseImageIter.h \
  CoreImage.h Pixel.h AuxImage.h ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h \
  ../../include/PSIter.h ../../include/BaseIPSIter.h ComplexDI.h Image.h IntDI.h \
  IntImageOps.h ComplexImageOps.h restrict.h ComplexImageOps.c 
ComplexImageOps.o : ComplexImageOps.c 
ConstI.o : ConstI.c VectorI.h BaseI.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  ../../include/ValueSet.h ConstI.h ConstImageIter.h ../../include/PSIter.h ../../include/BaseIPSIter.h \
  BaseImageIter.h 
ConstImageIter.o : ConstImageIter.c ConstImageIter.h ../../include/PSIter.h \
  ../../include/BaseIPSIter.h ../../include/BasePS.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/IntPointSet.h \
  ../../include/Set.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  BaseImageIter.h ConstI.h BaseI.h ../../include/ValueSet.h 
CoreImage.o : CoreImage.c ../../include/Point.h ../../include/IntPoint.h ../../include/ia.h \
  ../../include/FloatPoint.h ../../include/Set.h ../../include/IntPointSet.h ../../include/BasePS.h \
  ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  CoreImage.h ../../include/ValueSet.h BaseI.h Pixel.h AuxImage.h ../../include/Bit.h \
  ../../include/Closure.h ImgRestrictAssn.h ImageIter.h BaseImageIter.h ErrorI.h \
  ConstI.h VectorI.h ClosureI.h FunctionI.h ../../include/ClosurePS.h image_errors.h \
  ImgRestrictAssn.c 
DDTempl.o : DDTempl.c DDTempl.h BaseDT.h ../../include/ia.h ../../include/IntPoint.h \
  ../../include/Point.h ../../include/IntPointSet.h ../../include/Set.h ../../include/BasePS.h \
  ../../include/SetStructure.h ../../include/Array.h ../../include/ValueSet.h \
  ClosureDT.h InvariantDT.h FunctionDT.h 
FloatCI.o : FloatCI.c FloatCI.h CoreImage.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/ValueSet.h \
  ../../include/Set.h ../../include/IntPointSet.h ../../include/BasePS.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h Image.h ClosureI.h \
  restrict.h VectorI.h 
FloatConvolutions.o : FloatConvolutions.c 
FloatDDTempl.o : FloatDDTempl.c ../../include/PSIter.h ../../include/BaseIPSIter.h \
  ../../include/BasePS.h ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/FloatPoint.h ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h InvariantDT.h BaseDT.h ../../include/ValueSet.h \
  ClosureDT.h FloatDDTempl.h DDTempl.h FloatDI.h CoreImage.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h Image.h IntDI.h \
  IntImageOps.h FloatImageOps.h FloatConvolutions.h VectorI.h ImageIter.h BaseImageIter.h \
  FloatConvolutions.c 
FloatDI.o : FloatDI.c FloatDI.h CoreImage.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/ValueSet.h \
  ../../include/Set.h ../../include/IntPointSet.h ../../include/BasePS.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h Image.h IntDI.h \
  IntImageOps.h FloatImageOps.h VectorI.h ConstI.h ClosureI.h ErrorI.h ImageIter.h \
  BaseImageIter.h ../../include/PSIter.h ../../include/BaseIPSIter.h restrict.h \
  FloatImageOps.c 
FloatImageOps.o : FloatImageOps.c 
FunctionDT.o : FunctionDT.c FunctionDT.h ../../include/ia.h BaseDT.h ../../include/IntPoint.h \
  ../../include/Point.h ../../include/IntPointSet.h ../../include/Set.h ../../include/BasePS.h \
  ../../include/SetStructure.h ../../include/Array.h ../../include/ValueSet.h \
  ../../include/PSIter.h ../../include/BaseIPSIter.h ../../include/FloatPointSet.h \
  ../../include/FloatPoint.h 
FunctionI.o : FunctionI.c FunctionI.h ../../include/ia.h BaseI.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  ../../include/ValueSet.h ../../include/PSIter.h ../../include/BaseIPSIter.h 
ImageIter.o : ImageIter.c ImageIter.h BaseImageIter.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/ia.h ../../include/FloatPoint.h CoreImage.h \
  ../../include/ValueSet.h ../../include/Set.h ../../include/IntPointSet.h ../../include/BasePS.h \
  ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  BaseI.h Pixel.h AuxImage.h ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h 
ImgRestrictAssn.o : ImgRestrictAssn.c 
IntConvolutions.o : IntConvolutions.c 
IntDDTempl.o : IntDDTempl.c ../../include/PSIter.h ../../include/BaseIPSIter.h \
  ../../include/BasePS.h ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/FloatPoint.h ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h InvariantDT.h BaseDT.h ../../include/ValueSet.h \
  ClosureDT.h IntDDTempl.h DDTempl.h IntDI.h CoreImage.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h Image.h IntImageOps.h \
  IntConvolutions.h VectorI.h ImageIter.h BaseImageIter.h IntConvolutions.c 
IntDI.o : IntDI.c ../../include/Closure.h ../../include/PSIter.h ../../include/BaseIPSIter.h \
  ../../include/BasePS.h ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/FloatPoint.h ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h IntDI.h CoreImage.h ../../include/ValueSet.h \
  BaseI.h Pixel.h AuxImage.h ../../include/Bit.h ImgRestrictAssn.h Image.h IntImageOps.h \
  VectorI.h ConstI.h ClosureI.h ErrorI.h ImageIter.h BaseImageIter.h restrict.h \
  IntImageOps.c 
IntImageOps.o : IntImageOps.c 
InvariantDT.o : InvariantDT.c InvariantDT.h BaseDT.h ../../include/ia.h ../../include/IntPoint.h \
  ../../include/Point.h ../../include/IntPointSet.h ../../include/Set.h ../../include/BasePS.h \
  ../../include/SetStructure.h ../../include/Array.h ../../include/ValueSet.h 
InvariantNbh.o : InvariantNbh.c InvariantNbh.h BaseNbh.h ../../include/ia.h \
  ../../include/IntPoint.h ../../include/Point.h ../../include/IntPointSet.h ../../include/Set.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/ValueSet.h 
Neighborhood.o : Neighborhood.c Image.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/IntPoint.h ../../include/ia.h ../../include/Point.h ../../include/BasePS.h \
  ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  ../../include/FloatPoint.h BitDI.h ../../include/Bit.h CoreImage.h ../../include/ValueSet.h \
  BaseI.h Pixel.h AuxImage.h ../../include/Closure.h ImgRestrictAssn.h BitImageOps.h \
  UcharDI.h ../../include/ImageDisplayProtocol.h UcharImageOps.h IntDI.h IntImageOps.h \
  FloatDI.h FloatImageOps.h ComplexDI.h ComplexImageOps.h FloatCI.h ImageIter.h \
  BaseImageIter.h VectorI.h ../../include/PSIter.h ../../include/BaseIPSIter.h \
  Neighborhood.h BaseNbh.h NeighborhoodOps.h InvariantNbh.h NeighborhoodOps.c 
NeighborhoodOps.o : NeighborhoodOps.c 
OtherImageIter.o : OtherImageIter.c OtherImageIter.h BaseImageIter.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/ia.h ../../include/FloatPoint.h ../../include/PSIter.h \
  ../../include/BaseIPSIter.h ../../include/BasePS.h ../../include/IntPointSet.h \
  ../../include/Set.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  BaseI.h ../../include/ValueSet.h 
UcharConvolutions.o : UcharConvolutions.c 
UcharDDTempl.o : UcharDDTempl.c ../../include/PSIter.h ../../include/BaseIPSIter.h \
  ../../include/BasePS.h ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/FloatPoint.h ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h InvariantDT.h BaseDT.h ../../include/ValueSet.h \
  ClosureDT.h UcharDDTempl.h DDTempl.h UcharDI.h CoreImage.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h ../../include/ImageDisplayProtocol.h \
  Image.h UcharImageOps.h UcharConvolutions.h VectorI.h ImageIter.h BaseImageIter.h \
  UcharConvolutions.c 
UcharDI.o : UcharDI.c VectorI.h BaseI.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  ../../include/ValueSet.h ../../include/PSIter.h ../../include/BaseIPSIter.h \
  UcharDI.h CoreImage.h Pixel.h AuxImage.h ../../include/Bit.h ../../include/Closure.h \
  ImgRestrictAssn.h ../../include/ImageDisplayProtocol.h Image.h UcharImageOps.h \
  ConstI.h ClosureI.h FunctionI.h ErrorI.h ImageIter.h BaseImageIter.h restrict.h \
  UcharImageOps.c 
UcharImageOps.o : UcharImageOps.c 
VectorI.o : VectorI.c VectorI.h BaseI.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  ../../include/ValueSet.h ../../include/PSIter.h ../../include/BaseIPSIter.h \
  VectorImageIter.h BaseImageIter.h 
VectorImageIter.o : VectorImageIter.c VectorImageIter.h ../../include/PSIter.h \
  ../../include/BaseIPSIter.h ../../include/BasePS.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/IntPointSet.h \
  ../../include/Set.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  BaseImageIter.h VectorI.h BaseI.h ../../include/ValueSet.h 
chi_contains.o : chi_contains.c CoreImage.h ../../include/ia.h ../../include/Point.h \
  ../../include/IntPoint.h ../../include/FloatPoint.h ../../include/ValueSet.h \
  ../../include/Set.h ../../include/IntPointSet.h ../../include/BasePS.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h BaseI.h Pixel.h AuxImage.h \
  ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h VectorI.h ConstI.h 
closure.o : closure.c CoreImage.h ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/FloatPoint.h ../../include/ValueSet.h ../../include/Set.h ../../include/IntPointSet.h \
  ../../include/BasePS.h ../../include/SetStructure.h ../../include/Array.h ../../include/FloatPointSet.h \
  BaseI.h Pixel.h AuxImage.h ../../include/Bit.h ../../include/Closure.h ImgRestrictAssn.h \
  ImageIter.h BaseImageIter.h BitDI.h Image.h BitImageOps.h UcharDI.h ../../include/ImageDisplayProtocol.h \
  UcharImageOps.h IntDI.h IntImageOps.h FloatDI.h FloatImageOps.h ComplexDI.h \
  ComplexImageOps.h DDTempl.h BaseDT.h ClosureDT.h Neighborhood.h BaseNbh.h NeighborhoodOps.h 
placebos1.o : placebos1.c ../../include/Array.h ../../include/Point.h ../../include/IntPoint.h \
  ../../include/ia.h ../../include/FloatPoint.h ../../include/ValueSet.h ../../include/Bit.h 
placebos2.o : placebos2.c ../../include/Point.h ../../include/IntPoint.h ../../include/ia.h \
  ../../include/FloatPoint.h ../../include/Bit.h ../../include/ClosurePS.h ../../include/BasePS.h \
  ../../include/ValueSet.h ../../include/Set.h ../../include/IntPointSet.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h ../../include/PSIter.h ../../include/BaseIPSIter.h \
  CoreImage.h BaseI.h Pixel.h AuxImage.h ../../include/Closure.h ImgRestrictAssn.h \
  ImageIter.h BaseImageIter.h 
restrict.o : restrict.c ../../include/PSIter.h ../../include/BaseIPSIter.h ../../include/BasePS.h \
  ../../include/ia.h ../../include/Point.h ../../include/IntPoint.h ../../include/FloatPoint.h \
  ../../include/IntPointSet.h ../../include/Set.h ../../include/SetStructure.h \
  ../../include/Array.h ../../include/FloatPointSet.h 
