CXXFLAGS = -g  -I${HOME}/svn `pkg-config --cflags cairo` -I/usr/include/lib -I/usr/include/libxml2 -DGL_GLEXT_PROTOTYPES `pkg-config --cflags cairo libxml-2.0`

ifeq ($(MAC), 1)
  CXXFLAGS += -m32
endif
#CXXFLAGS = -O3 -I${HOME}/svn `pkg-config --cflags cairo` -I/usr/include/libxml2

LDFLAGS = `pkg-config --libs levset`  -lpthread `pkg-config --libs cairo`  -lxml2 -L/usr/X11R6/lib

ifeq ($(WIN32), 1)
 LDFLAGS += -lopengl32 -lglut32 -lfreeglutdll -lglu32 -lwsock32 -lz #libxml2 needs wsock32
else
 LDFLAGS += -lGL -lGLU -lglut
endif

SRCS=polygonclipper.cc perlin.cc slimyshape.cc slimyshapeevolver.cc 
LIBOBJS=${SRCS:.cc=.o} gpc/gpc.o
NAME=meldshape-0.1

all: meldshape

%.o: %.cc
	${CXX} -c -MD ${CXXFLAGS} $< -o $@

%.o: %.c
	gcc -c -MD ${CXXFLAGS} $< -o $@


libslimyshape.a: ${LIBOBJS}
	ar cr $@ ${LIBOBJS}

meldshape: meldshape.cc libslimyshape.a
	g++ meldshape.cc -L./ -lslimyshape ${CXXFLAGS} -o $@  ${LDFLAGS}

animation: animation.cc libslimyshape.a
	g++ animation.cc -L./ -lslimyshape ${CXXFLAGS} -o $@  ${LDFLAGS}

test_perlin_cache: test_perlin_cache.cc libslimyshape.a
	g++ test_perlin_cache.cc -L./ -lslimyshape ${CXXFLAGS} -o test_perlin_cache  ${LDFLAGS}

dist:
	rm -rv /tmp/${NAME} && mkdir -p /tmp/${NAME} /tmp/${NAME}/utigl
	rsync -avz --exclude '*.sh' --exclude meldshape1.cc --exclude '*.d' --exclude copyright . /tmp/meldshape-0.1/.
	cp ${HOME}/svn/utigl/glwindow.h /tmp/${NAME}/utigl/.
	cd /tmp && zip -r ${NAME}.zip ${NAME}
	mv /tmp/meldshape-0.1.zip .

clean: 
	rm -fv meldshape *.o libmeldshape.a libslimyshape.a meldshape-0.1.zip
	find ./ -name \*.o -delete

-include ${SRCS:.cc=.d}
