COMM
COMM  Copyright (C) 2004-2009 by CERN
COMM  All rights reserved
COMM
COMM  @(#)$RCSfile: Imakefile,v $ $Revision: 1.29 $ $Date: 2009/08/25 09:27:18 $ CERN Jean-Philippe Baud

COMM    Make srmv2 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
GLOBUS_LOCATION=GlobusLocation
#if defined(__STDC__)
GLOBUS_FLAVOUR=GlobusFlavour##pthr
VOMS_FLAVOUR=GlobusFlavour##pthr
#else
GLOBUS_FLAVOUR=GlobusFlavour/**/pthr
VOMS_FLAVOUR=GlobusFlavour/**/pthr
#endif
GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/lib -lglobus_gssapi_gsi_$(GLOBUS_FLAVOUR) -lglobus_gss_assist_$(GLOBUS_FLAVOUR)
GSOAP_LOCATION=GsoapLocation
GSOAP_VERSION=GsoapVersion
WSDL2H_FLAGS=GsoapWsdl2hFlags
CGSI_GSOAP_LOCATION=CgsiGsoapLocation
#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
SOAPFLG = -DWITH_IPV6
INCLUDES = FileName(..,h)
#if SOLARIS
LIBS = -L../lib -ldpm $(LIBCSEC) -lsocket -lnsl
#else
LIBS = -L../lib -ldpm $(LIBCSEC)
#endif
#ifndef darwin   
LIBS += -luuid
#endif
SPOOL = Srmv2Spool
LOGFILE = FileName($(SPOOL),log)
#if UseOracle
DBOBJS = ../dpm/dpm_oracle_ifce.Osuf
ORAFLG = -DUSE_ORACLE
ORAINC = -I$(ORACLE_HOME)/precomp/public
#else
#if UseMySQL
DBOBJS = ../dpm/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/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 $(MTCCFLAGS) $(DFLAGS) $(ORAINC) $(MYSINC)
 
COMM######################### DEPENDENCY LIBRARIES ###############
 
DEPLIB = DepLibraryTargetName(lib,dpm)

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

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

SRV_OBJS = 	srmv2.Osuf \
		srmv2_dirreq.Osuf \
		srmv2_permreq.Osuf \
		srmv2_spacereq.Osuf \
		srmv2_xferreq.Osuf \
		srm_util.Osuf \
		srmlogit.Osuf \
		$(DBOBJS) \
		../dpm/dpm_procsubr.Osuf \
		../dpm/dpm_util.Osuf \
		../dpm/dpmlogit.Osuf \
		srmv2C.Osuf \
		srmv2Server.Osuf \
		stdsoap2.Osuf

all: $(SERVER)

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

stdsoap2.Osuf: $(GSOAP_LOCATION)/src/stdsoap2.c
	$(CC) -c -g -I$(GSOAP_LOCATION)/include $(SOAPFLG) $(GSOAP_LOCATION)/src/stdsoap2.c

#if UseOracle && !defined(_WIN32)
srmv2: $(SRV_OBJS) $(DEPLIB)
	$(MAKE) -f oralink.mk srmv2 SRV_OBJS="$(SRV_OBJS)" CLDFLAGS=$(MTLDFLAGS) LIBS="$(LIBS) $(SECLIB) $(MTLDLIBS)"
#else
NormalProgramTarget(srmv2,$(SRV_OBJS), $(DEPLIB), $(MTLDFLAGS) $(LIBS) $(SECLIB) $(MTLDLIBS) $(LIBORA) $(LIBMYS) $(LIBPOS))
#endif
#if UseOracle
rc.srmv2: srmv2.scripts.oracle
	$(CP) $? $@
srmv2.conf.templ: srmv2.sysconfig.oracle
	$(CP) $? $@
#else
#if UseMySQL
rc.srmv2: srmv2.scripts.mysql
	$(CP) $? $@
srmv2.conf.templ: srmv2.sysconfig.mysql
	$(CP) $? $@
#else
#if UsePostgres
rc.srmv2: srmv2.scripts.postgresql
	$(CP) $? $@
srmv2.conf.templ: srmv2.sysconfig.postgresql
	$(CP) $? $@
#endif
#endif
#endif

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

InstallProgram(srmv2,$(BIN),root,bin,750)
InstallTarget(rc.srmv2,root,bin,0644,$(DPMSHAREDIR))
InstallTarget(srmv2.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(srmv2,$(MANDIR),$(MANSUFFIX))

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

clean:
	-@RemoveFiles(*.Osuf *H.h *Object.h *Proxy.h *Stub.h *C.c *Client.c *Lib.c *Server.c *.nsmap *.xml srm.v2.1.1.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.Osuf: srmv2H.h srmSoapBinding.nsmap

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