COMM
COMM  Copyright (C) 2004-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 srmv1 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_LIBS=-L$(GLOBUS_LOCATION)/$(_lib) -lglobus_gssapi_gsi -lglobus_gss_assist
#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
#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)
#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
#ifndef darwin   
LIBS += -luuid
#endif
SPOOL = Srmv1Spool
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) $(POSINC)
 
COMM######################### DEPENDENCY LIBRARIES ###############
 
DEPLIB = DepLibraryTargetName(lib,dpm)

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

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

SRV_OBJS = 	srmv1.Osuf \
		srmv1_procreq.Osuf \
		srm_util.Osuf \
		srmlogit.Osuf \
		$(DBOBJS) \
		../dpm/dpm_util.Osuf \
		../dpm/dpmlogit.Osuf \
		$(STDSOAP_OBJS) \
		srmv1C.Osuf \
		srmv1Server.Osuf

all: $(SERVER)

srmv1H.h srmv1Stub.h srmv1C.c srmv1Server.c ISRM.nsmap: srm.v1.1.h
	$(GSOAP_LOCATION)/bin/soapcpp2 -c -p srmv1 srm.v1.1.h
srm.v1.1.h: srm.v1.1.wsdl
	$(GSOAP_LOCATION)/bin/wsdl2h $(WSDL2H_FLAGS) -c -e -w -y -t typemap.dat srm.v1.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)
srmv1: $(SRV_OBJS) $(DEPLIB)
	$(MAKE) -f oralink.mk srmv1 SRV_OBJS="$(SRV_OBJS)" CLDFLAGS=$(MTLDFLAGS) LIBS="$(SOAPLIB) $(LIBS) $(SECLIB) $(MTLDLIBS)"
#else
NormalProgramTarget(srmv1,$(SRV_OBJS), $(DEPLIB), $(MTLDFLAGS) $(SOAPLIB) $(LIBS) $(SECLIB) $(MTLDLIBS) $(LIBORA) $(LIBMYS) $(LIBPOS))
#endif
#if UseOracle
rc.srmv1: srmv1.scripts.oracle
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
srmv1.conf.templ: srmv1.sysconfig.oracle
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
#else
#if UseMySQL
rc.srmv1: srmv1.scripts.mysql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
srmv1.conf.templ: srmv1.sysconfig.mysql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
#else
#if UsePostgres
rc.srmv1: srmv1.scripts.postgresql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
srmv1.conf.templ: srmv1.sysconfig.postgresql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
#endif
#endif
#endif

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

InstallProgram(srmv1,$(BIN),root,bin,755)
InstallTarget(rc.srmv1,root,bin,0644,$(DPMSHAREDIR))
InstallTarget(srmv1.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(srmv1,$(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.v1.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 ##########################

srmv1.Osuf: srmv1H.h ISRM.nsmap

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