PYTHON ?= python
SO ?= .so
PYTHONINCLUDE ?= -I/usr/include/python1.5
LIBCURSES ?= -lcurses
CC ?= cc
CFLAGS ?= -Wall
CSHARED ?= -fPIC -shared

PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
LIBDIR ?= $(PREFIX)/lib/clirc

RM ?= rm
MKDIR ?= mkdir
INSTALL ?= install
AWK ?= awk
CP ?= cp

MODULES = b64 buffer channel config crc32 crypt curseseditline cursesmodebar \
	cursesscreen curseswindow dns event idea ircnet ircserv linelist main \
	reloadable rnd runloop user

PYS = $(addsuffix .py,$(MODULES))
PYCS = $(addsuffix .pyc,$(MODULES))

all:	resizetermmodule$(SO) compile

resizetermmodule$(SO):	resizetermmodule.c
	$(CC) $(PYTHONINCLUDE) $(LIBCURSES) $(CSHARED) $(CFLAGS) -o $@ $<

compile:
	$(PYTHON) -c 'import compileall; compileall.compile_dir(".")'

install:
	$(INSTALL) -m 755 -d $(BINDIR) $(DATADIR)
	$(INSTALL) -m 755 clirc $(BINDIR)
	$(INSTALL) -m 755 resizetermmodule$(SO) $(LIBDIR)
	$(INSTALL) -m 644 $(PYCS) $(LIBDIR)

uninstall:
	$(RM) $(BINDIR)/clirc
	$(RM) $(LIBDIR)/resizetermmodule$(SO)
	$(RM) $(addprefix $(LIBDIR)/,$(PYCS))

clean:
	$(RM) resizetermmodule$(SO)
	$(RM) $(PYCS)

distclean:	clean

maintainer-clean:	distclean

VERSION := $(shell $(AWK) '/^version = / { print substr($$3,2,length($$3)-2) }' < main.py)
dist:
	$(MKDIR) clirc-$(VERSION)
	$(CP) Makefile clirc resizetermmodule.c $(PYS) clirc-$(VERSION)
	tar zcf clirc-$(VERSION).tar.gz clirc-$(VERSION)
	$(RM) -r clirc-$(VERSION)

web:	dist
	scp clirc-$(VERSION).tar.gz kalahari:/html/s2/clirc
	ssh kalahari "cd /html/s2/clirc; rm clirc.tar.gz; ln -s clirc-$(VERSION).tar.gz clirc.tar.gz"

kalahari:	compile
	scp $(PYCS) kalahari:/usr/local/lib/clirc
