SRCS = complex.c fractal.c image.c io.c
OBJS = $(SRCS:.c=.o)

CC = gcc
CFLAGS = -g

GEOM = 1024x768
SFLAGS = -x $(GEOM)
#SFLAGS = -x 826x620 -e 1x1.29

all: PiC-intro PiC-image PiC-image-io PiC-fractal

.SUFFIXES: .ps .pdf

.c.o:
	$(CC) $(CFLAGS) -c $*.c

.ps.pdf:
#	ps2pdf -g6120x5040 -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode $*.ps
	gs -sDEVICE=pdfwrite -sOutputFile=$*.pdf -g6120x5040 -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -q -dNOPAUSE -dBATCH $*.ps

PiC-intro: $(OBJS) PiC-intro.o
	$(CC) $(OBJS) PiC-intro.o -o PiC-intro

PiC-image: $(OBJS) PiC-image.o
	$(CC) $(OBJS) PiC-image.o -o PiC-image

PiC-image-io: $(OBJS) PiC-image-io.o
	$(CC) $(OBJS) PiC-image-io.o -o PiC-image-io

PiC-fractal: $(OBJS) PiC-fractal.o
	$(CC) $(OBJS) PiC-fractal.o -o PiC-fractal

slides1:
	./slide-convert $(SFLAGS) -d out slides0[123]-*.ps

slides2:
	./slide-convert $(SFLAGS) -d out slides0[4-9]-*.ps

slides3:
	./slide-convert $(SFLAGS) -d out slides1[01]-*.ps

xv:
	xv -geometry $(GEOM) out/*.png

class1.ps: slides01-intro.ps slides02-lang.ps slides03-compile.ps
	cat slides01-intro.ps slides02-lang.ps slides03-compile.ps > class1.ps

class2.ps: slides04-pointers.ps slides05-image.ps slides06-io.ps slides07-frintro.ps slides08-complex.ps slides09-fractal.ps
	cat slides04-pointers.ps slides05-image.ps slides06-io.ps slides07-frintro.ps slides08-complex.ps slides09-fractal.ps > class2.ps

class3.ps: slides10-runtime.ps slides11-libc.ps
	cat slides10-runtime.ps slides11-libc.ps > class3.ps

log:
	makes/config-dist

dist:
	makes/config-dist
	(cd ..; rm -f slides.tar.gz; tar cf - slides | gzip > slides.tar.gz)

clean:
	rm -f *~ *.o core core.* *.ppm
	rm -f PiC-intro PiC-image PiC-image-io PiC-fractal