#
# Makefile for MPY = Message Passing Yorick based on the MPI standard
#
# $Id$

MPY_VERSION=1.1

# ---------------------------------------------------------------------------

# Makefile for mpy
# generated by make.i     Sat May 12 11:00:09 2001

######################################################################
# First section is definitions for Maketmpl

MAKE_TEMPLATE = ./Make-mpy

# Use
# MAKE_TEMPLATE = $(Y_HOME)/Make-mpy
# Y_OTHERS = mpy.i
# PKG_LIBS = -lmpy
# to put the mpy routines into another custom version of Yorick

C_OPTIMIZE = -O
LD_OPTIMIZE = $(C_OPTIMIZE)

CODE_NAME = mpy
CODE_LIBRARY = libmpy.a
NON_SHARABLE = unused
YWRAP_O =

OBJS = mpy.o
PKG_LIBS = -lmpy

Y_INCLUDE = mpy.i
Y_OTHERS = matrix.i fft.i

SYS_LIBS =

CLEAN_UP = mpy

######################################################################
# Second section is targets for new package/code

all:: $(CODE_LIBRARY) $(CODE_NAME) startup

startup::
	cp $(Y_INCLUDE) ../i0

check: all
	echo "see testmp.i for testing procedures"

Y_BINDIR=$(Y_HOME)/bin

install: $(CODE_LIBRARY) $(CODE_NAME)
	cp Make-mpy $(Y_HOME)
	cp $(Y_INCLUDE) $(Y_SITE)/i0
	cp testmp.i $(Y_SITE)/i
	cp mpy $(Y_BINDIR)
	cp libmpy.a $(Y_LIBDIR)
	$(RANLIB) $(Y_LIBDIR)/libmpy.a

uninstall:
	$(RM) $(Y_HOME)/Make-mpy
	cd $(Y_SITE)/i0; $(RM) $(Y_INCLUDE);
	$(RM) $(Y_SITE)/i/testmp.i
	$(RM) $(Y_BINDIR)/mpy
	$(RM) $(Y_LIBDIR)/libmpy.a

distclean:: clean
	$(RM) Make-mpy

MPY_DIR=mpy-$(MPY_VERSION)

dist: distclean
	$(RM) -r $(MPY_DIR) $(MPY_DIR).tar.gz
	mkdir $(MPY_DIR)
	cp README Makefile configure mp*-sh mpy.c mpy.i testmp.i $(MPY_DIR)
	tar cvf $(MPY_DIR).tar $(MPY_DIR)
	$(RM) -r $(MPY_DIR)
	gzip $(MPY_DIR).tar

mpy.o: mpy.c
	$(CC) $(CFLAGS) $(MPI_DEFS) $(MPI_INCLUDE) -c mpy.c

######################################################################

include $(MAKE_TEMPLATE)
