From c5400619a5f9fb8120e831623209c22fbdbe3015 Mon Sep 17 00:00:00 2001
From: Steven Murray <steven.murray@cern.ch>
Date: Thu, 31 Oct 2013 15:24:26 +0100
Subject: [PATCH] CASTOR/xrootd/CMakeLists.txt now builds all of its directory,
 but it still fails to install.

---
 CMakeLists.txt         | 55 +++++++++++++++++++++++++++++++++++++-----
 castor/CMakeLists.txt  |  6 -----
 cmake/Findxrootd.cmake |  8 ++++++
 xrootd/CMakeLists.txt  | 32 ++++++++++++++++++++++++
 4 files changed, 89 insertions(+), 12 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f0b6ca3000..bdd630ec2b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -67,13 +67,32 @@ execute_process (
 string(REGEX REPLACE "\n" "" CASTOR_DEST_PYTHON_LIBDIR ${CASTOR_DEST_PYTHON_LIBDIR})
 message(STATUS "CASTOR_DEST_PYTHON_LIBDIR = '${CASTOR_DEST_PYTHON_LIBDIR}'")
 
+set (CASTOR_BIN_SCRIPT_PERMS
+  OWNER_READ OWNER_WRITE OWNER_EXECUTE
+  GROUP_READ             OWNER_EXECUTE
+  WORLD_READ             WORLD_EXECUTE)
+
+set (CASTOR_ETC_PERMS
+  OWNER_READ OWNER_WRITE
+  GROUP_READ
+  WORLD_READ            )
+
+set (CASTOR_ETC_CRON_D_PERMS
+  OWNER_READ OWNER_WRITE
+  GROUP_READ
+  WORLD_READ            )
+
+set (CASTOR_HEADER_PERMS
+  OWNER_READ OWNER_WRITE
+  GROUP_READ
+  WORLD_READ)
 
 set (CASTOR_MAN_PAGE_PERMS
   OWNER_READ OWNER_WRITE
   GROUP_READ
   WORLD_READ)
 
-set (CASTOR_HEADER_PERMS
+set (CASTOR_SYSCONFIG_PERMS
   OWNER_READ OWNER_WRITE
   GROUP_READ
   WORLD_READ)
@@ -108,6 +127,29 @@ function (CastorAddProC _name)
     PROPERTY COMPILE_FLAGS "${ORACLE_CPPFLAGS} -Wno-error")
 endfunction ()
 
+function (CastorInstallDir _name)
+  install (CODE
+    "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}\${_name})")
+endfunction ()
+
+function (CastorInstallEtc _name)
+  install (FILES ${_name}
+  DESTINATION /etc
+  PERMISSIONS ${CASTOR_ETC_PERMS})
+endfunction ()
+
+function (CastorInstallEtcCronD _name)
+  install (FILES ${_name}
+  DESTINATION /etc/cron.d
+  PERMISSIONS ${CASTOR_ETC_CRON_D_PERMS})
+endfunction ()
+
+function (CastorInstallScript _name)
+  install (FILES ${_name}
+    DESTINATION ${CASTOR_DEST_BIN_DIR}
+    PERMISSIONS ${CASTOR_BIN_SCRIPT_PERMS})
+endfunction ()
+
 function (CastorInstallManPage _name _section)
   install (FILES ${_name}.man
     DESTINATION ${CASTOR_DEST_MAN_DIR}/man${_section}
@@ -147,11 +189,6 @@ function (CastorInstallLogrotate _name)
     RENAME ${_name})
 endfunction ()
 
-set (CASTOR_SYSCONFIG_PERMS
-  OWNER_READ OWNER_WRITE
-  GROUP_READ
-  WORLD_READ)
-
 function (CastorInstallSysconfig _name)
   install (FILES ${_name}.sysconfig
     DESTINATION /etc/sysconfig
@@ -234,6 +271,12 @@ if(NOT DEFINED COMPILE_PACKAGING)
   set(COMPILE_PACKAGING 1)
 endif(NOT DEFINED COMPILE_PACKAGING)
 
+################################################################################
+# Create shared directories at install time
+################################################################################
+CastorInstallDir (/var/log/castor)
+CastorInstallDir (/var/spool/castor)
+
 ################################################################################
 # Include the subdirectories of the project
 ################################################################################
diff --git a/castor/CMakeLists.txt b/castor/CMakeLists.txt
index 9177d4565c..b3a494e77f 100644
--- a/castor/CMakeLists.txt
+++ b/castor/CMakeLists.txt
@@ -267,9 +267,3 @@ set_target_properties (castorclient
   PROPERTIES SOVERSION ${MAJOR_CASTOR_VERSION})
 target_link_libraries (castorclient castordlf)
 install (TARGETS castorclient DESTINATION ${CASTOR_DEST_LIB_DIR})
-
-################################################################################
-# Create shared  directory strcutures at install time
-################################################################################
-INSTALL(CODE "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}/var/log/castor)")
-INSTALL(CODE "FILE(MAKE_DIRECTORY \$ENV{DESTDIR}/var/spool/castor)")
diff --git a/cmake/Findxrootd.cmake b/cmake/Findxrootd.cmake
index a9eb682394..20e3883b9b 100644
--- a/cmake/Findxrootd.cmake
+++ b/cmake/Findxrootd.cmake
@@ -52,6 +52,14 @@ find_library (XROOTD_XRDCLIENT_LIB XrdClient)
 find_library (XROOTD_XRDOFS_LIB XrdOfs)
 find_library (XROOTD_XRDUTILS_LIB XrdUtils)
 
+message (STATUS "XROOTD_FOUND               = ${XROOTD_FOUND}")
+message (STATUS "XROOTD_INCLUDE_DIR         = ${XROOTD_INCLUDE_DIR}")
+message (STATUS "XROOTD_PRIVATE_INCLUDE_DIR = ${XROOTD_PRIVATE_INCLUDE_DIR}")
+message (STATUS "XROOTD_XRDCL_LIB           = ${XROOTD_XRDCL_LIB}")
+message (STATUS "XROOTD_XRDCLIENT_LIB       = ${XROOTD_XRDCLIENT_LIB}")
+message (STATUS "XROOTD_XRDOFS_LIB          = ${XROOTD_XRDOFS_LIB}")
+message (STATUS "XROOTD_XRDUTILS_LIB        = ${XROOTD_XRDUTILS_LIB}")
+
 include (FindPackageHandleStandardArgs)
 find_package_handle_standard_args (xrootd DEFAULT_MSG 
   XROOTD_INCLUDE_DIR
diff --git a/xrootd/CMakeLists.txt b/xrootd/CMakeLists.txt
index ab0d72167b..3ce9de5a67 100644
--- a/xrootd/CMakeLists.txt
+++ b/xrootd/CMakeLists.txt
@@ -84,3 +84,35 @@ add_executable (XrdTransfer XrdTransfer.cpp)
 target_link_libraries (XrdTransfer crypto ${XROOTD_XRDCLIENT_LIB}
   ${XROOTD_XRDUTILS_LIB})
 install (TARGETS XrdTransfer DESTINATION ${CASTOR_DEST_BIN_DIR})
+
+################################################################################
+# Rules to install the x2cp and x2proc scripts
+################################################################################
+CastorInstallScript (x2cp)
+CastorInstallScript (x2proc)
+
+################################################################################
+# Rules to install xrd cron job
+################################################################################
+CastorInstallEtcCronD (xrd-logs)
+
+################################################################################
+# Rules to install example configuration files
+################################################################################
+CastorInstallEtc (xrd.cf.server.example)
+CastorInstallEtc (xrd.cf.manager.example)
+CastorInstallSysconfig (xrootd.server.example)
+CastorInstallSysconfig (xrootd.manager.example)
+
+################################################################################
+# Rules to install the log, spool and run directories of xrootd
+################################################################################
+CastorInstallDir (/var/log/xrootd/manager)
+CastorInstallDir (/var/log/xrootd/server)
+CastorInstallDir (/var/log/xrootd/manager/proc)
+CastorInstallDir (/var/log/xrootd/server/proc)
+CastorInstallDir (/var/spool/xrootd/admin)
+CastorInstallDir (/var/spool/xrootd/core)
+CastorInstallDir (/var/spool/xrootd/manager)
+CastorInstallDir (/var/spool/xrootd/server)
+CastorInstallDir (/var/run/xrootd)
-- 
GitLab