COMM
COMM  Copyright (C) 2007-2010 by CERN
COMM  All rights reserved
COMM
COMM  @(#)$RCSfile: Imakefile,v $ $Revision: 9297 $ $Date: 2013-08-08 18:03:24 +0200 (Thu, 08 Aug 2013) $ CERN Jean-Philippe Baud

COMM    Make dicomcopy server

DPMSHAREDIR = FileName($(SHAREDIR),lcgdm)
#if BuildSecurity
CSECFLAG = -DCSEC
#if UseGSI
GLOBUS_LOCATION=GlobusLocation
#if EMIBuild
GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/$(_lib) -lglobus_gssapi_gsi -lglobus_gss_assist
#else
GLOBUS_FLAVOUR=GlobusFlavour
GLOBUS_LIBS=-L$(GLOBUS_LOCATION)/lib -lglobus_gssapi_gsi_$(GLOBUS_FLAVOUR) -lglobus_gss_assist_$(GLOBUS_FLAVOUR)
#endif
LIBCSEC += $(GLOBUS_LIBS)
#endif
#if UseVirtualIds
VIDFLAG = -DVIRTUAL_ID
#endif
#if UseVOMS
VOMSFLAG = -DUSE_VOMS
#endif
#endif
DPMCONFIG = DpmConfigFile
INCLUDES = FileName(..,h)
#if SOLARIS
LIBS = -L../shlib -ldpm -llcgdm -lsocket -lnsl -ldl
#else
LIBS = -L../shlib -ldpm -llcgdm $(LIBCSEC) -ldl
#endif
SPOOL = DicomcopySpool
LOGFILE = FileName($(SPOOL),log)
#if UseOracle
DBOBJS = dpm_oracle_ifce.Osuf dicomcopy_oracle_ifce.Osuf
ORAFLG = -DUSE_ORACLE
ifdef ORACLE_INCLUDE
ORAINC = -I$(ORACLE_INCLUDE)
else
ORAINC = -I$(ORACLE_HOME)/precomp/public
endif
DBCREAT = create_dicomcopy_tables_oracle.sql
#else
#if UseMySQL
DBOBJS = dpm_mysql_ifce.Osuf dicomcopy_mysql_ifce.Osuf
MYSFLG = -DUSE_MYSQL
MYSQL_LOCATION = MySQLLocation
MYSINC = -I$(MYSQL_LOCATION)/include/mysql
LIBMYS = -L$(MYSQL_LOCATION)/$(_lib)/mysql -lmysqlclient
DBCREAT = create_dicomcopy_tables_mysql.sql
#else
#if UsePostgres
DBOBJS = dpm_libpq_ifce.Osuf dicomcopy_libpq_ifce.Osuf
POSFLG = -DUSE_POSTGRES
LIBPOS = -lpq
DBCREAT = create_dicomcopy_tables_postgres.sql
#endif
#endif
#endif

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

DFLAGS = -DDPMCONFIG=\"$(DPMCONFIG)\" \
         -DLOGFILE=\"$(LOGFILE)\" \
	 $(ORAFLG) $(MYSFLG) $(POSFLG) $(CSECFLAG) $(VIDFLAG) $(VOMSFLAG)

CFLAGS = -g -I$(INCLUDES) $(DFLAGS) $(ORAINC) $(MYSINC) $(POSINC)

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

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

MANPAGES = $(DMONMANDIR)/dicomcopyd.$(DMONMANSUFFIX)

SERVER = ProgramTargetName(dicomcopyd) \
	 $(DBCREAT) \
	 rc.dicomcopyd \
	 dicomcopyd.conf.templ \
	 dicomcopyd.logrotate
PLUGGIN = SharedLibraryTargetName(dpm_dicom)
IPROGS_D = FileName($(SBIN),ProgramTargetName(dicomcopyd)) \
	   FileName($(DPMSHAREDIR),$(DBCREAT)) \
	   FileName($(INITRCDIR),dicomcopyd) \
	   FileName($(SYSCONFDIR),dicomcopyd) \
	   FileName($(LOGROTATEDIR),dicomcopyd)

SRV_OBJS =	dicomcopy_serv.Osuf \
		$(DBOBJS) \
		../dpm/dpmlogit.Osuf \
		../dpm/dpm_util.Osuf \
		../dpm/sendrep.Osuf

all: $(SERVER) $(PLUGGIN)

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)
dicomcopy_oracle_ifce.c: dicomcopy_oracle_ifce.pc
	        proc INAME=dicomcopy_oracle_ifce INCLUDE=$(INCLUDES) CHAR_MAP=STRING PARSE=FULL $(WNT_SYS_INCLUDE)
#define YES 1

dicomcopy_inc_reqctr.Osuf: dicomcopy_inc_reqctr.c
	$(CC) -c -g -I$(INCLUDES) $(MTCCFLAGS) $(CSECFLAG) dicomcopy_inc_reqctr.c
send2dicomcopyd.Osuf: send2dicomcopyd.c
	$(CC) -c -g -I$(INCLUDES) $(MTCCFLAGS) $(CSECFLAG) send2dicomcopyd.c

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

NormalLibraryTarget(dicomcopy,dicomcopy_inc_reqctr.Osuf send2dicomcopyd.Osuf)

SharedLibraryTargetName(dpm_dicom): dpm_dicomcopyfile.Osuf
	$(LD) $(SHLIBLDFLAGS) -o $@ dpm_dicomcopyfile.Osuf -L../shlib -llcgdm

install: $(BIN) $(SBIN) $(DPMSHAREDIR) $(SYSCONFDIR) $(LOGROTATEDIR) $(INITRCDIR) $(IPROGS_D) $(SPOOL)

InstallProgram(dicomcopyd,$(SBIN),root,bin,755)
InstallTargetRename(rc.dicomcopyd,root,bin,0644,$(INITRCDIR),dicomcopyd)
InstallTargetRename(dicomcopyd.conf.templ,root,bin,0644,$(SYSCONFDIR),dicomcopyd)
InstallTargetRename(dicomcopyd.logrotate,root,bin,0644,$(LOGROTATEDIR),dicomcopyd)
InstallTarget($(DBCREAT),root,bin,0644,$(DPMSHAREDIR))

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

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

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

IMANPAGE(dicomcopyd,$(DMONMANDIR),$(DMONMANSUFFIX))

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

clean:
	-@RemoveFiles(FilesToClean)

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 ##########################

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