# Downloading and compiling extra libraries
# -----------------------------------------

# $Id$
include Makefile.in

all-local: metis

# Downloading and compiling Tetgen
# ------------------------------
# http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-4.0.tar.gz
# Metis information
DIRPKG=../pkg
SRCDIR=metis-$(metis_VERSION)
PACKAGE=$(DIRPKG)/metis-$(metis_VERSION).tar.gz
SERVER=http://www.netlib.org/linalg/
#//http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD
INSTALL=../..

# FFCS - 14/11/11 - version 4.0.3 is not available from netlib anymore
metis_VERSION=4.0

metis: FAIRE


$(SRCDIR)/FAIT:
	$(MAKE) install
	touch $(SRCDIR)/FAIT

install:$(SRCDIR)/tag-compile
	cd $(SRCDIR)/Programs ;$(MAKE) 
	-mkdir -p ../include/metis
	cp $(SRCDIR)/Lib/*.h ../include/metis


FAIRE: $(SRCDIR)/FAIT 
	$(MAKE) WHERE
	touch FAIRE

Makefile.in: ../../config.status Makefile-metis.in
	../../config.status  --file="Makefile.in:Makefile-metis.in"

$(SRCDIR)/tag-compile: $(SRCDIR)/tags
	cp Makefile.in $(SRCDIR)
	-mkdir -p ../lib/metis
	cd $(SRCDIR)/Lib;make
	-cd $(SRCDIR)/Programs;make 
	touch $(SRCDIR)/tag-compile



WHERE: 
	-if [ -f $(SRCDIR)/FAIT ] ; then \
	echo metis LD -L@DIR@/lib/metis -lmetis  >$(SRCDIR)/$(INSTALL)/lib/WHERE.metis ;\
	echo metis INCLUDE -I@DIR@/include/metis>> $(SRCDIR)/$(INSTALL)/lib/WHERE.metis ;\
	fi




# FFCS: patch is necessary for metis 4.0, but not for 4.0.3
$(SRCDIR)/tags: $(PACKAGE)
	tar xvzf $(PACKAGE)
	patch -p0  <patch-metis
	patch -p0  <metis-4.0_main_return.patch
	mv  $(SRCDIR)/Programs/Makefile $(SRCDIR)/Programs/Makefile-orig
	sed -e 's;BINDIR = ..;BINDIR = ../$(INSTALL)/bin;' \
            -e 's;../libmetis.a;../$(INSTALL)/lib/metis/libmetis.a;' \
            -e 's;-L[.][.];-L../$(INSTALL)/lib/metis;' \
          <$(SRCDIR)/Programs/Makefile-orig \
          >$(SRCDIR)/Programs/Makefile
	mv $(SRCDIR)/Lib/Makefile $(SRCDIR)/Lib/Makefile-orig
	sed   -e 's;../libmetis.a;../$(INSTALL)/lib/metis/libmetis.a;' \
          <$(SRCDIR)/Lib/Makefile-orig \
          >$(SRCDIR)/Lib/Makefile
	touch $(SRCDIR)/tags

$(PACKAGE):
	cd $(DIRPKG);$(WGET)   $(SERVER)/`basename $(PACKAGE)`
clean-local:
	-cd $(SRCDIR) && $(MAKE) realclean  -C $(SRCDIR)
	-rm -rf metis-4.0 config.log
	-rm -rf ../lib/metis ../lib/WHERE.metis
	-rm -rf ../include/metis
	-rm -rf $(SRCDIR)
	-rm FAIRE FAIT 

# FFCS - 23/5/12 - $(SRCDIR)/$(INSTALL) is meaningless if $(SRCDIR) does not exist
clean: clean-local
	-rm ../lib/metis/libmetis.a
	-rm ../lib/include/metis.h
	-rm -rf $(SRCDIR)
	-rm FAIRE FAIT 
