# makefile
# Functions to demonstrate edginess.
#
#   For the article
#   "Singularity Detection in Images Using Dual Local Autocovariance"
#   by  Wojciech Czaja and Mladen Victor Wickerhauser.
#
#   Programmer: M.V.Wickerhauser <victor@math.wustl.edu>
#   Date: 22 July 2001


CC =	gcc
CFLAGS =  -O -g -Wall
LIBS = -lm

SRC =	edginess.c edginess.h tests.c edges.c makefile \
	figure.c finger7.c cmp00007.raw readme.txt

IMGS =	cone.pgm lena.pgm truck.pgm

EDGY =	econe.pgm  efigure.pgm  efinger7.pgm elena.pgm  etruck.pgm

EXECS = edges tests figure finger7

OBJ =	edginess.o


default: tests
	tests

execs: $(EXECS)

all: $(EXECS) $(EDGY)


# Main conversion program dependencies:

edges: edges.c edginess.o
	$(CC) $(CFLAGS)  -o edges edges.c edginess.o $(LIBS)

figure: figure.c
	$(CC) $(CFLAGS)  -o figure figure.c $(LIBS)

finger7: finger7.c
	$(CC) $(CFLAGS)  -o finger7 finger7.c $(LIBS)

tests: tests.c edginess.o
	$(CC) $(CFLAGS)  -o tests tests.c edginess.o $(LIBS)

edginess.o: edginess.c edginess.h 
	$(CC) $(CFLAGS) -c -o edginess.o edginess.c


# Images and edginess:

econe.pgm: cone.pgm edges
	edges < cone.pgm > econe.pgm


efigure.pgm:  figure.pgm  edges
	edges < figure.pgm > efigure.pgm


figure.pgm: figure
	figure > figure.pgm


efinger7.pgm: finger7.pgm edges
	edges < finger7.pgm > efinger7.pgm

finger7.pgm: cmp00007.raw finger7
	finger7 < cmp00007.raw > finger7.pgm


lena elena.pgm: lena.pgm edges
	edges < lena.pgm > elena.pgm


truck etruck.pgm: truck.pgm edges
	edges < truck.pgm > etruck.pgm


# Cleanup and packaging:

zip edginess.zip: $(SRC) $(IMGS)
	zip -ur edginess.zip $(SRC) $(IMGS)

tar edginess.tar: $(SRC) $(IMGS)
	tar cvf edginess.tar $(SRC) $(IMGS)

clean:
	-rm -f *~ test*.pgm

spotless: clean
	-rm -f $(EXECS)  $(EDGY)  $(OBJ)
	-rm -f finger7.pgm figure.pgm
