### makefile for Chicken examples - felix


SC = chicken
SFLAGS = -optimize-level 3 -quiet
X11LIBPATH = -L/usr/X11R6/lib -L/usr/X11/lib
CFLAGS = $(X11LIBPATH) `chicken-config -cflags`
CC = gcc
SRCDIR = $(CHICKEN_HOME)/src


.PHONY : testit all


%.o : %.scm
	$(SC) $< $(SFLAGS) -output-file $*.c
	$(CC) $*.c $(CFLAGS) -c -o $@


all : testit mandelbrot ctclsh chicken-prolog schelog-support.o mmcp

testit :
	csi -eval "(cond-expand [unistd] [else (error \"Sorry, no 'unistd' unit available, so 'mmcp' can't be built\")])" -quiet -batch


mandelbrot : mandelbrot.o x11cplot.o
	$(CC) $^ $(CFLAGS) -o $@ `chicken-config -unsafe -libs` -lX11

mmcp : mmcp.o
	$(CC) $< $(CFLAGS) -o $@ `chicken-config -unsafe -libs -extra-libs` 

ctclsh : ctclsh.o tclAppInit.o
	$(CC) $^ $(CFLAGS) -o $@ `chicken-config -unsafe -emb-libs -extra-libs` -ltcl

chicken-prolog : chicken-prolog.o prolog.o batch-driver.o support.o compiler.o c-platform.o c-backend.o
	$(CC) -o $@ $^ $(CFLAGS) `chicken-config -unsafe -libs -extra-libs`

chicken-prolog.o : $(SRCDIR)/chicken.scm $(SRCDIR)/build.scm
	$(SC) $< -quiet -output-file chicken-prolog.c -postlude "(declare (uses prolog))" -include-path $(SRCDIR)
	$(CC) -c chicken-prolog.c $(CFLAGS) -o $@

batch-driver.o : $(SRCDIR)/batch-driver.c
	$(CC) -c $< `chicken-config -cflags` -o $@
support.o : $(SRCDIR)/support.c
	$(CC) -c $< `chicken-config -cflags` -o $@
compiler.o : $(SRCDIR)/compiler.c
	$(CC) -DC_DEFAULT_TARGET_STACK_SIZE=12000 -c $< `chicken-config -cflags` -o $@
c-platform.o : $(SRCDIR)/c-platform.c
	$(CC) -c $< `chicken-config -cflags` -o $@
c-backend.o : $(SRCDIR)/c-backend.c
	$(CC) -c $< `chicken-config -cflags` -o $@
