#
# Makefile fuer Parallel-Kolloq
#

FC       = /opt/fortran90/bin/f90
FCOPENMP = /progsys/kap/guide38/bin/guidef90
FCMPI    = /opt/mpi/bin/mpif90
CC       = /usr/bin/cc
JAVAC    = /opt/java1.2/bin/javac
RM       = /bin/rm -f

FFLAGS   = +O3 +Oreport
LFLAGS   = -Wl,+k -Wl,+vnocompatwarnings


all: skalar autopar openmp mpi pthread ThreadDemo.class

kinds.o: kinds.f90
	$(FC) $(FFLAGS) -c kinds.f90

skalar.o: skalar.f90
	$(FC) $(FFLAGS) -c skalar.f90

skalar: kinds.o skalar.o
	$(FC) kinds.o skalar.o $(LFLAGS) -o skalar

autopar.o: skalar.f90
	$(FC) $(FFLAGS) +Oparallel -c skalar.f90 -o autopar.o

autopar: kinds.o autopar.o
	$(FC) kinds.o autopar.o $(LFLAGS) $(FFLAGS) +Oparallel -o autopar

openmp: kinds.o openmp.o
	$(FCOPENMP) kinds.o openmp.o $(LFLAGS) -o openmp

openmp.o: kinds.f90 openmp.f90
	$(FCOPENMP) $(FFLAGS) -c kinds.f90
	$(FCOPENMP) $(FFLAGS) -c openmp.f90

pthread: pthread.o
	$(CC) pthread.o $(LFLAGS) -lpthread -o pthread	

pthread.o: pthread.c
	$(CC) +O3 -D_POSIX_C_SOURCE=199506L -c pthread.c

ThreadDemo.class: ThreadDemo.java
	$(JAVAC) -O ThreadDemo.java

mpi: kinds.o mpi.o
	$(FCMPI) kinds.o mpi.o $(LFLAGS) -o mpi

mpi.o: mpi.f90
	$(FCMPI) $(FFLAGS) -c mpi.f90

clean:
	-/bin/rm *.o *.mod *.kmo
	-/bin/rm *~ core
	-/bin/rm -rf rii_files G_*
	-/bin/rm skalar mpi openmp autopar pthread ThreadDemo.class