ROOTDIR = ../../../..

include $(ROOTDIR)/src/makefile.inc
INCLUDES = -I../Include \
	-I../../Include \
	-I../../../../include/Martini \
	-I$(ROOTDIR)/src/Lin/unix \
	-I$(JAVA_HOME)/include

ifdef AIX
	INCLUDES += -I $(JAVA_HOME)/include/aix
endif

ifdef SOLARIS
	INCLUDES += -I$(JAVA_HOME)/include/solaris
endif

ifdef LINUX
	LD_RPATH =  -Wl,-rpath,\$$ORIGIN
else
ifdef SOLARIS
	LD_RPATH = -R \$$ORIGIN
endif
endif


OBJS = $(OBJDIR)/BootLoaderOptionParser.o \
	$(OBJDIR)/DataManager.o \
	$(OBJDIR)/DataManagerEvents.o \
	$(OBJDIR)/ECAgent.o \
	$(OBJDIR)/EventDispatcher.o \
	$(OBJDIR)/EventManager.o \
	$(OBJDIR)/IdAllocator.o \
	$(OBJDIR)/IJVM.o \
	$(OBJDIR)/JavaInstrumentorManager.o \
	$(OBJDIR)/JIMEvents.o \
	$(OBJDIR)/JPI.o \
	$(OBJDIR)/JpiGlobals.o \
	$(OBJDIR)/JPIKernel.o \
	$(OBJDIR)/JVMPIInterface.o \
	$(OBJDIR)/JVMTIInterface.o \
	$(OBJDIR)/LogAssert.o \
	$(OBJDIR)/Logger.o \
	$(OBJDIR)/MPI.o \
	$(OBJDIR)/MPIUtils.o \
	$(OBJDIR)/ObjectInfoManager.o \
	$(OBJDIR)/ParamChecker.o \
	$(OBJDIR)/ThreadInfoManager.o \
	
ifdef MVS
DEFINES += -D_ISOC99_SOURCE
endif

LIB = libJPI.so

VER_FILE = JPI.ver

all: release

release: $(OBJDIR) $(OUTDIR)/$(LIB)

$(OBJDIR): 
	mkdir -p $(OBJDIR) ; mkdir -p $(OUTDIR)

clean: 
	rm -rf $(OBJS) $(OUTDIR)/$(LIB)
	rm -f libJPI.x

include ./Makefile.dep

$(OUTDIR)/$(LIB): $(OBJS)
ifdef AIX
	$(CPP_LINK) $(OBJS) -o $@ -L../../../../bin/linux/$(PLATFORM_AND_MODE_NAME) \
	-L$(OUTDIR)/libMartiniOSA -lMartiniOSA \
	$(OUTDIR)/LibraryLoader.a -lpthread -ldl $(STD_LIBS) $(VER_SCR)
else
ifdef MVS
	$(CPP_LINK) $(OBJS) -o $@ -L../../../../bin/linux/release/$(PLATFORM_AND_MODE_NAME) -L$(OUTDIR) ../OSA/zOS/libMartiniOSA.x \
	 $(OUTDIR)/LibraryLoader.a $(STD_LIBS) $(VER_SCR)
else
	$(CPP_LINK) $(LD_RPATH) $(OBJS) -o $@ -L../../../../bin/linux/release/IA-32 -L$(OUTDIR) -lMartiniOSA \
	$(OUTDIR)/LibraryLoader.a -lpthread -ldl $(STD_LIBS) $(VER_SCR)
endif
endif
