
# First to include the conf info depending on the compilers we need etc
# i.e. all options starting with IC_

include $(HARNESS_ROOT)/conf/system/makeopts-SNIPE_LITE

# For any arch type options
# i.e. anything else like, IMA_ARCH, system call flags etc

include $(HARNESS_ROOT)/conf/system/makeopts-$(HARNESS_ARCH)

#
# The rest should now be a little puddie kat.
#

# Final build options conf file.
# Yep, how many do we need :)

include $(HARNESS_ROOT)/conf/makeopts-HARNESS

COMPILE_OPT = $(INTER_OPTS) $(BUILD_OPTS) $(MPI_OPTS)

###########################################################################

# Now for the compilation directories

include $(HARNESS_ROOT)/conf/system/makeopts-dirs

###########################################################################
# Where to put the ftmpi plug-ins
###########################################################################

ftsvcdir = $(libdir)/ftmpi
ftsvcplugin = $(ftsvcdir)/services.so

###########################################################################


###############################
# Secure communication
###############################

LIBS = $(SL_LIBS) $(OPENSSL_LDFLAGS)


########################
# Flag for shared object
########################

#ifeq ($(HARNESS_ARCH),AIX46K)
#MYCC=xlc
#LD_FLAGS=-G -bexpall -bM:SRE -bnoentry -brtl -bE:services.exp
#else
#MYCC=$(CC)
#LD_FLAGS=$(SOFLAG)
#endif

#MYCC=gcc
#LD_FLAGS=-shared

########################



all:	default

###########################################################################

default: $(objdir) $(bindir)\
	$(objdir)/startup_d.o \
	$(objdir)/libstartup.o \
	$(objdir)/libnotifier.o \
	$(objdir)/libsecure.o \
	$(objdir)/startup_d_shared.o \
	$(bindir)/startup_d \
	$(bindir)/ftmpi_notifier \
	$(bindir)/ftmpirun \
	$(bindir)/hrun \
	$(bindir)/startup_watchdog \
	$(ftsvcplugin)

###########################################################################

$(objdir) : 
	mkdir $(objdir)

$(bindir) : 
	mkdir $(bindir)

$(libdir) : 
	mkdir $(libdir)

$(ftsvcdir) :
	mkdir $(ftsvcdir)

###########################################################################

###########################################################################
#DEBUG = -DVERBOSE
###########################################################################
DEBUG = -g
###########################################################################

###########################################################################

OBJS = $(svcobjdir)/ns_lib.o $(shareobjdir)/snipe_lite.o \
		$(shareobjdir)/msg.o $(shareobjdir)/msgbuf.o \
		$(objdir)/libnotifier.o $(shareobjdir)/daemon.o \
		$(shareobjdir)/msg_s.o $(shareobjdir)/snipe_lite_s.o \
		$(objdir)/libsio.o $(objdir)/libcio.o $(objdir)/libsecure.o 

HLIB = $(libdir)/hlib.a

FTRUNOBJS = $(OBJS) \
			$(objdir)/libstartup.o $(HLIB)


$(bindir)/ftmpirun : ftmpirun.c $(FTRUNOBJS) libstartup.h
	$(CC) $(STDINC) ftmpirun.c -o $(bindir)/ftmpirun $(SL_FLAGS) $(EXTRA_FLAGS) \
	-I. -I$(hsdir) -I$(ftmpidir) $(DEBUG) \
	$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/envs.o \
	$(FTRUNOBJS) \
	$(LIBS)

$(bindir)/hrun : hrun.c $(FTRUNOBJS) libstartup.h
	$(CC) $(STDINC) hrun.c -o $(bindir)/hrun $(SL_FLAGS) $(EXTRA_FLAGS) \
	-I. -I$(hsdir) -I$(ftmpidir) $(DEBUG) \
	$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/envs.o \
	$(FTRUNOBJS) \
	$(LIBS)

$(bindir)/startup_watchdog : startup_watchdog.c $(FTRUNOBJS) libstartup.h
	$(CC) $(STDINC) startup_watchdog.c -o $(bindir)/startup_watchdog $(SL_FLAGS) $(EXTRA_FLAGS) \
	-I. -I$(hsdir) -I$(ftmpidir) $(DEBUG) \
	$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/envs.o \
	$(FTRUNOBJS) \
	$(LIBS)

$(bindir)/ftmpi_notifier : ftmpi_notifier.c $(OBJS)
	$(CC) $(STDINC) ftmpi_notifier.c -o $(bindir)/ftmpi_notifier $(SL_FLAGS) $(EXTRA_FLAGS) \
	-I. -I$(hsdir) -I$(ftmpidir) $(DEBUG) \
	$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/envs.o \
	$(OBJS) \
	$(LIBS)

# if daemon flag set then quiet and no IO
#$(objdir)/startup_d.o : startup_d.c startup.h
#	$(CC) $(STDINC) startup_d.c -c \
#	-DFTMPI_NOTIFY \
#	-DSTANDALONE \
#	-DDAEMON \
#	-I$(HARNESS_ROOT)/src $(DEBUG)
#	mv startup_d.o $(objdir)

$(objdir)/startup_d.o : startup_d.c startup.h
	$(CC) $(STDINC) -c startup_d.c -DFTMPI_NOTIFY -DSTANDALONE \
	-I$(HARNESS_ROOT)/src $(DEBUG) $(OPENSSL_CFLAGS)
	mv startup_d.o $(objdir)

$(objdir)/startup_d_shared.o : startup_d.c startup.h
	$(CC) $(SOFLAG) $(STDINC) -o startup_d_shared.o -c startup_d.c -DFTMPI_NOTIFY \
	-I$(HARNESS_ROOT)/src $(DEBUG) $(OPENSSL_CFLAGS)
	mv startup_d_shared.o $(objdir)


$(objdir)/libstartup.o : libstartup.c startup.h $(HLIB)
	$(CC) $(STDINC) $(SOFLAG) libstartup.c -c $(EXTRA_FLAGS) $(OPENSSL_CFLAGS) \
	-I$(hsdir) -I$(ftmpidir) $(DEBUG)
	mv libstartup.o $(objdir)

$(objdir)/libsecure.o : libsecure.c libsecure.h $(HLIB)
	$(CC) $(SOFLAG) $(STDINC) libsecure.c -c $(EXTRA_FLAGS) $(OPENSSL_CFLAGS) \
	-I$(hsdir) -I$(ftmpidir) $(DEBUG)
	mv libsecure.o $(objdir)

$(objdir)/libnotifier.o : libnotifier.c notifier.h
	$(CC) $(SOFLAG) $(STDINC) libnotifier.c -c \
	-I$(hsdir) $(DEBUG)
	mv libnotifier.o $(objdir)

$(objdir)/libcio.o : libcio.c libcio.h
	$(CC) $(SOFLAG) $(STDINC) libcio.c -c \
	-I$(hsdir) $(DEBUG)
	mv libcio.o $(objdir)

$(objdir)/libsio.o : libsio.c libsio.h
	$(CC) $(SOFLAG) $(STDINC) libsio.c -c \
	-I$(hsdir) $(DEBUG)
	mv libsio.o $(objdir)

$(bindir)/startup_d : startup_d.c $(objdir)/startup_d.o $(objdir)/startup.o $(objdir)/libstartup.o $(OBJS)
	$(CC) $(STDINC) -o $(bindir)/startup_d \
	-DFTMPI_NOTIFY \
	-I$(HARNESS_ROOT)/src -I$(hsdir)\
	$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/envs.o \
	$(OBJS) \
	$(objdir)/startup_d.o $(objdir)/startup.o $(objdir)/libstartup.o $(HLIB) \
	$(LIBS)

$(objdir)/startup.o : startup.h startup.c
	$(CC) $(SOFLAG) $(STDINC) startup.c -c \
	-DFTMPI_NOTIFY \
	-I. -I$(HARNESS_ROOT)/src $(DEBUG)
	mv startup.o $(objdir)


$(ftsvcplugin) : $(objdir)/startup_d.o $(objdir)/startup.o $(ftsvcdir)
	$(MYCC) $(STDINC) $(LD_FLAGS) \
		$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/envs.o \
		-DFTMPI_NOTIFY  \
                -o ${HARNESS_ARCH}/services.o \
		-I$(HARNESS_ROOT)/src $(DEBUG) $(OBJS) $(objdir)/startup.o $(objdir)/startup_d_shared.o $(objdir)/libstartup.o \
		$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/hlib.o \
		$(HARNESS_ROOT)/src/$(HARNESS_ARCH)/id.o
		mv ${HARNESS_ARCH}/services.o $(libdir)/ftmpi/services.so


clean :
	rm -f ftmpirun $(ftsvcplugin) hrun startup_d \
			ftmpi_notifier startup_watchdog \
			$(HARNESS_ARCH)/*.o *.o

