COMM
COMM  Copyright (C) 2004-2011 by CERN
COMM  All rights reserved
COMM
COMM  @(#)$RCSfile: Imakefile,v $ $Revision: 4371 $ $Date: 2011-05-23 14:23:32 +0200 (Mon, 23 May 2011) $ CERN Jean-Philippe Baud

COMM    Make Disk Pool Manager

#if BuildInterfaces
PYTHON=PythonProgram
PYTHON_VERSION=$(shell $(PYTHON) -c "import sys; print sys.version[:3]")
PYTHON_PREFIX=$(shell $(PYTHON) -c "import os; import sys; print os.path.normpath(sys.prefix)")
INCLUDE_PYTHON=-I$(shell $(PYTHON) -c "from distutils import sysconfig; print sysconfig.get_python_inc(0,prefix='${PYTHON_PREFIX}')")
PYTHON_LIB=$(shell $(PYTHON) -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,1,prefix='${PYTHON_PREFIX}')")
INCLUDE_PERL=-I$(shell perl -MConfig -e 'print $$Config{archlibexp}, "/CORE";')
SWIG_LOCATION = SwigLocation
SWIG = SWIG_LIB=SwigLib $(SWIG_LOCATION)/bin/swig
#endif

DPMCONFIG = DpmConfigFile
DPMSHAREDIR = FileName($(SHAREDIR),DPM)
#if BuildSecurity
CSECFLAG = -DCSEC
#if UseGSI
GLOBUS_LOCATION=GlobusLocation
#if EMIBuild
GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/$(_lib) -lglobus_gssapi_gsi -lglobus_gss_assist -lglobus_common
#else
#if defined(__STDC__)
GLOBUS_FLAVOUR=GlobusFlavour##pthr
#else
GLOBUS_FLAVOUR=GlobusFlavour/**/pthr
#endif
GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/lib -lglobus_gssapi_gsi_$(GLOBUS_FLAVOUR) -lglobus_gss_assist_$(GLOBUS_FLAVOUR) -lglobus_common_$(GLOBUS_FLAVOUR)
#endif
LIBCSEC += $(GLOBUS_LIBS)
#endif
LIBCSEC += -ldl
#if UseVirtualIds
VIDFLAG = -DVIRTUAL_ID
#endif
#if UseVOMS
VOMSFLAG = -DUSE_VOMS
#endif
#endif 
INCLUDES = FileName(..,h)
#if SOLARIS
LIBS = -L../lib -ldpm $(LIBCSEC) -lsocket -lnsl
#else
#if _WIN32
LIBS = ..\lib\dpm.lib wsock32.lib advapi32.lib
#else
LIBS = -L../lib -ldpm $(LIBCSEC)
#endif
#endif
LIBUUID =
#ifndef darwin
LIBUUID += -luuid
#endif
BACKEND_LIBS = DepLibraryTargetName(dpmcopy,dpmcopy)
#if BuildDicomCopy
BACKEND_LIBS += DepLibraryTargetName(dicomcopy,dicomcopy)
DICOMFLAG = -DDICOM
#endif
SPOOL = DpmSpool
LOGFILE = FileName($(SPOOL),log)
#if UseOracle
DBOBJS = dpm_oracle_ifce.Osuf
#if BuildDicomCopy
DBOBJS += dicomcopy_oracle_ifce.Osuf
#endif
ORAFLG = -DUSE_ORACLE
ORAINC = -I$(ORACLE_HOME)/precomp/public
DBCREAT = create_dpm_tables_oracle.sql
#else
#if UseMySQL
DBOBJS = dpm_mysql_ifce.Osuf
#if BuildDicomCopy
DBOBJS += dicomcopy_mysql_ifce.Osuf
#endif
MYSFLG = -DUSE_MYSQL
MYSQL_LOCATION = MySQLLocation
MYSINC = -I$(MYSQL_LOCATION)/include/mysql
LIBMYS = -L$(MYSQL_LOCATION)/$(_lib)/mysql -lmysqlclient -lz -lm
DBCREAT = create_dpm_tables_mysql.sql
#else
#if UsePostgres
DBOBJS = dpm_libpq_ifce.Osuf
#if BuildDicomCopy
DBOBJS += dicomcopy_libpq_ifce.Osuf
#endif
POSFLG = -DUSE_POSTGRES
LIBPOS = -lpq
DBCREAT = create_dpm_tables_postgres.sql
#endif
#endif
#endif
CNS_ROOT_DIR = NsRoot
CNS_ROOT = -DCNS_ROOT=\"$(CNS_ROOT_DIR)\"
STAGERSUPERUSER0 = StagerSuperUser
STAGERSUPERUSER  = -DSTAGERSUPERUSER=\"$(STAGERSUPERUSER0)\"
STAGERSUPERGROUP0 = StagerSuperGroup
STAGERSUPERGROUP = -DSTAGERSUPERGROUP=\"$(STAGERSUPERGROUP0)\"

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

DFLAGS = -DDPMCONFIG=\"$(DPMCONFIG)\" \
         -DLOGFILE=\"$(LOGFILE)\" \
	 $(CNS_ROOT) $(STAGERSUPERUSER) $(STAGERSUPERGROUP) \
         $(ORAFLG) $(MYSFLG) $(POSFLG) $(CSECFLAG) $(VIDFLAG) $(VOMSFLAG) $(DICOMFLAG)
 
CFLAGS = -g -I$(INCLUDES) $(MTCCFLAGS) $(DFLAGS) $(ORAINC) $(MYSINC) $(POSINC)

COMM######################### DEPENDENCY LIBRARIES ###############
 
DEPLIB = DepLibraryTargetName(lib,dpm)

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

#if BuildDPMClient
MANDIRS = $(LIBMANDIR) $(MANDIR)
#else
#if BuildDPMServer
MANDIRS = $(MANDIR)
#endif
#endif

#if BuildDPMServer
MANPAGESSERVER = $(MANDIR)/dpm.$(MANSUFFIX) \
           $(MANDIR)/dpm-buildfsv.$(MANSUFFIX) \
           $(MANDIR)/dpm-shutdown.$(MANSUFFIX)
#endif

#if BuildDPMClient
MANPAGESCLIENT = $(MANDIR)/dpm-addfs.$(MANSUFFIX) \
	   $(MANDIR)/dpm-addpool.$(MANSUFFIX) \
	   $(MANDIR)/dpm-drain.$(MANSUFFIX) \
	   $(MANDIR)/dpm-getspacemd.$(MANSUFFIX) \
	   $(MANDIR)/dpm-getspacetokens.$(MANSUFFIX) \
	   $(MANDIR)/dpm-modifyfs.$(MANSUFFIX) \
	   $(MANDIR)/dpm-modifypool.$(MANSUFFIX) \
	   $(MANDIR)/dpm-ping.$(MANSUFFIX) \
	   $(MANDIR)/dpm-qryconf.$(MANSUFFIX) \
	   $(MANDIR)/dpm-register.$(MANSUFFIX) \
	   $(MANDIR)/dpm-releasespace.$(MANSUFFIX) \
	   $(MANDIR)/dpm-replicate.$(MANSUFFIX) \
	   $(MANDIR)/dpm-reservespace.$(MANSUFFIX) \
	   $(MANDIR)/dpm-rmfs.$(MANSUFFIX) \
	   $(MANDIR)/dpm-rmpool.$(MANSUFFIX) \
	   $(MANDIR)/dpm-updatespace.$(MANSUFFIX) \
	   $(LIBMANDIR)/dpm_abortfiles.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_abortreq.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_addfs.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_addpool.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_copy.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_delreplica.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_extendfilelife.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_get.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getifcevers.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getpoolfs.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getpools.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getprotocols.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getreqid.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getreqsummary.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getspacemd.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getspacetoken.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getstatus_copyreq.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getstatus_getreq.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_getstatus_putreq.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_modifyfs.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_modifypool.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_ping.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_put.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_putdone.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_releasespace.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_relfiles.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_reservespace.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_rm.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_rmfs.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_rmpool.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_seterrbuf.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm_updatespace.$(LIBMANSUFFIX)
#endif

#if BuildInterfaces
MANPAGESIFCE = $(MANDIR)/dpm-listspaces.$(MANSUFFIX) \
	   $(LIBMANDIR)/dpm_python.$(LIBMANSUFFIX) \
	   $(LIBMANDIR)/dpm2_python.$(LIBMANSUFFIX)
#endif

#if BuildDPMClient
CLIENT = LibraryTargetName(dpm) \
	 ProgramTargetName(dpm-addfs) \
	 ProgramTargetName(dpm-addpool) \
	 ProgramTargetName(dpm-drain) \
	 ProgramTargetName(dpm-getspacemd) \
	 ProgramTargetName(dpm-getspacetokens) \
	 ProgramTargetName(dpm-modifyfs) \
	 ProgramTargetName(dpm-modifypool) \
	 ProgramTargetName(dpm-ping) \
	 ProgramTargetName(dpm-qryconf) \
	 ProgramTargetName(dpm-register) \
	 ProgramTargetName(dpm-releasespace) \
	 ProgramTargetName(dpm-replicate) \
	 ProgramTargetName(dpm-reservespace) \
	 ProgramTargetName(dpm-rmfs) \
	 ProgramTargetName(dpm-rmpool) \
	 ProgramTargetName(dpm-updatespace)
IPROGS_C = FileName($(BIN),ProgramTargetName(dpm-addfs)) \
	   FileName($(BIN),ProgramTargetName(dpm-addpool)) \
	   FileName($(BIN),ProgramTargetName(dpm-drain)) \
	   FileName($(BIN),ProgramTargetName(dpm-getspacemd)) \
	   FileName($(BIN),ProgramTargetName(dpm-getspacetokens)) \
	   FileName($(BIN),ProgramTargetName(dpm-modifyfs)) \
	   FileName($(BIN),ProgramTargetName(dpm-modifypool)) \
	   FileName($(BIN),ProgramTargetName(dpm-ping)) \
	   FileName($(BIN),ProgramTargetName(dpm-qryconf)) \
	   FileName($(BIN),ProgramTargetName(dpm-register)) \
	   FileName($(BIN),ProgramTargetName(dpm-releasespace)) \
	   FileName($(BIN),ProgramTargetName(dpm-replicate)) \
	   FileName($(BIN),ProgramTargetName(dpm-reservespace)) \
	   FileName($(BIN),ProgramTargetName(dpm-rmfs)) \
	   FileName($(BIN),ProgramTargetName(dpm-rmpool)) \
	   FileName($(BIN),ProgramTargetName(dpm-updatespace))
#endif

#if BuildDPMServer
SERVER = ProgramTargetName(dpm) \
	 ProgramTargetName(dpm-buildfsv) \
	 ProgramTargetName(dpm-shutdown) \
	 $(DBCREAT) \
	 DPMCONFIG.templ \
	 rc.dpm \
	 dpm.conf.templ
IPROGS_D = FileName($(BIN),ProgramTargetName(dpm)) \
	   FileName($(BIN),ProgramTargetName(dpm-buildfsv)) \
	   FileName($(BIN),ProgramTargetName(dpm-shutdown)) \
	   FileName($(DPMSHAREDIR),$(DBCREAT)) \
	   FileName($(SYSCONFDIR),DPMCONFIG.templ) \
	   FileName($(DPMSHAREDIR),rc.dpm) \
	   FileName($(SYSCONFDIR),dpm.conf.templ)
#endif

#if BuildInterfaces
DPM_IFCE = dpm.so \
           dpm.pm \
           _dpm.so \
           dpm.py \
           _dpm2.so \
           dpm2.py
IDPM_IFCE = $(PERLDIR) \
            $(PYTHONDIR)$(PYTHON_VERSION)/site-packages \
            FileName($(BIN),ProgramTargetName(dpm-listspaces)) \
            FileName($(PERLDIR),dpm.so) \
            FileName($(PERLDIR),dpm.pm) \
            FileName($(PYTHONDIR)$(PYTHON_VERSION)/site-packages,_dpm.so) \
            FileName($(PYTHONDIR)$(PYTHON_VERSION)/site-packages,dpm.py) \
            FileName($(PYTHONDIR)$(PYTHON_VERSION)/site-packages,_dpm2.so) \
            FileName($(PYTHONDIR)$(PYTHON_VERSION)/site-packages,dpm2.py)
#endif

DPMLIB_OBJS =	dpm_abortfiles.Osuf \
		dpm_abortreq.Osuf \
		dpm_addfs.Osuf \
		dpm_addpool.Osuf \
		dpm_apiinit.Osuf \
		dpm_auth.Osuf \
		dpm_copy.Osuf \
		dpm_delreplica.Osuf \
		dpm_errmsg.Osuf \
		dpm_extendfilelife.Osuf \
		dpm_freefilestatuses.Osuf \
		dpm_get.Osuf \
		dpm_getifcevers.Osuf \
		dpm_getpoolfs.Osuf \
		dpm_getpools.Osuf \
		dpm_getprotocols.Osuf \
		dpm_getreqid.Osuf \
		dpm_getreqsummary.Osuf \
		dpm_getspacemd.Osuf \
		dpm_getspacetoken.Osuf \
		dpm_getstatus_copyreq.Osuf \
		dpm_getstatus_getreq.Osuf \
		dpm_getstatus_putreq.Osuf \
		dpm_getturl.Osuf \
		dpm_inc_reqctr.Osuf \
		dpm_modifyfs.Osuf \
		dpm_modifypool.Osuf \
		dpm_ping.Osuf \
		dpm_put.Osuf \
		dpm_putdone.Osuf \
		dpm_register.Osuf \
		dpm_releasespace.Osuf \
		dpm_relfiles.Osuf \
		dpm_reservespace.Osuf \
		dpm_rm.Osuf \
		dpm_rmfs.Osuf \
		dpm_rmpool.Osuf \
		dpm_updatefilestatus.Osuf \
		dpm_updatespace.Osuf \
		send2dpm.Osuf
SRV_OBJS =	dpm_main.Osuf \
		dpm_buildfsv.Osuf\
		$(DBOBJS) \
		dpm_procreq.Osuf \
		dpm_proclreq.Osuf \
		dpm_procsubr.Osuf \
		dpm_util.Osuf \
		dpmlogit.Osuf \
		poolmgr.Osuf \
		sendrep.Osuf

all: $(CLIENT) $(SERVER) $(DPM_IFCE)

dicomcopy_libpq_ifce.c: DepSourceName(dicomcopy,dicomcopy_libpq_ifce.c)
	RemoveFile(dicomcopy_libpq_ifce.c)
	$(CP) DepSourceName(dicomcopy,dicomcopy_libpq_ifce.c) dicomcopy_libpq_ifce.c
dicomcopy_mysql_ifce.c: DepSourceName(dicomcopy,dicomcopy_mysql_ifce.c)
	RemoveFile(dicomcopy_mysql_ifce.c)
	$(CP) DepSourceName(dicomcopy,dicomcopy_mysql_ifce.c) dicomcopy_mysql_ifce.c
dicomcopy_oracle_ifce.pc: DepSourceName(dicomcopy,dicomcopy_oracle_ifce.pc)
	RemoveFile(dicomcopy_oracle_ifce.pc)
	$(CP) DepSourceName(dicomcopy,dicomcopy_oracle_ifce.pc) dicomcopy_oracle_ifce.pc

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

NormalProgramTarget(dpm-addfs,dpm-addfs.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-addpool,dpm-addpool.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-drain,dpm-drain.Osuf dpm_replicate.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-getspacemd,dpm-getspacemd.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-getspacetokens,dpm-getspacetokens.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-modifyfs,dpm-modifyfs.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-modifypool,dpm-modifypool.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-ping,dpm-ping.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-qryconf,dpm-qryconf.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-register,dpm-register.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-releasespace,dpm-releasespace.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-replicate,dpm-replicate.Osuf dpm_replicate.Osuf,$(DEPLIB), $(LIBS))
NormalProgramTarget(dpm-reservespace,dpm-reservespace.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-rmfs,dpm-rmfs.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-rmpool,dpm-rmpool.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-updatespace,dpm-updatespace.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-buildfsv,dpm-buildfsv.Osuf dpm_buildfsv.Osuf,$(DEPLIB),$(LIBS))
NormalProgramTarget(dpm-shutdown,dpm-shutdown.Osuf,$(DEPLIB),$(LIBS))

#if UseOracle && !defined(_WIN32)
dpm: $(SRV_OBJS) $(DEPLIB) $(BACKEND_LIBS)
	$(MAKE) -f oralink.mk dpm SRV_OBJS="$(SRV_OBJS)" CLDFLAGS=$(MTLDFLAGS) LIBS="$(SECLIB) $(BACKEND_LIBS) $(LIBS) $(MTLDLIBS) $(LIBUUID)"
#else
NormalProgramTarget(dpm,$(SRV_OBJS), $(DEPLIB) $(BACKEND_LIBS), $(MTLDFLAGS) $(SECLIB) $(BACKEND_LIBS) $(LIBS) $(MTLDLIBS) $(LIBORA) $(LIBMYS) $(LIBPOS) $(LIBUUID))
#endif
#if UseOracle
DPMCONFIG.templ: DPMCONFIG.oracle
	$(CP) $? $@
rc.dpm: dpm.scripts.oracle
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
dpm.conf.templ: dpm.sysconfig.oracle
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
create_dpm_tables_oracle.sql: dpm_oracle_tbl.sql
	$(CP) $? $@
#else
#if UseMySQL
DPMCONFIG.templ: DPMCONFIG.mysql
	$(CP) $? $@
rc.dpm: dpm.scripts.mysql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
dpm.conf.templ: dpm.sysconfig.mysql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
create_dpm_tables_mysql.sql: dpm_mysql_tbl.sql
	$(CP) $? $@
#else
#if UsePostgres
DPMCONFIG.templ: DPMCONFIG.postgresql
	$(CP) $? $@
rc.dpm: dpm.scripts.postgresql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE=$(DPMCONFIG)#' \
		-e 's#PREFIX=.*#PREFIX=$(prefix)#' $? > $@
dpm.conf.templ: dpm.sysconfig.postgresql
	sed -e 's#DPMCONFIGFILE=.*#DPMCONFIGFILE="$(DPMCONFIG)"#' $? > $@
create_dpm_tables_postgres.sql: dpm_postgresql_tbl.sql
	$(CP) $? $@
#endif
#endif
#endif

NormalLibraryTarget(dpm,$(DPMLIB_OBJS))

#if BuildDPMServer
install: $(BIN) $(DPMSHAREDIR) $(SYSCONFDIR) $(IPROGS_C) $(IPROGS_D) $(SPOOL) $(IDPM_IFCE)
#else
install: $(BIN) $(IPROGS_C) $(IDPM_IFCE)
#endif

InstallProgram(dpm-addfs,$(BIN),root,bin,755)
InstallProgram(dpm-addpool,$(BIN),root,bin,755)
InstallProgram(dpm-drain,$(BIN),root,bin,755)
InstallProgram(dpm-getspacemd,$(BIN),root,bin,755)
InstallProgram(dpm-getspacetokens,$(BIN),root,bin,755)
InstallProgram(dpm-modifyfs,$(BIN),root,bin,755)
InstallProgram(dpm-modifypool,$(BIN),root,bin,755)
InstallProgram(dpm-ping,$(BIN),root,bin,755)
InstallProgram(dpm-qryconf,$(BIN),root,bin,755)
InstallProgram(dpm-register,$(BIN),root,bin,755)
InstallProgram(dpm-releasespace,$(BIN),root,bin,755)
InstallProgram(dpm-replicate,$(BIN),root,bin,755)
InstallProgram(dpm-reservespace,$(BIN),root,bin,755)
InstallProgram(dpm-rmfs,$(BIN),root,bin,755)
InstallProgram(dpm-rmpool,$(BIN),root,bin,755)
InstallProgram(dpm-updatespace,$(BIN),root,bin,755)
InstallProgram(dpm-buildfsv,$(BIN),root,bin,755)
InstallProgram(dpm-shutdown,$(BIN),root,bin,755)
InstallProgram(dpm,$(BIN),root,bin,755)
InstallTarget(DPMCONFIG.templ,root,bin,0644,$(SYSCONFDIR))
InstallTarget(rc.dpm,root,bin,0644,$(DPMSHAREDIR))
InstallTarget(dpm.conf.templ,root,bin,0644,$(SYSCONFDIR))
#if BuildDPMServer
InstallTarget($(DBCREAT),root,bin,0644,$(DPMSHAREDIR))
#endif

COMM# -D_GNU_SOURCE is required by Perl using glibc (LGPL v2.1)
dpm.pm : dpm.so
dpm.so : dpm.i ../h/dpm_api.h ../h/dpns_api.h ../h/Cns_api.h
	RemoveFiles(dpm_perlwrap.o dpm_perlwrap.c)
	$(SWIG) -perl -I$(INCLUDES) -DNSTYPE_DPNS -o dpm_perlwrap.c dpm.i
	$(CC) -c $(MTCCFLAGS) -I$(INCLUDES) $(INCLUDE_PERL) -Dbool=char -D_GNU_SOURCE -DNSTYPE_DPNS dpm_perlwrap.c
	$(LD) $(SHLIBLDFLAGS) -o dpm.so dpm_perlwrap.o $(LIBS) -ldpm

dpm.py : _dpm.so
_dpm.so : dpm.i ../h/dpm_api.h ../h/dpns_api.h ../h/Cns_api.h
	RemoveFiles(dpm_wrap.o dpm_wrap.c)
	$(SWIG) -python -I$(INCLUDES) -DNSTYPE_DPNS dpm.i
	$(CC) -c $(MTCCFLAGS) -I$(INCLUDES) $(INCLUDE_PYTHON) -DNSTYPE_DPNS dpm_wrap.c
	$(LD) $(SHLIBLDFLAGS) -o _dpm.so dpm_wrap.o $(LIBS) -ldpm

dpm2.py : _dpm2.so
_dpm2.so : dpm2.i ../h/dpm_api.h ../h/dpns_api.h ../h/Cns_api.h
	RemoveFiles(dpm2_wrap.o dpm2_wrap.c)
	$(SWIG) -python -I$(INCLUDES) -I../ns -DNSTYPE_DPNS dpm2.i
	$(CC) -c $(MTCCFLAGS) -I$(INCLUDES) $(INCLUDE_PYTHON) -DNSTYPE_DPNS dpm2_wrap.c
	$(LD) $(SHLIBLDFLAGS) -o _dpm2.so dpm2_wrap.o $(LIBS) -ldpm

InstallTarget(dpm.so,root,root,0755,$(PERLDIR))
InstallTarget(dpm.pm,root,root,0644,$(PERLDIR))
InstallTarget(_dpm.so,root,root,0755,$(PYTHONDIR)$(PYTHON_VERSION)/site-packages)
InstallTarget(dpm.py,root,root,0644,$(PYTHONDIR)$(PYTHON_VERSION)/site-packages)
InstallTarget(_dpm2.so,root,root,0755,$(PYTHONDIR)$(PYTHON_VERSION)/site-packages)
InstallTarget(dpm2.py,root,root,0644,$(PYTHONDIR)$(PYTHON_VERSION)/site-packages)
InstallProgram(dpm-listspaces,$(BIN),root,bin,755)

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

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

#if BuildInterfaces
MakeDir($(PERLDIR),root,root,0755)
MakeDir($(PYTHONDIR)$(PYTHON_VERSION)/site-packages,root,root,0755)
#endif

install.man: $(MANDIRS) $(MANPAGESCLIENT) $(MANPAGESSERVER) $(MANPAGESIFCE)

IMANPAGE(dpm,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-buildfsv,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-shutdown,$(MANDIR),$(MANSUFFIX))

IMANPAGE(dpm-addfs,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-addpool,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-drain,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-getspacemd,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-getspacetokens,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-modifyfs,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-modifypool,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-ping,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-qryconf,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-register,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-releasespace,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-replicate,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-reservespace,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-rmfs,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-rmpool,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm-updatespace,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm_abortfiles,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_abortreq,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_addfs,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_addpool,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_copy,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_delreplica,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_extendfilelife,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_get,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getifcevers,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getpoolfs,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getpools,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getprotocols,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getreqid,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getreqsummary,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getspacemd,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getspacetoken,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getstatus_copyreq,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getstatus_getreq,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_getstatus_putreq,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_modifyfs,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_modifypool,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_ping,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_put,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_putdone,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_releasespace,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_relfiles,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_reservespace,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_rm,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_rmfs,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_rmpool,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_seterrbuf,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm_updatespace,$(LIBMANDIR),$(LIBMANSUFFIX))

IMANPAGE(dpm-listspaces,$(MANDIR),$(MANSUFFIX))
IMANPAGE(dpm_python,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(dpm2_python,$(LIBMANDIR),$(LIBMANSUFFIX))

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

clean:
	-@RemoveFiles(FilesToClean)

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

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

Makefiles:

MakeDepLibrary(dicomcopy,dicomcopy)
MakeDepLibrary(dpmcopy,dpmcopy)
	
FORCE:

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

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