# Unix Makefile for Python interface to GDChart
# For Win32 see Makefile.w32
#
# Change the following as appropriate:
#
# HAVE_JPEG    Set to 0 to disable JPEG support.
# PY_INCLUDE  Include path for the Python header files.
# LIB_DIRS    Lib path for jpeg-6b, libpng, and zlib.
# GCC         The C compiler.  Must be some flavor of gcc.
# CFLAGS      Compiler options.
# LD          Command to make a shared library.
# SO          Extension for shared libs.

HAVE_JPEG = 1
PY_INCLUDE = -I/usr/local/include/python2.0
LIB_DIRS = -L/usr/local/lib -L/usr/lib
GCC = gcc
CFLAGS = -Wall -fpic -O2

# Linux
LD = $(GCC) -shared
SO = .so

# Solaris
#LD = ld -G
#SO = .so

# HP-UX
#LD = ld -b
#SO = .sl

# Shouldn't need to touch anything below this point.

GD = gd-1.8.4
LIBGD = $(GD)/libgd.a

GDCHART = gdchart0.10.1dev
LIBGDCHART = $(GDCHART)/libgdchart.a

DEFS =
ifeq ($(HAVE_JPEG),1)
    DEFS += -DHAVE_JPEG
    LIBJPEG = -ljpeg
endif

CFLAGS += -I$(GDCHART) $(PY_INCLUDE) $(DEFS)
LDFLAGS = -L$(GDCHART) -L$(GD) $(LIB_DIRS)
LDLIBS = -lgdchart -lgd -lpng -lz $(LIBJPEG)

TARGET = gdchart$(SO)
PY_SRC = gdc_py.c
PY_OBJ = $(PY_SRC:.c=.o)

all: $(TARGET)

$(TARGET): $(LIBGD) $(LIBGDCHART) $(PY_OBJ)
	$(LD) $(PY_OBJ) $(LDFLAGS) $(LDLIBS) -o $@

$(PY_OBJ): $(PY_SRC)
	$(GCC) -c $(CFLAGS) $<

$(LIBGD):
	make -C $(GD) libgd.a HAVE_JPEG=$(HAVE_JPEG)

$(LIBGDCHART):
	make -C $(GDCHART) libgdchart.a HAVE_JPEG=$(HAVE_JPEG)

clean:
	-make -C $(GD) clean
	-make -C $(GDCHART) clean
	-rm -f $(TARGET) $(PY_OBJ)
