#
#  (C) 2004 by Argonne National Laboratory.
#      See COPYRIGHT in top-level directory.
#

##### User configurable options #####

top_srcdir           = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/src/collchk

CC                   = gcc
CC_SHL               = @CC_SHL@
CLINKER              = gcc
MPI_CC               = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/bin/mpicc
MPI_CLINKER          = $(MPI_CC)
AR                   = ar
ARFLAGS              = cr
RANLIB               = ranlib
MAKE                 = make --no-print-directory
MPI_INC              = 
MPI_LIBS             = 
INCLUDE_DIR          = -I.. -I${top_srcdir}/include \
                       -I${includebuild_dir} \
                       -I../../.. -I${top_srcdir}/../../include \
                       $(MPI_INC)
COLLCHK_LIBNAME      = mpe_collchk
CFLAGS               = 
MPE_LIBDIR           = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/lib
LIB_PATH             = $(MPI_LIBS)
LDFLAGS              = 
MPE_BUILD_FORTRAN2C  = @MPE_BUILD_FORTRAN2C@

### End User configurable options ###
SHELL = /bin/sh
RM    = rm
CP    = cp

VPATH=.:$(srcdir)

# Installation directories
prefix           = /proj/tpfimos/larour/Libraries/linux/mpich2-gnu/
exec_prefix      = ${prefix}
bindir           = ${exec_prefix}/bin
includedir       = ${prefix}/include
libdir           = ${exec_prefix}/lib
# Build directories
includebuild_dir = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/include
libbuild_dir     = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/lib
binbuild_dir     = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/bin
srcdir           = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/src/collchk/src

EXECS            =

# GETNAME_DEFS are needed by mpehname.c
CC_FLAGS         = $(CFLAGS) $(INCLUDE_DIR) $(MPE_COPTS)
CC_LDFLAGS       = $(LDFLAGS) $(CFLAGS) $(MPE_LDOPTS)


UTIL_SRC     = add_fh.c get_fh.c begin.c err_han.c exscan.c is_init.c \
               check_buff.c check_dims.c check_graph.c check_size.c \
               same_amode.c same_call.c same_dtype.c same_high_low.c \
               same_int.c same_local_leader.c same_op.c same_root.c \
               same_tag.c same_datarep.c same_whence.c \
               add_win.c get_win.c
UTIL_OBJ     = $(UTIL_SRC:.c=.o)

MPI_CORE_SRC = allgather.c allgatherv.c allreduce.c alltoall.c alltoallv.c \
               alltoallw.c barrier.c bcast.c cart_create.c cart_map.c \
               gather.c gatherv.c graph_create.c graph_map.c init.c \
               intercomm_create.c intercomm_merge.c reduce.c reduce_scatter.c \
               scan.c scatter.c scatterv.c finalize.c
MPI_CORE_OBJ = $(MPI_CORE_SRC:.c=.o)

MPI_IO_SRC   = file_open.c file_preallocate.c file_read_all_begin.c \
               file_read_all.c file_read_all_end.c file_read_at_all_begin.c \
               file_read_at_all.c file_read_at_all_end.c \
               file_read_ordered_begin.c file_read_ordered.c \
               file_read_ordered_end.c file_seek_shared.c \
               file_set_atomicity.c file_set_size.c \
               file_set_view.c file_write_all_begin.c \
               file_write_all.c file_write_all_end.c \
               file_write_at_all_begin.c file_write_at_all.c \
               file_write_at_all_end.c file_write_ordered_begin.c \
               file_write_ordered.c file_write_ordered_end.c
MPI_IO_OBJ   = $(MPI_IO_SRC:.c=.o)

MPI_COMM_SRC = comm_accept.c comm_connect.c comm_create.c comm_disconnect.c \
               comm_dup.c comm_spawn.c comm_spawn_multiple.c comm_split.c \
               win_create.c win_fence.c
MPI_COMM_OBJ = $(MPI_COMM_SRC:.c=.o)


.SUFFIXES: .c .o .lo .a 

.c.o:
	$(MPI_CC) $(CC_FLAGS) -c $<

default: clean
	$(MAKE) ${libbuild_dir}/lib$(COLLCHK_LIBNAME).a

${libbuild_dir}/lib$(COLLCHK_LIBNAME).a: $(UTIL_OBJ) $(MPI_CORE_OBJ)
	@$(MAKE) $(MPI_IO_OBJ)
	@$(MAKE) $(MPI_COMM_OBJ)
	$(AR) $(ARFLAGS) $@ *.o
	$(RANLIB) $@

# Remove the old libraries before rebuilding (in case they came from another
# architecture or are otherwise damaged)
rmlib:
	@-$(RM) -f ${libbuild_dir}/lib$(COLLCHK_LIBNAME).a

rmprog:

clean: rmprog
	@-$(RM) -f *.o ${srcdir}/*.o *~ $(EXECS) PI*

distclean: clean 
	@-$(RM) -f Makefile
