COMM
COMM  Copyright (C) 1993-1999 by CERN/CN/PDP/DH
COMM  All rights reserved
COMM
COMM       @(#)Imakefile	1.31 06/15/99 CERN IT-PDP/DM Jean-Philippe Baud
 
COMM 	Make stage daemon programs. 

#if ultrix
CPSHELL = /bin/sh5
#else
CPSHELL = /bin/sh
#endif
#if UseTms
TMS = TMS
#else
TMS = NOTMS
#endif
#if sgi
#if OSMajorVersion >= 6
LIBS = -L../lib -lshift
#else
LIBS = -L../lib -lshift -lsun
#endif
#else
#if linux
LIBS = -L../lib -lshift -lnsl
#else
#if SOLARIS
LIBS = -L../lib -lshift -lsocket -lnsl
#else
#if __Lynx__
LIBS = -L../lib -lshift -lnsl -lbsd
#else
#if _WIN32
LIBS = ..\lib\shift.lib wsock32.lib advapi32.lib mpr.lib
#else
LIBS = -L../lib -lshift
#endif
#endif
#endif
#endif
#endif
#ifndef _WIN32
MATHLIB = -lm
#endif
NOMORESTAGE = FileName(OperatorDir,nomorestage)
OPSDIR = OperatorDir
OPSGRP = OperatorGid
SPOOL = StageSpool
#if Accounting
SACCTDIR = SacctDir
SACCTFILE = SacctDir/sacct
ACCTFILE = -DACCTFILE=\"$(SACCTFILE)\"
STAGEACCT = stageacct.Osuf
#endif
STGGRP = StagerGid
STGCONFIG = StageConfigFile

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

DFLAGS = -DBIN=\"$(BIN)\" \
	 -DLOGFILE=\"$(SPOOL)/log\" \
	 -DSTGCAT=\"$(SPOOL)/stgcat\" \
	 -DSTGPATH=\"$(SPOOL)/stgpath\" \
	 -DSTGCONFIG=\"$(STGCONFIG)\" \
	 -DSTGGRP=\"$(STGGRP)\" \
	 -DNOMORESTAGE=\"$(NOMORESTAGE)\" \
	 -D$(TMS) $(ACCTFLAG) $(ACCTFILE)

CFLAGS =	-I../h $(DFLAGS)

COMM######################### DEPENDENCY LIBRARIES ###############

GLOBLIB = DepLibraryTargetName(lib,shift)

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

MANPAGES = $(MANDIR)/stagein.$(MANSUFFIX) $(MANDIR)/stageout.$(MANSUFFIX) \
	   $(MANDIR)/stageput.$(MANSUFFIX) $(MANDIR)/stagewrt.$(MANSUFFIX) \
	   $(MANDIR)/stageqry.$(MANSUFFIX) $(MANDIR)/stageclr.$(MANSUFFIX) \
	   $(MANDIR)/stage.$(MANSUFFIX) $(MANDIR)/stageupdc.$(MANSUFFIX) \
	   $(MANDIR)/stagecat.$(MANSUFFIX) $(MANDIR)/stagealloc.$(MANSUFFIX) \
	   $(MANDIR)/stageget.$(MANSUFFIX) \
	   $(MANDIR)/stageinit.$(MANSUFFIX) $(MANDIR)/stgdaemon.$(MANSUFFIX)
#if Accounting
MANSSTAT = $(MANDIR)/stagestat.$(MANSUFFIX)
#endif
EXPORTMANPAGES = $(EXPORTMAN)/man1/stagein.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stageout.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stageput.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stagewrt.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stageqry.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stageclr.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stage.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stageupdc.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stagecat.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stagealloc.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stageget.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stageinit.$(MANSUFFIX) \
	   $(EXPORTMAN)/man1/stgdaemon.$(MANSUFFIX)
#if Accounting
EMANSSTAT = $(EXPORTMAN)/man1/stagestat.$(MANSUFFIX)
#endif
#if BuildStageClient
PROGS_C = ProgramTargetName(stagein) \
	  ProgramTargetName(stageout) \
	  ProgramTargetName(stageput) \
	  ProgramTargetName(stagewrt) \
	  ProgramTargetName(stageqry) \
	  ProgramTargetName(stageclr) \
	  ProgramTargetName(stagecat) \
	  ProgramTargetName(stagealloc) \
	  ProgramTargetName(stageget)
IPROGS_C = FileName($(BIN),ProgramTargetName(stagein)) \
	   FileName($(BIN),ProgramTargetName(stageout)) \
	   FileName($(BIN),ProgramTargetName(stageput)) \
	   FileName($(BIN),ProgramTargetName(stagewrt)) \
	   FileName($(BIN),ProgramTargetName(stageqry)) \
	   FileName($(BIN),ProgramTargetName(stageclr)) \
	   FileName($(BIN),ProgramTargetName(stagecat)) \
	   FileName($(BIN),ProgramTargetName(stagealloc)) \
	   FileName($(BIN),ProgramTargetName(stageget))
EPROGS_C = $(EXPORTBIN)/stagein \
	   $(EXPORTBIN)/stageout \
	   $(EXPORTBIN)/stageput \
	   $(EXPORTBIN)/stagewrt \
	   $(EXPORTBIN)/stageqry \
	   $(EXPORTBIN)/stageclr \
	   $(EXPORTBIN)/stagecat \
	   $(EXPORTBIN)/stagealloc \
	   $(EXPORTBIN)/stageget
#endif
#if BuildStageDaemon
PROGS_D = ProgramTargetName(stgdaemon) \
	  ProgramTargetName(cleaner) \
	  cpdskdsk \
	  ProgramTargetName(stageinit) \
	  ProgramTargetName(stager)
#if Accounting
PROGS_Z = ProgramTargetName(stagestat)
#endif
IPROGS_D = FileName($(BIN),ProgramTargetName(stgdaemon)) \
	   FileName($(BIN),ProgramTargetName(cleaner)) \
	   FileName($(BIN),cpdskdsk) \
	   FileName($(BIN),ProgramTargetName(stageinit)) \
	   FileName($(BIN),ProgramTargetName(stager))
#if Accounting
IPROGS_Z = FileName($(BIN),ProgramTargetName(stagestat))
#endif
EPROGS_D = $(EXPORTBIN)/stgdaemon \
	   $(EXPORTBIN)/cleaner \
	   $(EXPORTBIN)/cpdskdsk \
	   $(EXPORTBIN)/stageinit \
	   $(EXPORTBIN)/stager
#if Accounting
EPROGS_Z = $(EXPORTBIN)/stagestat
#endif
#endif
#if BuildStage4TapeServer || BuildStageClient
PROGS_S = ProgramTargetName(stageupdc)
IPROGS_S = FileName($(BIN),ProgramTargetName(stageupdc))
EPROGS_S = $(EXPORTBIN)/stageupdc
#endif

all:	$(PROGS_C) $(PROGS_D) $(PROGS_S) $(PROGS_Z)

NormalProgramTarget(stagein, \
 stagein.Osuf buildupath.Osuf getlisttp.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

LinkFile(ProgramTargetName(stageout),ProgramTargetName(stagein))

NormalProgramTarget(stageput, \
 stageput.Osuf buildupath.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

LinkFile(ProgramTargetName(stagewrt),ProgramTargetName(stagein))

NormalProgramTarget(stageqry, \
 stageqry.Osuf getlisttp.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

NormalProgramTarget(stageclr, \
 stageclr.Osuf buildupath.Osuf getlisttp.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

LinkFile(ProgramTargetName(stagecat),ProgramTargetName(stagein))

NormalProgramTarget(stagealloc, \
 stagealloc.Osuf buildupath.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

NormalProgramTarget(stageget, \
 stageget.Osuf buildupath.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

NormalProgramTarget(stageupdc, \
 stageupdc.Osuf buildupath.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

NormalProgramTarget(stageinit, \
 stageinit.Osuf send2stgd.Osuf,$(GLOBLIB),$(LIBS))

NormalProgramTarget(stagestat,stagestat.Osuf,$(GLOBLIB),$(LIBS))

NormalProgramTarget(stgdaemon, \
 stgdaemon.Osuf packfseq.Osuf poolmgr.Osuf procalloc.Osuf procclr.Osuf \
 procio.Osuf procqry.Osuf procupd.Osuf sendrep.Osuf stglogit.Osuf $(STAGEACCT),\
 $(GLOBLIB),$(LIBS) $(MATHLIB))

NormalProgramTarget(cleaner,cleaner.Osuf stglogit.Osuf,$(GLOBLIB),$(LIBS))

cpdskdsk:	cpdskdsk.sh
	sed -e s!CPSHELL!$(CPSHELL)! cpdskdsk.sh | sed -e s!BINDIR!$(BIN)! > cpdskdsk
	chmod 755 cpdskdsk

NormalProgramTarget(stager, \
 stager.Osuf packfseq.Osuf sendrep.Osuf stglogit.Osuf,$(GLOBLIB),$(LIBS))

MakeDepLibrary(lib,shift)

#if BuildStageDaemon
install: $(BIN) $(IPROGS_C) $(IPROGS_D) $(IPROGS_S) $(IPROGS_Z) $(SPOOL) $(SACCTDIR)
#else
install: $(BIN) $(IPROGS_C) $(IPROGS_D) $(IPROGS_S) $(IPROGS_Z)
#endif

export: $(EPROGS_C) $(EPROGS_D) $(EPROGS_S) $(EPROGS_Z)

exportman: $(EXPORTMANPAGES) $(EMANSSTAT)

exportshr: 


InstallProgram(stagein,$(BIN),root,bin,755)
IEXPORT(stagein,$(EXPORTBIN));

InstallProgram(stageout,$(BIN),root,bin,755)
IEXPORT(stageout,$(EXPORTBIN));

InstallProgram(stageput,$(BIN),root,bin,755)
IEXPORT(stageput,$(EXPORTBIN));

InstallProgram(stagewrt,$(BIN),root,bin,755)
IEXPORT(stagewrt,$(EXPORTBIN));

InstallProgram(stageqry,$(BIN),root,bin,755)
IEXPORT(stageqry,$(EXPORTBIN));

InstallProgram(stageclr,$(BIN),root,bin,755)
IEXPORT(stageclr,$(EXPORTBIN));

InstallProgram(stagecat,$(BIN),root,bin,750)
IEXPORT(stagecat,$(EXPORTBIN));

InstallProgram(stagealloc,$(BIN),root,bin,755)
IEXPORT(stagealloc,$(EXPORTBIN));

InstallProgram(stageget,$(BIN),root,bin,755)
IEXPORT(stageget,$(EXPORTBIN));

InstallProgram(stageupdc,$(BIN),root,bin,755)
IEXPORT(stageupdc,$(EXPORTBIN));

InstallProgram(stageinit,$(BIN),root,bin,750)
IEXPORT(stageinit,$(EXPORTBIN));

InstallProgram(stagestat,$(BIN),root,bin,755)
IEXPORT(stagestat,$(EXPORTBIN));

InstallProgram(stgdaemon,$(BIN),root,$(OPSGRP),6750)
IEXPORT(stgdaemon,$(EXPORTBIN));

InstallProgram(cleaner,$(BIN),root,bin,750)
IEXPORT(cleaner,$(EXPORTBIN));

$(BIN)/cpdskdsk:	cpdskdsk
	-mv $(BIN)/cpdskdsk $(BIN)/OLDcpdskdsk
	cp cpdskdsk $(BIN)
	chown root $(BIN)/cpdskdsk
	chgrp bin $(BIN)/cpdskdsk
	chmod 755 $(BIN)/cpdskdsk
IEXPORT(cpdskdsk,$(EXPORTBIN));

InstallProgram(stager,$(BIN),root,bin,750)
IEXPORT(stager,$(EXPORTBIN));

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

#if Accounting
MakeDir($(SACCTDIR),root,bin,0777)
#endif

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

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

IMANPAGE(stage,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stagein,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stageout,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stageput,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stagewrt,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stageqry,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stageclr,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stageupdc,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stagecat,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stagealloc,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stageget,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stageinit,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stagestat,$(MANDIR),$(MANSUFFIX))
IMANPAGE(stgdaemon,$(MANDIR),$(MANSUFFIX))
EMANPAGE(stage,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stagein,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stageout,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stageput,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stagewrt,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stageqry,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stageclr,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stageupdc,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stagecat,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stagealloc,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stageget,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stageinit,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stagestat,$(EXPORTMAN)/man1,$(MANSUFFIX))
EMANPAGE(stgdaemon,$(EXPORTMAN)/man1,$(MANSUFFIX))

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

clean:
	-@RemoveFiles(FilesToClean)

clobber:	clean
	-@RemoveFiles($(PROGS_C) $(PROGS_D) $(PROGS_S))

Makefiles:

FORCE:

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

buildupath.Osuf:	stage.h
cleaner.Osuf:	stage.h
getlisttp.Osuf:	stage.h
packfseq.Osuf:	stage.h
poolmgr.Osuf:	stage.h
procalloc.Osuf:	stage.h ../h/sacct.h
procclr.Osuf:	stage.h ../h/sacct.h
procio.Osuf:	stage.h ../h/sacct.h
procqry.Osuf:	stage.h ../h/sacct.h
procupd.Osuf:	stage.h ../h/sacct.h
send2stgd.Osuf:	stage.h
sendrep.Osuf:	stage.h
stageacct.Osuf:	stage.h ../h/sacct.h
stagealloc.Osuf:	stage.h
stageclr.Osuf:	stage.h
stageget.Osuf:	stage.h
stagein.Osuf:	stage.h
stageinit.Osuf:	stage.h
stageput.Osuf:	stage.h
stageqry.Osuf:	stage.h
stagestat.Osuf:	stage.h ../h/sacct.h
stageupdc.Osuf:	stage.h
stager.Osuf:	stage.h
stgdaemon.Osuf:	stage.h ../h/sacct.h
stglogit.Osuf:	stage.h
