COMM
COMM  Copyright (C) 2007-2010 by CERN
COMM  All rights reserved
COMM
COMM  @(#)$RCSfile: Imakefile,v $ $Revision: 4083 $ $Date: 2011-01-31 11:25:57 +0100 (Mon, 31 Jan 2011) $ CERN Jean-Philippe Baud

COMM    Make dpmcopyd server

DPMSHAREDIR = FileName($(SHAREDIR),DPM)
#if BuildSecurity
CSECFLAG = -DCSEC
LIBCSEC = -ldl
#if UseVirtualIds
VIDFLAG = -DVIRTUAL_ID
#endif
#if UseVOMS
VOMSFLAG = -DUSE_VOMS
VOMS_LOCATION=VomsLocation
#endif
#endif
DPMCONFIG = DpmConfigFile
GSOAP_LOCATION=GsoapLocation
GSOAP_VERSION=GsoapVersion
WSDL2H_FLAGS=GsoapWsdl2hFlags
CGSI_GSOAP_LOCATION=CgsiGsoapLocation
GLOBUS_LOCATION=GlobusLocation
#if EMIBuild
GLOBUS_INCLUDES=-I$(GLOBUS_LOCATION)/include/globus -I$(GLOBUS_LOCATION)/$(_lib)/globus/include
GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/$(_lib) -lglobus_gssapi_gsi -lglobus_gss_assist -lglobus_common
GGC_LIB=-L$(GLOBUS_LOCATION)/$(_lib) -lglobus_gass_copy -lglobus_ftp_client
#if UseVOMS
VOMS_LIB = -L$(VOMS_LOCATION)/$(_lib) -L$(VOMS_LOCATION)/lib -lvomsapi
SECLIB = -L$(CGSI_GSOAP_LOCATION)/$(_lib) -L$(CGSI_GSOAP_LOCATION)/lib -lcgsi_plugin_voms_gsoap_$(GSOAP_VERSION) $(VOMS_LIB) $(GLOBUS_LIBS)
#else
SECLIB = -L$(CGSI_GSOAP_LOCATION)/$(_lib) -L$(CGSI_GSOAP_LOCATION)/lib -lcgsi_plugin_gsoap_$(GSOAP_VERSION) $(GLOBUS_LIBS)
#endif
SOAPLIB = -lgsoap
#else
GLOBUS_FLAVOUR=GlobusFlavour
VOMS_FLAVOUR=GlobusFlavour
GLOBUS_INCLUDES=-I$(GLOBUS_LOCATION)/include/$(GLOBUS_FLAVOUR)
GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/lib -lglobus_gssapi_gsi_$(GLOBUS_FLAVOUR) -lglobus_gss_assist_$(GLOBUS_FLAVOUR) -lglobus_common_$(GLOBUS_FLAVOUR)
GGC_LIB=-lglobus_gass_copy_$(GLOBUS_FLAVOUR) -lglobus_ftp_client_$(GLOBUS_FLAVOUR)
#if UseVOMS
VOMS_LIB = -L$(VOMS_LOCATION)/$(_lib) -L$(VOMS_LOCATION)/lib -lvomsapi_$(VOMS_FLAVOUR)
SECLIB = -L$(CGSI_GSOAP_LOCATION)/$(_lib) -L$(CGSI_GSOAP_LOCATION)/lib -lcgsi_plugin_voms_gsoap_$(GSOAP_VERSION)_$(GLOBUS_FLAVOUR) $(VOMS_LIB) $(GLOBUS_LIBS)
#else
SECLIB = -L$(CGSI_GSOAP_LOCATION)/$(_lib) -L$(CGSI_GSOAP_LOCATION)/lib -lcgsi_plugin_gsoap_$(GSOAP_VERSION) $(GLOBUS_LIBS)
#endif
STDSOAP_OBJS = stdsoap2.Osuf
#endif
SOAPFLG = -DWITH_IPV6
INCLUDES = FileName(..,h)
#if SOLARIS
LIBS = -L../lib -ldpm $(LIBCSEC) -lsocket -lnsl
#else
LIBS = -L../lib -ldpm $(LIBCSEC)
#endif
SPOOL = DpmcopySpool
LOGFILE = FileName($(SPOOL),log)
#if UseOracle
DBOBJS = dpm_oracle_ifce.Osuf
ORAFLG = -DUSE_ORACLE
ORAINC = -I$(ORACLE_HOME)/precomp/public
#else
#if UseMySQL
DBOBJS = dpm_mysql_ifce.Osuf
MYSFLG = -DUSE_MYSQL
MYSQL_LOCATION = MySQLLocation
MYSINC = -I$(MYSQL_LOCATION)/include/mysql
LIBMYS = -L$(MYSQL_LOCATION)/$(_lib)/mysql -lmysqlclient -lz -lm
#else
#if UsePostgres
DBOBJS = dpm_libpq_ifce.Osuf
POSFLG = -DUSE_POSTGRES
LIBPOS = -lpq
#endif
#endif
#endif

COMM######################### FLAGS ##############################

DFLAGS = -DDPMCONFIG=\"$(DPMCONFIG)\" \
         -DLOGFILE=\"$(LOGFILE)\" \
         $(ORAFLG) $(MYSFLG) $(POSFLG) $(CSECFLAG) $(VIDFLAG) $(VOMSFLAG) $(SOAPFLG)
 
CFLAGS = -g -I$(INCLUDES) -I$(GSOAP_LOCATION)/include -I$(CGSI_GSOAP_LOCATION)/include $(DFLAGS) $(ORAINC) $(MYSINC) $(POSINC)
 
COMM######################### DEPENDENCY LIBRARIES ###############
 
DEPLIB = DepLibraryTargetName(lib,dpm)

COMM######################### RULES ##############################

MANPAGES = $(MANDIR)/dpmcopyd.$(MANSUFFIX)
SERVER = ProgramTargetName(dpmcopyd) \
	 rc.dpmcopyd \
	 dpmcopyd.conf.templ
IPROGS_D = FileName($(BIN),ProgramTargetName(dpmcopyd)) \
	   FileName($(DPMSHAREDIR),rc.dpmcopyd) \
	   FileName($(SYSCONFDIR),dpmcopyd.conf.templ)

SRV_OBJS = 	dpmcopy_main.Osuf \
		dpmcopy_local.Osuf \
		dpmcopy_pull.Osuf \
		dpmcopy_push.Osuf \
		srmv2_ifce.Osuf \
		$(DBOBJS) \
		dpm_copyfile.Osuf \
		../dpm/dpm_util.Osuf \
		../dpm/dpmlogit.Osuf \
		../dpm/sendrep.Osuf \
		$(STDSOAP_OBJS) \
		srmv2C.Osuf \
		srmv2Client.Osuf

all: $(SERVER)

dpm_copyfile.c: DepSourceName(dpm,dpm_copyfile.c)
	RemoveFile(dpm_copyfile.c)
	$(CP) DepSourceName(dpm,dpm_copyfile.c) dpm_copyfile.c
dpm_libpq_ifce.c: DepSourceName(dpm,dpm_libpq_ifce.c)
	RemoveFile(dpm_libpq_ifce.c)
	$(CP) DepSourceName(dpm,dpm_libpq_ifce.c) dpm_libpq_ifce.c
dpm_mysql_ifce.c: DepSourceName(dpm,dpm_mysql_ifce.c)
	RemoveFile(dpm_mysql_ifce.c)
	$(CP) DepSourceName(dpm,dpm_mysql_ifce.c) dpm_mysql_ifce.c
dpm_oracle_ifce.pc: DepSourceName(dpm,dpm_oracle_ifce.pc)
	RemoveFile(dpm_oracle_ifce.pc)
	$(CP) DepSourceName(dpm,dpm_oracle_ifce.pc) dpm_oracle_ifce.pc

#undef YES
dpm_oracle_ifce.c: dpm_oracle_ifce.pc
	proc INAME=dpm_oracle_ifce INCLUDE=$(INCLUDES) CHAR_MAP=STRING PARSE=FULL $(WNT_SYS_INCLUDE)
#define YES 1

srmv2H.h srmv2Stub.h srmv2C.c srmv2Client.c srmSoapBinding.nsmap: srm.v2.2.h
	$(GSOAP_LOCATION)/bin/soapcpp2 -c -p srmv2 srm.v2.2.h
srm.v2.2.h: srm.v2.2.wsdl
	$(GSOAP_LOCATION)/bin/wsdl2h $(WSDL2H_FLAGS) -c -e -y -t typemap.dat srm.v2.2.wsdl

dpm_copyfile.Osuf: dpm_copyfile.c
	$(CC) $(CFLAGS) $(GLOBUS_INCLUDES) -c dpm_copyfile.c
dpmcopy_inc_reqctr.Osuf: dpmcopy_inc_reqctr.c
	$(CC) -c -g -I$(INCLUDES) $(MTCCFLAGS) $(CSECFLAG) dpmcopy_inc_reqctr.c
send2dpmcopyd.Osuf: send2dpmcopyd.c
	$(CC) -c -g -I$(INCLUDES) $(MTCCFLAGS) $(CSECFLAG) send2dpmcopyd.c
stdsoap2.Osuf: $(GSOAP_LOCATION)/src/stdsoap2.c
	$(CC) -c -g -I$(GSOAP_LOCATION)/include $(SOAPFLG) $(GSOAP_LOCATION)/src/stdsoap2.c

#if UseOracle && !defined(_WIN32)
dpmcopyd: $(SRV_OBJS) $(DEPLIB)
	$(MAKE) -f oralink.mk dpmcopyd SRV_OBJS="$(SRV_OBJS)"  LIBS="$(SOAPLIB) $(GGC_LIB) $(LIBS) $(SECLIB)"
#else
NormalProgramTarget(dpmcopyd,$(SRV_OBJS), $(DEPLIB), $(SOAPLIB) $(GGC_LIB) $(LIBS) $(SECLIB) $(LIBORA) $(LIBMYS) $(LIBPOS))
#endif
#if UseOracle
rc.dpmcopyd: dpmcopyd.scripts.oracle
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
dpmcopyd.conf.templ: dpmcopyd.sysconfig.oracle
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
#else
#if UseMySQL
rc.dpmcopyd: dpmcopyd.scripts.mysql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
dpmcopyd.conf.templ: dpmcopyd.sysconfig.mysql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
#else
#if UsePostgres
rc.dpmcopyd: dpmcopyd.scripts.postgresql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
dpmcopyd.conf.templ: dpmcopyd.sysconfig.postgresql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
#endif
#endif
#endif

NormalLibraryTarget(dpmcopy,dpmcopy_inc_reqctr.Osuf send2dpmcopyd.Osuf)

install: $(BIN) $(DPMSHAREDIR) $(SYSCONFDIR) $(IPROGS_D) $(SPOOL)

InstallProgram(dpmcopyd,$(BIN),root,bin,755)
InstallTarget(rc.dpmcopyd,root,bin,0644,$(DPMSHAREDIR))
InstallTarget(dpmcopyd.conf.templ,root,bin,0644,$(SYSCONFDIR))

MakeDir($(BIN),root,bin,0755)
MakeDir($(DPMSHAREDIR),root,bin,0755)
MakeDir($(SPOOL),root,bin,0755)
MakeDir($(SYSCONFDIR),root,bin,0755)

install.man: $(MANDIR) $(MANPAGES)

MakeDir($(MANDIR),root,bin,0755)

IMANPAGE(dpmcopyd,$(MANDIR),$(MANSUFFIX))

COMM###################### CLEANING RULES ########################

clean:
	-@RemoveFiles(FilesToClean *H.h *Object.h *Proxy.h *Stub.h *C.c *Client.c *Lib.c *Server.c *.nsmap *.xml srm.v2.2.h)

clobber: clean
	-@RemoveFiles($(SERVER))

#if _WIN32
depend:
	@echo Not supported on this platform
#else
depend:
	makedepend $(DFLAGS) -Y$(INCLUDES) *.c 2> /dev/null
#endif

Makefiles:

FORCE:

COMM###################### DEPENDENCIES ##########################

srmv2_ifce.Osuf: srmv2H.h srmSoapBinding.nsmap

COMM DO NOT DELETE THIS LINE -- make  depend  depends  on  it.
