#
# Makefile to build fortran module
LIB = ar cr
NAME=pgf
NAME_MPI=mpi${NAME}
LIBNAME = lib${NAME_MPI}
LD = gcc

ifeq ($(MPI_INST), )
	$(error MPI_INST shoud be defined and point to MPI installation)
endif

all: makemod

ifeq ($(F90), )
	$(error F90 = f90 compiler should be defined)
endif

makemod: mpi_f08_link_constants.f90 pmpi_f08.f90 mpi_f08_compile_constants.f90 \
		 mpi_c_interface_types.f90 mpi_c_interface.f90 mpi_c_interface_cdesc.f90 \
		 mpi_c_interface_glue.f90 mpi_c_interface_nobuf.f90 mpi_f08.f90 \
		 mpi_f08_callbacks.f90 mpi_f08_link_constants.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_c_interface_types.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_f08_types.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_f08_compile_constants.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_c_interface_cdesc.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_f08_link_constants.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_f08_callbacks.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include pmpi_f08.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_f08.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_c_interface_glue.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_c_interface_nobuf.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_c_interface.f90
		${F90} ${MIC} -c -fPIC -I${MPI_INST}/include mpi_f08_link_constants.f90

	rm -f *.o
	mkdir -p include/${NAME} && mv *.mod include/${NAME}

clean:
	-rm -f *.o
	-rm -rf include
