
DESTDIR := 
SITELIB := $(shell python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)[1:]")
DEBUGSRC := "/usr/src/debug"
DEBUGLIB := "/usr/lib/debug"
CC := gcc
CFLAGS := -g -I/usr/include/python2.4 -Wall -Werror -fPIC
LDFLAGS := -shared

VERSION = 0.15

bdevid_LIBS = z
dm_LIBS = dmraid devmapper selinux
dmraid_LIBS = dmraid devmapper

PYFILES=__init__.py maps.py device.py
LIBS = dmmodule.so dmraidmodule.so bdevidmodule.so

all : $(LIBS)

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

%module.so.$(VERSION) : %.o pyhelpers.o
	$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname="$@" -o $@ $^ $(foreach x,$(value $*_LIBS),-l$(x))

%.so : %.so.$(VERSION)
	@echo -n
	@#ln -vsf $< $@

dmraidtest : dmraidtest.c
	$(CC) $(CFLAGS) -o $@ $^ -ldmraid -ldevmapper

pyblock-$(VERSION).tar.bz2 : 
	@rm -rvf /tmp/$@
	@rm -vf $(PWD)/../pyblock-$(VERSION)
	ln -sf $(PWD) $(PWD)/../pyblock-$(VERSION)
	tar cjhf /tmp/$@ --exclude playpen $(PWD)/../pyblock-$(VERSION)
	mv /tmp/$@ $(PWD)/

.PHONY : pyblock-$(VERSION).tar.bz2
archive : clean pyblock-$(VERSION).tar.bz2

flat_install: all
	@install -v -m 0755 -d ${DESTDIR}/
	@for x in $(PYFILES) ; do \
		install -v -m 0755 $$x ${DESTDIR}/$$x ; \
	done
	@for x in $(LIBS) ; do \
		install -v -m 0755 $$x.$(VERSION) ${DESTDIR}/$$x ; \
	done

install_debug: clean all
	install -m 0755 -d "${DESTDIR}/RHupdates/block"
	install -m 0755 -d "${DESTDIR}/RHupdates/${DEBUGLIB}/${SITELIB}/block"
	install -m 0755 -d "${DESTDIR}/RHupdates/usr/src/debug/pyblock-${VERSION}"
	@for x in ${PYFILES} ; do \
		install -m 0755 $$x ${DESTDIR}/RHupdates/block/$$x ; \
	done
	@for x in "*.[ch]" ; do \
		install -m 0644 $$x \
		  "${DESTDIR}/RHupdates/usr/src/debug/pyblock-${VERSION}/" ; \
	done
	@for x in ${LIBS} ; do \
		echo /usr/lib/rpm/debugedit -b "${PWD}" \
			-d /usr/src/debug \
			"$$x.${VERSION}" ; \
		/usr/lib/rpm/debugedit -b "${PWD}" \
			-d /usr/src/debug \
			"$$x.${VERSION}" ; \
		echo eu-strip -f \
		  "${DESTDIR}/RHupdates/${DEBUGLIB}/${SITELIB}/block/$$x.debug"\
		  "$$x.${VERSION}" ; \
		echo install -m 0755 $$x.${VERSION} \
			${DESTDIR}/RHupdates/block/$$x ; \
		install -m 0755 $$x.${VERSION} \
			${DESTDIR}/RHupdates/block/$$x ; \
	done

install : all
	@install -v -m 0755 -d ${DESTDIR}/${SITELIB}/block/
	@for x in ${PYFILES} ; do \
		install -v -m 0755 $$x ${DESTDIR}/${SITELIB}/block/$$x ; \
	done
	@for x in ${LIBS} ; do \
		install -v -m 0755 $$x.${VERSION} \
			${DESTDIR}/${SITELIB}/block/$$x ; \
	done

clean :
	@rm -vf *.py[co] *.so *.so.${VERSION} *.o core* *.pyc *.pyo
	@rm -vf pyblock-*.tar.bz2

.PHONY : clean install
.SECONDARY : ${foreach lib,${LIBS},${lib}.${VERSION}}
