### End User configurable options ###
SHELL = /bin/sh

# Installation directories ( not being used here )
prefix           = /proj/tpfimos/larour/Libraries/linux/mpich2-gnu/
exec_prefix      = ${prefix}
bindir           = ${exec_prefix}/bin
includedir       = ${prefix}/include
libdir           = ${exec_prefix}/lib

# Build directories
libbuild_dir     = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/src/slog2sdk/trace_rlog/lib
binbuild_dir     = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/src/slog2sdk/trace_rlog/bin
includebuild_dir = @includebuild_dir@
top_srcdir       = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/src/slog2sdk/trace_rlog
srcdir           = /proj/tpfimos/larour/Libraries/linux/mpich2-1.0.2p1/src/mpe2/src/slog2sdk/trace_rlog/src

TRACE_HOME       = $(top_srcdir)/..
TRACE_INCDIR     = $(TRACE_HOME)/src/logformat/trace
TRACE_SRCDIR     = $(TRACE_HOME)/src/logformat/trace

# Use VPATH so logformat/trace/*.c(h) do NOT need to be here.
VPATH=.:$(srcdir):$(TRACE_SRCDIR)

# Define the TRACE-API shared library name and utility program names here
LIB_TRACE        = libTraceInput.la
PGM_PRINT        = rlog_print
PGM_CHECK        = rlog_check_timeorder

# Define the TRACE-API implementation here, only variable needs to be changed
IMPL_CSRC        = trace_input.c rlogutil.c

# the next 3 lines should NOT be changed 
CSRC             = $(IMPL_CSRC) logformat_trace_InputLog.c
CSRC4T           = $(IMPL_CSRC) trace_print.c
CSRC4E           = $(IMPL_CSRC) trace_check_timeorder.c

OBJ              = $(CSRC:.c=.o)
LOBJ             = $(CSRC:.c=.lo)
OBJ4T            = $(CSRC4T:.c=.o)
OBJ4E            = $(CSRC4E:.c=.o)

CC               = gcc
INSTALL          = /usr/bin/install -c 
LIBTOOL          = $(SHELL) ../libtool
EXPORT_SYMBOLS   = yes
RM               = rm -f

JNI_INC          = -I/usr/local/include -I/usr/local/include/linux
CFLAGS           = -I.. $(JNI_INC) -I$(TRACE_INCDIR) 
LDFLAGS          = -module -no-undefined -avoid-version 

# memory leak checker
MEMLIBS          = 

.SUFFIXES:
.SUFFIXES: .h .c .o .lo .la

.c.o:
	$(CC) $(CFLAGS) -c $<

.c.lo:
	$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c $<

ALL: BUILD_LIBSO $(PGM_PRINT) $(PGM_CHECK)

BUILD_LIBSO: $(LOBJ)
	if [ "$(EXPORT_SYMBOLS)" = "yes" ] ; then \
	    $(LIBTOOL) --mode=link $(CC) -o $(LIB_TRACE) $(LOBJ) $(LDFLAGS) \
	               -export-symbols $(srcdir)/JavaTraceInput.sym \
	               -rpath $(libbuild_dir) ; \
	else \
	    $(LIBTOOL) --mode=link $(CC) -o $(LIB_TRACE) $(LOBJ) $(LDFLAGS) \
	               -rpath $(libbuild_dir) ; \
	fi
	$(LIBTOOL) --mode=install $(INSTALL) $(LIB_TRACE) $(libbuild_dir)
	$(LIBTOOL) --finish $(libbuild_dir)

INSTALL_LIBSO: $(LOBJ)
	if [ "$(EXPORT_SYMBOLS)" = "yes" ] ; then \
	    $(LIBTOOL) --mode=link $(CC) -o $(LIB_TRACE) $(LOBJ) $(LDFLAGS) \
	               -export-symbols $(srcdir)/JavaTraceInput.sym \
	               -rpath $(LIBDIR) ; \
	else \
	    $(LIBTOOL) --mode=link $(CC) -o $(LIB_TRACE) $(LOBJ) $(LDFLAGS) \
	               -rpath $(LIBDIR) ; \
	fi
	$(LIBTOOL) --mode=install $(INSTALL) $(LIB_TRACE) $(DESTDIR)$(LIBDIR)
	$(LIBTOOL) --finish $(LIBDIR)

$(PGM_PRINT): $(OBJ4T)
	$(CC) -o $(binbuild_dir)/$@ $(OBJ4T) $(MEMLIBS)

$(PGM_CHECK): $(OBJ4E)
	$(CC) -o $(binbuild_dir)/$@ $(OBJ4E) $(MEMLIBS)

clean:
	@-$(RM) *.o *.lo *.la

realclean: clean
	$(LIBTOOL) --mode=uninstall $(RM) $(libbuild_dir)/$(LIB_TRACE)
	@-$(RM) $(binbuild_dir)/$(PGM_PRINT) $(binbuild_dir)/$(PGM_CHECK)
	@-$(RM) -r .libs

distclean: realclean
	@-$(RM) Makefile
