Support the use of PREFIX and PKG_PREFIX.
This commit is contained in:
@@ -38,21 +38,30 @@
|
||||
#include <string.h>
|
||||
|
||||
#ifndef LIB
|
||||
# define LIB "lib"
|
||||
# define LIB "lib"
|
||||
#endif
|
||||
|
||||
#ifndef PREFIX
|
||||
# define PREFIX ""
|
||||
#endif
|
||||
|
||||
#define RC_LEVEL_BOOT "boot"
|
||||
#define RC_LEVEL_DEFAULT "default"
|
||||
|
||||
#define RC_LIBDIR "/" LIB "/rc"
|
||||
#define RC_LIBDIR PREFIX "/" LIB "/rc"
|
||||
#define RC_SVCDIR RC_LIBDIR "/init.d"
|
||||
#define RC_DEPTREE RC_SVCDIR "/deptree"
|
||||
#define RC_RUNLEVELDIR "/etc/runlevels"
|
||||
#define RC_INITDIR "/etc/init.d"
|
||||
#define RC_CONFDIR "/etc/conf.d"
|
||||
#define RC_RUNLEVELDIR PREFIX "/etc/runlevels"
|
||||
#define RC_INITDIR PREFIX "/etc/init.d"
|
||||
#define RC_CONFDIR PREFIX "/etc/conf.d"
|
||||
|
||||
#define RC_INITDIR_LOCAL "/usr/local/etc/init.d"
|
||||
#define RC_CONFDIR_LOCAL "/usr/local/etc/conf.d"
|
||||
/* PKG_PREFIX is where packages are installed if different from the base OS
|
||||
* On Gentoo this is normally unset, on FreeBSD /usr/local and on NetBSD
|
||||
* /usr/pkg. */
|
||||
#ifdef PKG_PREFIX
|
||||
# define RC_PKG_INITDIR PKG_PREFIX "/etc/init.d"
|
||||
# define RC_PKG_CONFDIR PKG_PREFIX "/usr/local/etc/conf.d"
|
||||
#endif
|
||||
|
||||
#define RC_KSOFTLEVEL RC_SVCDIR "/ksoftlevel"
|
||||
#define RC_STARTING RC_SVCDIR "/rc.starting"
|
||||
|
@@ -7,8 +7,6 @@ SRCS= libeinfo.c
|
||||
INCS= einfo.h
|
||||
VERSION_MAP= einfo.map
|
||||
|
||||
SHLIBDIR= /${LIBNAME}
|
||||
|
||||
CFLAGS+= -I../includes
|
||||
|
||||
include ${MK}/cc.mk
|
||||
|
@@ -13,7 +13,5 @@ LDADD+= ${LIBKVM}
|
||||
|
||||
CFLAGS+= -I../includes
|
||||
|
||||
SHLIBDIR= /${LIBNAME}
|
||||
|
||||
include ${MK}/cc.mk
|
||||
include ${MK}/lib.mk
|
||||
|
@@ -696,8 +696,12 @@ bool rc_deptree_update_needed (void)
|
||||
if (! existss (RC_DEPTREE) ||
|
||||
! rc_newer_than (RC_DEPTREE, RC_INITDIR) ||
|
||||
! rc_newer_than (RC_DEPTREE, RC_CONFDIR) ||
|
||||
! rc_newer_than (RC_DEPTREE, RC_INITDIR_LOCAL) ||
|
||||
! rc_newer_than (RC_DEPTREE, RC_CONFDIR_LOCAL) ||
|
||||
#ifdef RC_PKG_INITDIR
|
||||
! rc_newer_than (RC_DEPTREE, RC_PKG_INITDIR) ||
|
||||
#endif
|
||||
#ifdef RC_PKG_CONFDIR
|
||||
! rc_newer_than (RC_DEPTREE, RC_PKG_CONFDIR) ||
|
||||
#endif
|
||||
! rc_newer_than (RC_DEPTREE, "/etc/rc.conf"))
|
||||
return (true);
|
||||
|
||||
|
@@ -328,11 +328,13 @@ char *rc_service_resolve (const char *service)
|
||||
snprintf (buffer, sizeof (buffer), RC_INITDIR "/%s", service);
|
||||
|
||||
/* So we don't exist in /etc/init.d - check /usr/local/etc/init.d */
|
||||
#ifdef RC_PKG_INITDIR
|
||||
if (stat (buffer, &buf) != 0) {
|
||||
snprintf (buffer, sizeof (buffer), RC_INITDIR_LOCAL "/%s", service);
|
||||
snprintf (buffer, sizeof (buffer), RC_PKG_INITDIR "/%s", service);
|
||||
if (stat (buffer, &buf) != 0)
|
||||
return (NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
return (xstrdup (buffer));
|
||||
}
|
||||
@@ -781,12 +783,18 @@ char **rc_services_in_runlevel (const char *runlevel)
|
||||
|
||||
if (! runlevel) {
|
||||
int i;
|
||||
char **local = ls_dir (RC_INITDIR_LOCAL, LS_INITD);
|
||||
#ifdef RC_PKG_INITDIR
|
||||
char **local = ls_dir (RC_PKG_INITDIR, LS_INITD);
|
||||
#endif
|
||||
|
||||
list = ls_dir (RC_INITDIR, LS_INITD);
|
||||
|
||||
#ifdef RC_PKG_INITDIR
|
||||
STRLIST_FOREACH (local, dir, i)
|
||||
rc_strlist_addsortu (&list, dir);
|
||||
rc_strlist_free (local);
|
||||
#endif
|
||||
|
||||
return (list);
|
||||
}
|
||||
|
||||
|
@@ -6,9 +6,10 @@ SRCS= checkpath.c fstabinfo.c mountinfo.c \
|
||||
|
||||
CLEANFILES= version.h
|
||||
|
||||
BINDIR?= /sbin
|
||||
BINDIR= ${PREFIX}/bin
|
||||
SBINDIR= ${PREFIX}/sbin
|
||||
LINKDIR= ${PREFIX}/${LIBNAME}/${PROG}
|
||||
|
||||
LINKDIR= ${LIBNAME}/${PROG}
|
||||
BINLINKS= rc-status
|
||||
SBINLINKS= rc-update runscript start-stop-daemon
|
||||
RC_BINLINKS= einfon einfo ewarnn ewarn eerrorn eerror ebegin eend ewend \
|
||||
@@ -50,16 +51,16 @@ version.h:
|
||||
fi
|
||||
|
||||
install: all
|
||||
${INSTALL} -d ${DESTDIR}${SBINDIR}
|
||||
${INSTALL} -m ${BINMODE} ${PROG} ${DESTDIR}${SBINDIR}
|
||||
${INSTALL} -d ${DESTDIR}${BINDIR}
|
||||
${INSTALL} -m ${BINMODE} ${PROG} ${DESTDIR}${BINDIR}
|
||||
${INSTALL} -d ${DESTDIR}/bin
|
||||
for x in ${BINLINKS}; do ln -fs ${BINDIR}/${PROG} ${DESTDIR}/bin/$$x; done
|
||||
${INSTALL} -d ${DESTDIR}/bin
|
||||
for x in ${SBINLINKS}; do ln -fs ${PROG} ${DESTDIR}${BINDIR}/$$x; done
|
||||
${INSTALL} -d ${DESTDIR}/${LIBNAME}/${PROG}/bin
|
||||
for x in $(RC_BINLINKS); do ln -fs ${BINDIR}/${PROG} $(DESTDIR)/${LIBNAME}/${PROG}/bin/$$x; done
|
||||
${INSTALL} -d ${DESTDIR}/${LIBNAME}/${PROG}/sbin
|
||||
for x in ${RC_SBINLINKS}; do ln -fs ${BINDIR}/${PROG} ${DESTDIR}/${LIBNAME}/${PROG}/sbin/$$x; done
|
||||
for x in ${BINLINKS}; do ln -fs ${DESTDIR}${SBINDIR}/${PROG} ${DESTDIR}${BINDIR}/$$x; done
|
||||
${INSTALL} -d ${DESTDIR}${SBINDIR}
|
||||
for x in ${SBINLINKS}; do ln -fs ${PROG} ${DESTDIR}${SBINDIR}/$$x; done
|
||||
${INSTALL} -d ${DESTDIR}${LINKDIR}/bin
|
||||
for x in $(RC_BINLINKS); do ln -fs ${DESTDIR}${SBINDIR}/${PROG} ${DESTDIR}${LINKDIR}/bin/$$x; done
|
||||
${INSTALL} -d ${DESTDIR}${LINKDIR}/sbin
|
||||
for x in ${RC_SBINLINKS}; do ln -fs ${DESTDIR}${SBINDIR}/${PROG} ${DESTDIR}${LINKDIR}/sbin/$$x; done
|
||||
if test "${MKPAM}" = pam; then \
|
||||
${INSTALL} -d ${DESTDIR}${PAMDIR}; \
|
||||
${INSTALL} -m ${PAMMODE} start-stop-daemon.pam ${DESTDIR}${PAMDIR}/start-stop-daemon; \
|
||||
|
Reference in New Issue
Block a user