include ../local.mk

INC_DIR = ../include
CCI = $(CC) -I$(INC_DIR)
# CC = gcc -Wall -I$(INC_DIR)

OBJS = mpi-common.o \
       mpi-datatype.o \
       mpi-status.o \
       mpi-process.o \
       mpi-communicationRecord.o \
       mpi-nonblocking.o \
       mpi-main.o \
       mpi-sym.o \
       mpi-op.o \
       mpi-collective.o \
       mpi-blocking.o

../lib/libmpi-spin.a : Makefile $(OBJS)
	if [ ! -d ../lib ]; then mkdir ../lib; fi
	rm -f ../lib/libmpi-spin.a
	ar -rv ../lib/libmpi-spin.a $(OBJS)

mpi-common.o: Makefile \
              $(INC_DIR)/spin-decls.h \
              $(INC_DIR)/mpi-common.h \
              $(INC_DIR)/mpi-status.h \
              $(INC_DIR)/mpi-process.h \
              $(INC_DIR)/mpi-nonblocking.h \
              mpi-common.c
	$(CCI) -c mpi-common.c

mpi-datatype.o: Makefile \
                $(INC_DIR)/spin-decls.h \
                $(INC_DIR)/mpi-common.h \
                $(INC_DIR)/mpi-datatype.h \
                $(INC_DIR)/mpi-sym.h \
                $(INC_DIR)/mpi-status.h \
                $(INC_DIR)/mpi-communicationRecord.h \
                mpi-datatype.c
	$(CCI) -c mpi-datatype.c

mpi-status.o: Makefile \
              $(INC_DIR)/spin-decls.h \
              $(INC_DIR)/mpi-common.h \
              $(INC_DIR)/mpi-datatype.h \
              $(INC_DIR)/mpi-status.h \
              mpi-status.c
	$(CCI) -c mpi-status.c

mpi-process.o: Makefile \
               $(INC_DIR)/spin-decls.h \
               $(INC_DIR)/mpi-common.h \
               $(INC_DIR)/mpi-datatype.h \
               $(INC_DIR)/mpi-process.h \
               $(INC_DIR)/mpi-status.h \
               $(INC_DIR)/mpi-nonblocking.h \
               mpi-process.c
	$(CCI) -c mpi-process.c

mpi-communicationRecord.o: Makefile \
                           $(INC_DIR)/spin-decls.h \
                           $(INC_DIR)/mpi-common.h \
                           $(INC_DIR)/mpi-communicationRecord.h \
                           $(INC_DIR)/mpi-datatype.h \
                           $(INC_DIR)/mpi-status.h \
                           $(INC_DIR)/mpi-op.h \
                           mpi-communicationRecord.c
	$(CCI) -c mpi-communicationRecord.c

mpi-nonblocking.o: Makefile \
                   $(INC_DIR)/spin-decls.h \
                   $(INC_DIR)/mpi-common.h \
                   $(INC_DIR)/mpi-nonblocking.h \
                   $(INC_DIR)/mpi-communicationRecord.h \
                   $(INC_DIR)/mpi-datatype.h \
                   $(INC_DIR)/mpi-status.h \
                   $(INC_DIR)/mpi-process.h \
                   mpi-nonblocking.c
	$(CCI) -c mpi-nonblocking.c

mpi-main.o: Makefile \
            $(INC_DIR)/spin-decls.h \
            $(INC_DIR)/mpi-common.h \
            $(INC_DIR)/mpi-nonblocking.h \
            $(INC_DIR)/mpi-communicationRecord.h \
            $(INC_DIR)/mpi-datatype.h \
            $(INC_DIR)/mpi-status.h \
            $(INC_DIR)/mpi-process.h \
            $(INC_DIR)/mpi-sym.h \
            $(INC_DIR)/mpi-op.h \
            mpi-main.c
	$(CCI) -c mpi-main.c

mpi-sym.o: Makefile \
           $(INC_DIR)/spin-decls.h \
           $(INC_DIR)/mpi-common.h \
           $(INC_DIR)/mpi-sym.h \
           mpi-sym.c
	$(CCI) -c mpi-sym.c

mpi-op.o: Makefile \
        $(INC_DIR)/spin-decls.h \
	$(INC_DIR)/mpi-common.h \
	$(INC_DIR)/mpi-sym.h \
	$(INC_DIR)/mpi-op.h \
	mpi-op.c
	$(CCI) -c mpi-op.c

mpi-collective.o: Makefile \
                  $(INC_DIR)/spin-decls.h \
                  $(INC_DIR)/mpi-common.h \
                  $(INC_DIR)/mpi-datatype.h \
                  $(INC_DIR)/mpi-op.h \
                  $(INC_DIR)/mpi-process.h \
                  $(INC_DIR)/mpi-status.h \
                  $(INC_DIR)/mpi-communicationRecord.h \
                  $(INC_DIR)/mpi-collective.h \
                  mpi-collective.c
	$(CCI) -c mpi-collective.c

mpi-blocking.o: Makefile \
                $(INC_DIR)/spin-decls.h \
                $(INC_DIR)/mpi-common.h \
                $(INC_DIR)/mpi-status.h \
                $(INC_DIR)/mpi-datatype.h \
                $(INC_DIR)/mpi-process.h \
                $(INC_DIR)/mpi-communicationRecord.h \
                $(INC_DIR)/mpi-op.h \
                $(INC_DIR)/mpi-blocking.h \
                mpi-blocking.c
	$(CCI) -c mpi-blocking.c


clean:
	-rm -f *.o ../lib/libmpi-spin.a ../lib/*~ *~
	if [ -d ../lib ]; then rmdir ../lib; fi
