
DESTDIR=
prefix=/usr/local

incdir=$(DESTDIR)$(prefix)/include
libdir=$(DESTDIR)$(prefix)/lib

CC=gcc
WARN=-Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
CFLAGS=-g -O2 $(WARN)

MAJOR=1
MINOR=1.0.0
TARGETS=libpcd.a libpcd.so.$(MINOR)

SRCS=file.c yuv2rgb.c huff.c inter.c
STATIC=static/file.o static/yuv2rgb.o static/huff.o static/inter.o
SHARED=shared/file.o shared/yuv2rgb.o shared/huff.o shared/inter.o

all build: $(TARGETS) 

static/%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

shared/%.o: %.c
	$(CC) $(CFLAGS) -fPIC -c -o $@ $<

libpcd.a: $(STATIC)
	rm -f $@
	ar rc $@ $(STATIC)
	ranlib $@

libpcd.so.$(MINOR): $(SHARED)
	rm -f $@
	$(CC) $(CFLAGS) -shared -Wl,-soname,libpcd.so.$(MAJOR) -o $@ $(SHARED)

install:
	install -d $(libdir)
	install -d $(incdir)
	install -m644 libpcd.a $(libdir)
	install -m755 libpcd.so.$(MINOR) $(libdir)
	ln -s libpcd.so.$(MINOR) $(libdir)/libpcd.so.$(MAJOR)
	ln -s libpcd.so.$(MINOR) $(libdir)/libpcd.so
	install -m644 pcd.h $(incdir)

depend dep:
	gccmakedep -- $(CFLAGS) -- $(SRCS)

clean:
	-rm -f *~ *.bak $(STATIC) $(SHARED)

realclean distclean: clean
	-rm -f libpcd.a libpcd.so.$(MAJOR) libpcd.so.$(MINOR)

#-------------------------------------------------------------------------

checkit: realclean
	dpkg-buildpackage -tc -us -uc -rfakeroot
	lintian ../libpcd*.changes

release: realclean
	dpkg-buildpackage -tc -rfakeroot

port:
	dpkg-buildpackage -b -tc -rfakeroot

#-------------------------------------------------------------------------
# DO NOT DELETE THIS LINE -- make depend depends on it.
