#
# modules/gridftp/Makefile
#
# Build the iRODS gridftp module
#

ifndef buildDir
buildDir = $(CURDIR)/../..
endif

include $(buildDir)/config/config.mk
include $(buildDir)/config/platform.mk
include $(buildDir)/config/directories.mk
include $(buildDir)/config/common.mk

export LD_LIBRARY_PATH=/opt/globus/lib/
#
# Directories
#
MSObjDir =	$(modulesDir)/gridftp/microservices/obj
MSSrcDir =	$(modulesDir)/gridftp/microservices/src
MSIncDir =	$(modulesDir)/gridftp/microservices/include


#
# Objects
#
OBJECTS = $(MSObjDir)/gridftp_chmod.o $(MSObjDir)/gridftp_cksm.o $(MSObjDir)/gridftp_cp.o $(MSObjDir)/gridftp_del.o $(MSObjDir)/gridftp_exist.o $(MSObjDir)/gridftp_feat.o $(MSObjDir)/gridftp_get.o $(MSObjDir)/gridftp_ls.o $(MSObjDir)/gridftp_mkdir.o $(MSObjDir)/gridftp_modtime.o $(MSObjDir)/gridftp_mv.o $(MSObjDir)/gridftp_put.o $(MSObjDir)/gridftp_rmdir.o $(MSObjDir)/gridftp_size.o $(MSObjDir)/gridftp_tools.o $(MSObjDir)/gridftp_functional_test.o
#OBJECTS += $(MSObjDir)/gridftpMS.o $(MSObjDir)/gridftp.o


#
# Include flags
#
INCLUDE_FLAGS =	-I$(MSIncDir) -I/opt/iRODS/core/include/ -I/opt/globus/include/gcc64dbg/


#
# Include files and libraries for Globus Toolkit libs
#
LIBS = -L/usr/lib64 -L/opt/globus/lib -lglobus_ftp_client_gcc64dbg -lglobus_ftp_control_gcc64dbg -lglobus_gsi_cert_utils_gcc64dbg -lglobus_gsi_proxy_core_gcc64dbg -lglobus_gsi_sysconfig_gcc64dbg -lglobus_gsi_credential_gcc64dbg -lglobus_gsi_callback_gcc64dbg -lglobus_gss_assist_gcc64dbg -lglobus_gssapi_gsi_gcc64dbg -lglobus_openssl_gcc64dbg -lglobus_openssl_error_gcc64dbg -lglobus_xio_gcc64dbg -lglobus_callout_gcc64dbg -lglobus_proxy_ssl_gcc64dbg -lglobus_common_gcc64dbg -lglobus_oldgaa_gcc64dbg -lglobus_io_gcc64dbg -lgssapi_error_gcc64dbg -lltdl_gcc64dbg

#
# Compile and link flags
#
INCLUDES +=	$(INCLUDE_FLAGS) $(LIB_INCLUDES) $(SVR_INCLUDES)
CFLAGS_OPTIONS := $(CFLAGS) $(MY_CFLAG)
CFLAGS =	$(CFLAGS_OPTIONS) $(INCLUDES) $(MODULE_CFLAGS)

.PHONY: all rules microservices server client clean
.PHONY: server_ldflags client_ldflags server_cflags client_cflags
.PHONY: print_cflags

# Build everything
all:	microservices
	@true

# List module's objects for inclusion in the clients
client_ldflags:
	@true

# List module's includes for inclusion in the clients
client_cflags:
	@true

# List module's objects for inclusion in the server
server_ldflags:
	@echo $(OBJECTS) $(LIBS)

# List module's includes for inclusion in the server
server_cflags:
	@echo $(INCLUDE_FLAGS)

# Build microservices
microservices:	print_cflags $(OBJECTS)
	@true

# Build client additions
client:
	@true

# Build server additions
server:
	@true

# Build rules
rules:
	@true

# Clean
clean:
	@echo "Clean gridftp module..."
	@rm -f $(OBJECTS)

# Show compile flags
print_cflags:
	@echo "Compile flags:"
	@echo "    $(CFLAGS_OPTIONS)"

#
# Compilation targets
#
$(OBJECTS): $(MSObjDir)/%.o: $(MSSrcDir)/%.c $(DEPEND)
	@echo "Compile gridftp module `basename $@`..."
#	@echo $(CC) -c $(CFLAGS) -o $@ $<
	@$(CC) -c $(CFLAGS) -o $@ $<

	