Skip to content
Snippets Groups Projects
Commit d05959d7 authored by Sebastien Ponce's avatar Sebastien Ponce Committed by Steven Murray
Browse files

Major simplification/rewrite of the Imakfile infrastructure. Main lines are :

  - creation of small libraries per component, all called libcastor<component> and all lower case named. Note some renaming in the existing names, like libcastorCommonOra -> libcastorcommonora
  - suppression of libshift for internal use, preferring to use a restricted set of small libraries. libshift only exists now for backward compatibility reasons on the client side and does not contain any code, only dependencies to the new libraries
  - creation of easy build targets, such as NormalProgramTarget, SharedLibraryTarget or EXEMANPAGE. Look at examples on how to use them
  - proper enforcement of all Makefiles dependencies, using DependOnLibrary macro
  - automation of a lot of nasty repetitive actions, e.g. looping on subdirectories for all Makefile standard targets
  - dropped support for many outdated (to say the least) external tools. e.g. hpss, cray OS, dbana, ....
parent 9f9d8163
No related branches found
No related tags found
No related merge requests found
......@@ -2,161 +2,31 @@ COMM
COMM Copyright (C) 2001-2002 by CERN/IT/PDP/DM
COMM All rights reserved
COMM
COMM @(#)$RCSfile: Imakefile,v $ $Revision: 1.3 $ $Date: 2007/11/28 10:14:43 $ CERN IT-PDP/DM Jean-Philippe Baud
COMM @(#)$RCSfile: Imakefile,v $ $Revision: 1.4 $ $Date: 2008/11/26 14:51:58 $ CERN IT-PDP/DM Jean-Philippe Baud
COMM Make SCSI media changer server programs.
#include <Project.tmpl>
INCLUDES = FileName(..,h)
#if linux
LIBS = -L../shlib -lshift $(ADNSLIB) -lnsl -Wl,-rpath-link,../shlib
#else
#if SOLARIS
LIBS = -L../shlib -lshift -lsocket -lnsl
#else
#if defined(_AIX) && defined(_IBMR2)
LIBS = -L../shlib -lshift -lodm
#else
#if defined(__alpha) && defined(__osf__)
LIBS = -no_so -L../shlib -lshift -so_archive
#else
#if _WIN32
LIBS = ..\lib\shift.lib wsock32.lib advapi32.lib
#else
LIBS = -L../shlib -lshift
#endif
#endif
#endif
#endif
#endif
OPSGRP = OperatorGid
SPOOL = RmcSpool
CFLAGS = -I../h $(MTCCFLAGS) -DBIN=\"$(BIN)\" -DLOGFILE=\"$(SPOOL)/log\"
COMM######################### FLAGS ##############################
DFLAGS = -DBIN=\"$(BIN)\" \
-DLOGFILE=\"$(SPOOL)/log\"
CFLAGS = -I$(INCLUDES) $(MTCCFLAGS) $(DFLAGS)
COMM######################### DEPENDENCY LIBRARIES ###############
GLOBLIB = DepSharedLibraryTargetName(shlib,shift)
COMM######################### RULES ##############################
MANPAGES = $(LIBMANDIR)/rmc_dismount.$(LIBMANSUFFIX) \
$(LIBMANDIR)/rmc_export.$(LIBMANSUFFIX) \
$(LIBMANDIR)/rmc_find_cartridge.$(LIBMANSUFFIX) \
$(LIBMANDIR)/rmc_get_geometry.$(LIBMANSUFFIX) \
$(LIBMANDIR)/rmc_import.$(LIBMANSUFFIX) \
$(LIBMANDIR)/rmc_mount.$(LIBMANSUFFIX) \
$(LIBMANDIR)/rmc_read_elem_status.$(LIBMANSUFFIX) \
$(LIBMANDIR)/rmc_seterrbuf.$(LIBMANSUFFIX) \
$(MANDIR)/rmcdaemon.$(MANSUFFIX)
EXPORTMANPAGES = FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_dismount.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_export.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_find_cartridge.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_get_geometry.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_import.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_mount.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_read_elem_status.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(LIBMANSUFFIX),rmc_seterrbuf.$(LIBMANSUFFIX))) \
FileName($(EXPORTMAN),FileName(man$(MANSUFFIX),rmcdaemon.$(MANSUFFIX)))
#if BuildRmcServer
PROGS_D = ProgramTargetName(rmcdaemon)
IPROGS_D = FileName($(BIN),ProgramTargetName(rmcdaemon))
#endif
RMCDAEMON_OBJS = rmc_serv.Osuf \
rmc_procreq.Osuf \
rmclogit.Osuf \
sendrep.Osuf \
usrmsg.Osuf
RMCLIB_OBJS = rmc_dismount.Osuf \
rmc_errmsg.Osuf \
rmc_export.Osuf \
rmc_find_cartridge.Osuf \
rmc_get_geometry.Osuf \
rmc_import.Osuf \
rmc_mount.Osuf \
rmc_read_elem_status.Osuf \
send2rmc.Osuf
#if BuildRmcLibrary
RMCLIBTARGET=LibraryTargetName(rmc)
#endif
all: $(RMCLIBTARGET) $(PROGS_D)
NormalProgramTarget(rmcdaemon,$(RMCDAEMON_OBJS),$(GLOBLIB),$(LIBS))
NormalLibraryTarget(rmc,$(RMCLIB_OBJS))
MakeDepSharedLibrary(shlib,shift)
DependsOnLibrary(common,castorcommon)
DependsOnLibrary(upv,castorupv)
DependsOnLibrary(dlf,castordlf)
DependsOnLibrary(tape,castortape)
#if BuildRmcServer
install: $(BIN) $(IPROGS_D) $(SPOOL) $(SACCTDIR)
#else
install:
#endif
InstallProgram(rmcdaemon,$(BIN),root,$(OPSGRP),750)
MakeDir($(BIN),root,bin,0755)
RMCDAEMON_OBJS = rmc_serv.Osuf rmc_procreq.Osuf rmclogit.Osuf sendrep.Osuf usrmsg.Osuf
OPSGRP = OperatorGid
NormalProgramTarget(rmcdaemon,$(RMCDAEMON_OBJS),$(GLOBLIB),$(LIBS),root,$(OPSGRP),750)
MakeDir($(SPOOL),root,bin,0755)
install.man: $(MANDIR) $(MANPAGES)
MakeDir($(MANDIR),root,bin,0755)
IMANPAGE(rmc_dismount,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmc_export,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmc_find_cartridge,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmc_get_geometry,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmc_import,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmc_mount,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmc_read_elem_status,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmc_seterrbuf,$(LIBMANDIR),$(LIBMANSUFFIX))
IMANPAGE(rmcdaemon,$(MANDIR),$(MANSUFFIX))
EMANPAGE(rmc_dismount,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmc_export,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmc_find_cartridge,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmc_get_geometry,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmc_import,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmc_mount,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmc_read_elem_status,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmc_seterrbuf,FileName($(EXPORTMAN),man$(LIBMANSUFFIX)),$(LIBMANSUFFIX))
EMANPAGE(rmcdaemon,FileName($(EXPORTMAN),man$(MANSUFFIX)),$(MANSUFFIX))
export:
exportman: $(EXPORTMANPAGES)
exportshr:
COMM###################### CLEANING RULES #######################
clean:
-@RemoveFiles(FilesToClean)
clobber: clean
-@RemoveFiles($(PROGS_C) $(PROGS_D) LibraryTargetName(rmc))
#if _WIN32
depend:
@echo Not supported on this platform
#else
depend:
makedepend -Y$(INCLUDES) *.c 2> /dev/null
ADMMANPAGE(rmcdaemon)
#endif
Makefiles:
FORCE:
COMM####################### DEPENDENCIES ##########################
COMM DO NOT DELETE THIS LINE -- make depend depends on it.
LIBMANPAGE(rmc_dismount)
LIBMANPAGE(rmc_export)
LIBMANPAGE(rmc_find_cartridge)
LIBMANPAGE(rmc_get_geometry)
LIBMANPAGE(rmc_import)
LIBMANPAGE(rmc_mount)
LIBMANPAGE(rmc_read_elem_status)
LIBMANPAGE(rmc_seterrbuf)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment