allow systemd path to be defined by configure option.

The configure probes the host for systemd path information.

Upstream-Status: Inappropriate [Embedded]

Signed-off-by: Armin Kuster <akuster@mvista.com>

--- a/configure.ac
+++ b/configure.ac
@@ -151,7 +151,6 @@ CROSS_LFLAGS=""
 CROSS_CFLAGS=""
 LIBSENSORS=""
 SAM2OBJ="isensor2.o ievents2.o"
-SYSTEMD_DIR=/usr/share/ipmiutil
 
 AC_ARG_ENABLE([useflags],
     [  --enable-useflags    include environment CFLAGS and LDFLAGS.],
@@ -211,29 +210,42 @@ AC_ARG_ENABLE([gpl],
 
 dnl Does this Linux have systemd enabled?  Otherwise use sysv init.
 AC_ARG_ENABLE([systemd],
-    [  --enable-systemd       enable systemd service type=notify support and %_unitdir [[default=disabled]]],)
-if test "x$enable_systemd" = "xyes"; then
-   GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
-   # if systemd enabled, install service scripts in unitdir
-   which rpm >/dev/null 2>&1
-   if test  $? -eq 0 ; then
-	SYSTEMD_DIR=`rpm --eval "%{_unitdir}"`
-   else
-    SYSTEMD_DIR=/usr/share/ipmiutil
-   fi
+    [  --enable-systemd[=systemddir]      install systemd unit file.  If 'yes'
+        probe the system for unit directory.
+        If a path is specified, assume that
+        is a valid install path. [[default=disabled]]],)
+# Check whether --enable-systemd was given.
+if test "${enable_systemd+set}" = set; then :
+	withval=$enable_systemd; if test "$withval" = yes; then
+	GPL_CFLAGS="$GPL_CFLAGS -DENABLE_SYSTEMD"
+	if test -z "$systemddir"; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking location of the systemd unit files directory" >&5
+		$as_echo_n "checking location of the systemd unit files directory... " >&6; }
+		_rpmdir = ""
+		which rpm >/dev/null 2>&1
+		if test  $? -eq 0 ; then
+			_rpmdir = `rpm --eval "%{_unitdir}"`
+		fi
+		for systemd_d in ${datadir}/usr/share/ipmiutil ${_rpmdir} /usr/share/ipmiutil; do
+			if test -z "$systemddir"; then
+				if test -d "$systemd_d"; then
+					systemddir="$systemd_d"
+				fi
+			fi
+		done
+	fi
+	if test -n "$systemddir"; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $systemddir" >&5
+		$as_echo "$systemddir" >&6; }
+	else
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+		$as_echo "not found" >&6; }
+	fi
 else
-   # otherwise install the systemd service scripts in the data dir
-  SYSTEMD_DIR=/usr/share/ipmiutil
-  if test "x$sysname" != "xDarwin" ; then
-    if test  "x$os" != "xhpux" ; then
-      # MacOS and HP-UX: 'which' command returns 0 always
-      which rpm >/dev/null 2>&1
-      if test  $? -eq 0 ; then
-         datad=`rpm --eval "%{_datadir}"`
-         SYSTEMD_DIR=${datad}/ipmiutil
-      fi
-    fi
-  fi
+	if test "$withval" != no; then
+		systemddir=$withval
+	fi
+fi
 fi
 
 dnl start main logic
@@ -563,7 +575,7 @@ AC_SUBST(INS_LIB)
 AC_SUBST(SUBDIR_S)
 AC_SUBST(CROSS_CFLAGS)
 AC_SUBST(CROSS_LFLAGS)
-AC_SUBST(SYSTEMD_DIR)
+AC_SUBST(systemddir)
 AC_SUBST(SHR_LINK)
 AC_SUBST(pkgconfigdir)
 
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -17,7 +17,8 @@ cronto = ${DESTDIR}${etcdir}/cron.daily
 sbinto = ${DESTDIR}${sbindir}
 varto  = ${DESTDIR}/var/lib/ipmiutil
 initto = ${DESTDIR}@INIT_DIR@
-sysdto = ${DESTDIR}@SYSTEMD_DIR@
+sysdto = ${DESTDIR}@systemddir@
+systemddir = @systemddir@
 sysvinit = ${datato}
 sbinfls = ialarms ihealth ifru igetevent ireset icmd isol ilan isensor isel iserial iwdt iconfig ipicmg ifirewall ifwum ihpm iuser
 
@@ -47,10 +48,13 @@ install:
 	${INSTALL_SCRIPT_SH} ipmi_port.sh ${sysvinit}/ipmi_port
 	${INSTALL_SCRIPT_SH} ipmi_info    ${sysvinit}/ipmi_info
 	${INSTALL_SCRIPT_SH} checksel     ${datato}
-	${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}
-	${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}
-	${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto}
-	${INSTALL_DATA_SH} ipmi_port.service    ${sysdto}
+	if [ ! -z "${systemddir}" ]; then \
+		$(MKDIR) ${sysdto}; \
+		${INSTALL_DATA_SH} ipmiutil_wdt.service ${sysdto}; \
+		${INSTALL_DATA_SH} ipmiutil_asy.service ${sysdto}; \
+		${INSTALL_DATA_SH} ipmiutil_evt.service ${sysdto}; \
+		${INSTALL_DATA_SH} ipmi_port.service    ${sysdto}; \
+	fi
 	${INSTALL_SCRIPT_SH} ipmiutil.env.template  ${datato}
 	${INSTALL_SCRIPT_SH} ipmiutil.env.template  ${datato}/ipmiutil.env
 	${INSTALL_SCRIPT_SH} ipmiutil.pre     ${datato}
