#--
# $Id: Makefile,v 1.15 2005/03/16 23:02:00 thamer Exp $
#--

include build/config.mk

SOVERSION=0
SONAME=libitl.so.$(SOVERSION)
FULLNAME=$(SONAME).0.6

COMPONENTS = hijri prayertime

all: configure build/config.mk build/libitl.so

static: configure build/config.mk build/static/libitl.a

configure: autogen.sh
	@echo "Please run ./autogen.sh..."
	@false

build/config.mk: configure
	@echo "Please run ./configure..."
	@false

build/libitl.so: components
	$(LD) build/*.o $(LDFLAGS) -shared -lm -lc -soname=$(SONAME) -o build/$(FULLNAME)
	(cd build/ && ln -sf $(FULLNAME) $(SONAME))
	(cd build/ && ln -sf $(FULLNAME) libitl.so)

debinstall: components
	$(CC) build/*.o -shared -lm -lc -D_REENTRANT -Wl,-z,defs,-soname,$(SONAME) \
	-o build/$(FULLNAME)
	(cd build/ && ln -sf $(FULLNAME) $(SONAME))
	(cd build/ && ln -sf $(FULLNAME) libitl.so)
	strip --strip-unneeded build/$(FULLNAME)
	rm -f build/*.o build/ITL_*
	@echo "==> Installing libitl library..."
	test -d $(PREFIX)/lib \
	|| mkdir -p $(PREFIX)/lib \
	|| exit 1;
	cp build/$(FULLNAME) $(PREFIX)/lib
	cp -P build/$(SONAME) $(PREFIX)/lib
	cp -P build/libitl.so $(PREFIX)/lib
	@echo "==> Installing ITL components..."
	for i in $(COMPONENTS); do \
	  $(MAKE) -C $$i install || exit 1; \
	done
	rm -f config.log config.status

build/static/libitl.a: static-components
	$(AR) rcs build/libitl.a build/*.o

install: build/libitl.so
	@echo "==> Installing libitl library..."
	test -d $(PREFIX)/lib/itl \
	|| mkdir -p $(PREFIX)/lib/itl \
	|| exit 1;
	cp build/$(FULLNAME) $(PREFIX)/lib/itl
	cp -P build/$(SONAME) $(PREFIX)/lib/itl
	cp -P build/libitl.so $(PREFIX)/lib/itl
	@echo "==> Installing ITL components..."
	for i in $(COMPONENTS); do \
	  $(MAKE) -C $$i install || exit 1; \
	done

uninstall:
	@echo "==> Uninstall ITL library..."
	rm -rf $(PREFIX)/lib/itl
	@echo "==> Removing ITL include dir..."
	rm -rf $(PREFIX)/include/itl
	@echo "==> Uninstalling ITL components..."
	for i in $(COMPONENTS); do \
	  $(MAKE) -C $$i uninstall || exit 1; \
	done

components:
	for i in $(COMPONENTS); do \
	  $(MAKE) CFLAGS+="-fPIC" -C $$i libitl || exit 1; \
	done

static-components:
	for i in $(COMPONENTS); do \
	  $(MAKE) -C $$i libitl || exit 1; \
	done

install-components: components
	@echo "==> Installing ITL components..."
	for i in $(COMPONENTS); do \
	  $(MAKE) -C $$i install || exit 1; \
	done

uninstall-components:
	@echo "==> Uninstalling ITL components..."
	for i in $(COMPONENTS); do \
	  $(MAKE) -C $$i uninstall || exit 1; \
	done

swig: build/libitl.so
	$(MAKE) -C "swig"

clean:
	@echo "==> Cleaning up ITL build..."
	rm -f build/*.a build/*.so build/*.so.*
	rm -f build/*.o build/ITL_*
	$(MAKE) -C "swig" clean
	for i in $(COMPONENTS); do \
	  $(MAKE) -C $$i clean || exit 1; \
	done

distclean: autogen.sh clean
	fakeroot $(MAKE) -k -f debian/rules clean
	./autogen.sh clean
