SHELL=/bin/tcsh
AR = ar
CC = cc
#     CFLAGS = -n32 -g -DDEBUG
#SIM=-DMPISIM
SIM=
DEBUG=0
#DEBUG=1
LOCK=0
#LOCK=1
# GC=0
GC=1
#MBUFFER=0
MBUFFER=1
GC_MIN=5
MY_DEFINES= -D_DEBUG_=$(DEBUG) -D_LOCK_=$(LOCK) -D_GC_=$(GC) -D_MBUFFER_=$(MBUFFER) -DUSE_SPROC -DGC_MIN=$(GC_MIN) $(SIM)
CFLAGS = -O3 $(MY_DEFINES)
Wait_CFLAGS = -O3 $(MY_DEFINES)
#*********************************************************************
MPI_HOME = /fs/psl/kshen/thrMPI/runtime
INCL_DIRS = -I$(MPI_HOME)/include -I$(MPI_HOME)/src/include
LIB_DIRS = $(MPI_HOME)/lib

#*********************************************************************
TARGET = libthrMPI.new.a
IND_SRC = context/barrier.c coll/bcast.c utils/tqueue.c \
	utils/mbuffer.c utils/utils.c utils/mqueue.c \
	coll/mpi_bcast.c context/comm.c context/group.c pt2pt/sr.c \
	MPImain.c utils/texit.c coll/reduce.c coll/mpi_reduce.c \
	utils/lock.c sim/sim.c
DEP_SRC_SPROC = context/bar_sproc.c ukey/ukey_sproc.c utils/mutex_sproc.c shmem/shmem_sproc.c \
	utils/twait_sproc.c
DEP_SRC_PTHREAD = context/bar_pthread.c ukey/ukey_pthread.c utils/mutex_pthread.c \
	shmem/shmem_pthread.c utils/twait_pthread.c
DEP_SRC_MYTP = context/bar_mytp.c ukey/ukey_mytp.c utils/mutex_mytp.c \
	shmem/shmem_mytp.c utils/twait_mytp.c
SRC_SPROC = $(DEP_SRC_SPROC) $(IND_SRC) 
OBJ_SPROC = $(SRC_SPROC:.c=.o)
SRC_PTHREAD = $(DEP_SRC_PTHREAD) $(IND_SRC)
OBJ_PTHREAD = $(SRC_PTHREAD:.c=.o)
SRC_MYTP = $(DEP_SRC_MYTP) $(IND_SRC)
OBJ_MYTP = $(SRC_MYTP:.c=.o)

.IGNORE :

all : $(TARGET)

.c.o:
	$(CC) $(CFLAGS) $(INCL_DIRS) -c $*.c -o $@

libthrMPI.new.a : $(OBJ_SPROC)
	$(AR) rcv $@ $(OBJ_SPROC)
	mv $@ $(LIB_DIRS)
	/bin/rm $(OBJ_SPROC)

#*********************************************************************
#    Dependencies

$(OBJ_SPROC) : Makefile include/struct.h include/ukey.h include/anl_shmem.h \
	include/barrier.h include/bcast.h include/comm.h include/mbuffer.h \
	include/mqueue.h include/sync.h include/system.h include/thrsys.h \
	include/tqueue.h include/twait.h include/sim.h

#*********************************************************************
clean:
	/bin/rm -r -f $(OBJ_SPROC) core
