### makefile for Chicken examples - felix


SC = ../chicken
SFLAGS = -optimize-level 2 -quiet
X11LIBPATH = -L/usr/X11R6/lib -L/usr/X11/lib
CFLAGS = $(X11LIBPATH) `../chicken-config -cflags`
CC = `../chicken-config -cc`
SRCDIR = ..
SFLAGS = -case-insensitive

.PHONY : testit all


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


all : calendar mandelbrot ctclsh chicken-prolog schelog-support.o cube


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

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

ctclsh.o : ctclsh.scm
	$(SC) $< $(SFLAGS) -output-file ctclsh.c
	$(CC) -c ctclsh.c -o $@ $(CFLAGS) `../chicken-config -embedded`

chicken-prolog : chicken-prolog.o prolog.o batch-driver.o support.o partition.o compiler.o optimizer.o c-platform.o c-backend.o easyffi.o
	$(CC) -o $@ $^ $(CFLAGS) `../chicken-config -unsafe -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 $@
partition.o : $(SRCDIR)/partition.c
	$(CC) -c $< `../chicken-config -cflags` -o $@
easyffi.o : $(SRCDIR)/easyffi.c
	$(CC) -c $< `../chicken-config -cflags` -o $@
compiler.o : $(SRCDIR)/compiler.c
	$(CC) -DC_DEFAULT_TARGET_STACK_SIZE=12000 -c $< `../chicken-config -cflags` -o $@
optimizer.o : $(SRCDIR)/optimizer.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 $@

cube : cube.scm
	$(SC) $< -quiet -output-file cube.c
	$(CC) cube.c -lGL -lglut -o $@ `../chicken-config -cflags -libs`

calendar: calendar.scm
	$(SC) $< -quiet $(SFLAGS) -output-file calendar.c
	$(CC) calendar.c $(CFLAGS) -o $@ `../chicken-config -cflags -libs`
