################################################################################
# 
# This is the makefile for building the GridFTP console client.
#
################################################################################

C_SRCS += \
../microservices/src/gridftp.c \
../microservices/src/gridftp_chmod.c \
../microservices/src/gridftp_cksm.c \
../microservices/src/gridftp_cp.c \
../microservices/src/gridftp_del.c \
../microservices/src/gridftp_exist.c \
../microservices/src/gridftp_feat.c \
../microservices/src/gridftp_get.c \
../microservices/src/gridftp_ls.c \
../microservices/src/gridftp_mkdir.c \
../microservices/src/gridftp_modtime.c \
../microservices/src/gridftp_mv.c \
../microservices/src/gridftp_put.c \
../microservices/src/gridftp_rmdir.c \
../microservices/src/gridftp_size.c \
../microservices/src/gridftp_tools.c 

OBJS += \
../microservices/obj/gridftp.o \
../microservices/obj/gridftp_chmod.o \
../microservices/obj/gridftp_cksm.o \
../microservices/obj/gridftp_cp.o \
../microservices/obj/gridftp_del.o \
../microservices/obj/gridftp_exist.o \
../microservices/obj/gridftp_feat.o \
../microservices/obj/gridftp_get.o \
../microservices/obj/gridftp_ls.o \
../microservices/obj/gridftp_mkdir.o \
../microservices/obj/gridftp_modtime.o \
../microservices/obj/gridftp_mv.o \
../microservices/obj/gridftp_put.o \
../microservices/obj/gridftp_rmdir.o \
../microservices/obj/gridftp_size.o \
../microservices/obj/gridftp_tools.o 

C_DEPS += \
../microservices/obj/gridftp.d \
../microservices/obj/gridftp_chmod.d \
../microservices/obj/gridftp_cksm.d \
../microservices/obj/gridftp_cp.d \
../microservices/obj/gridftp_del.d \
../microservices/obj/gridftp_exist.d \
../microservices/obj/gridftp_feat.d \
../microservices/obj/gridftp_get.d \
../microservices/obj/gridftp_ls.d \
../microservices/obj/gridftp_mkdir.d \
../microservices/obj/gridftp_modtime.d \
../microservices/obj/gridftp_mv.d \
../microservices/obj/gridftp_put.d \
../microservices/obj/gridftp_rmdir.d \
../microservices/obj/gridftp_size.d \
../microservices/obj/gridftp_tools.d 

LIBS := -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

INCLUDE_FLAGS := -I../microservices/include/

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif

all: gridftp-client

gridftp-client: $(OBJS) $(USER_OBJS)
	@echo 'Building target: $@'
	@echo 'Invoking: GCC C Linker'
	gcc -L/opt/globus/lib -o"gridftp-client" $(OBJS) $(USER_OBJS) $(LIBS) $(INCLUDE_FLAGS)
	@echo 'Finished building target: $@'
	@echo ' '

../microservices/obj/%.o: ../microservices/src/%.c
	@echo 'Building file: $<'
	@echo 'Invoking: GCC C Compiler'
	gcc -I/opt/globus/include/gcc64dbg -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o"$@" "$<" $(INCLUDE_FLAGS)
	@echo 'Finished building: $<'
	@echo ' '
	
clean:
	-$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) gridftp-client
	-@echo ' '

.PHONY: all clean dependents
.SECONDARY:


tar:
	rm -f ../iRODS_GridFTP_Module.tar
	ls ../microservices/obj/ | sed 's/^/..\/gridftp\/microservices\/obj\//' > lsobj
	tar cf ../iRODS_GridFTP_Module.tar ../../gridftp --exclude ../../gridftp/.cproject --exclude ../../gridftp/.project --exclude ../../gridftp/console_client/gridftp-client --exclude ../../gridftp/console_client/lsobj --exclude-from lsobj
	rm -f lsobj