.SUFFIXES:      .c .o .a

AR          = ar crl
RANLIB      = ranlib

INSTALLDIR	= $(HOME)/ParLib.v2.2
#INSTALLDIR	= $(HOME)


default: all
all: setvars libparlib.a libparlibf.a

#
# For INM's HP-cluster
#
   CC 			= mpicc -restrict -no-ansi-alias
   LIBS			= -lmpich
#   LIBPATH		= -L/opt/mpich-gm/lib
#   INCPATH		= -I/opt/mpich-gm/include
   DEFINES		= -DFORTRANUNDERSCORE

setvars:

libparlib.a: parlib.o plutils.o bexchange.o transpose.o
	$(AR) $@ $?
	$(RANLIB) $@

libparlibf.a: parlibf.o bexchangef.o transposef.o
	$(AR) $@ $?
	$(RANLIB) $@

.c.o:
		$(CC) $(INCPATH) -c $(DEFINES) $<

clean:
		rm -f *.o *.a

rebuild: clean all

install: libparlib.a libparlibf.a
	@if !(test -d $(INSTALLDIR)) ; then \
	   echo Creating directory $(INSTALLDIR)...; \
	   mkdir $(INSTALLDIR) ; \
	fi
	@if !(test -d $(INSTALLDIR)/lib) ; then \
	   echo Creating directory $(INSTALLDIR)/lib...; \
	   mkdir $(INSTALLDIR)/lib ; \
	fi
	cp $? $(INSTALLDIR)/lib
	@if !(test -d $(INSTALLDIR)/include) ; then \
	   echo Creating directory $(INSTALLDIR)/include...; \
	   mkdir $(INSTALLDIR)/include ; \
	fi
	cp -r parlib.h parlibf.h $(INSTALLDIR)/include
	@if !(test -d $(INSTALLDIR)/man) ; then \
	   echo Creating directory $(INSTALLDIR)/man...; \
	   mkdir $(INSTALLDIR)/man ; \
	fi
	@if !(test -d $(INSTALLDIR)/man/man3) ; then \
	   echo Creating directory $(INSTALLDIR)/man/man3...; \
	   mkdir $(INSTALLDIR)/man/man3 ; \
	fi
	cp -r man/* $(INSTALLDIR)/man/man3
	ln -s $(INSTALLDIR)/man/man3/P_BExchange_init.3 \
      $(INSTALLDIR)/man/man3/P_BExchange_start.3
	ln -s $(INSTALLDIR)/man/man3/P_BExchange_init.3 \
      $(INSTALLDIR)/man/man3/P_BExchange_end.3
	ln -s $(INSTALLDIR)/man/man3/P_BExchange_init.3 \
      $(INSTALLDIR)/man/man3/P_BExchange_free.3
	ln -s $(INSTALLDIR)/man/man3/P_Transpose_init.3 \
      $(INSTALLDIR)/man/man3/P_Transpose_start.3
	ln -s $(INSTALLDIR)/man/man3/P_Transpose_init.3 \
      $(INSTALLDIR)/man/man3/P_Transpose_end.3
	ln -s $(INSTALLDIR)/man/man3/P_Transpose_init.3 \
      $(INSTALLDIR)/man/man3/P_Transpose_free.3

plutils.o: plutils.h
parlib.o: parlib.h plutils.h
parlib.o: parlib.h plutils.h
bexchange.o: parlib.h plutils.h
bexchangef.o: parlib.h plutils.h
transpose.o: parlib.h plutils.h
transposef.o: parlib.h plutils.h