diff options
Diffstat (limited to 'src/librc')
-rw-r--r-- | src/librc/.gitignore | 1 | ||||
-rw-r--r-- | src/librc/Makefile | 29 | ||||
-rw-r--r-- | src/librc/rc.h.in (renamed from src/librc/rc.h) | 25 |
3 files changed, 53 insertions, 2 deletions
diff --git a/src/librc/.gitignore b/src/librc/.gitignore index eab6c70e..460d8c9f 100644 --- a/src/librc/.gitignore +++ b/src/librc/.gitignore @@ -13,3 +13,4 @@ librc.a librc.so.1 librc.so .depend +rc.h diff --git a/src/librc/Makefile b/src/librc/Makefile index c18f2224..5d53c64c 100644 --- a/src/librc/Makefile +++ b/src/librc/Makefile @@ -5,8 +5,6 @@ SRCS= librc.c librc-daemon.c librc-depend.c librc-misc.c \ INCS= rc.h VERSION_MAP= rc.map -CFLAGS+= -DLIB=\"${LIBNAME}\" -CFLAGS+= -DSYSCONFDIR=\"${SYSCONFDIR}\" LDADD+= ${LIBKVM} CFLAGS+= -I../includes @@ -15,3 +13,30 @@ MK= ../../mk include ${MK}/lib.mk include ${MK}/cc.mk include ${MK}/debug.mk + +# Massage our header file for our dirs +SED_CMD= -e 's:@PREFIX@:${PREFIX}:g' +SED_CMD+= -e 's:@LIB@:${LIBNAME}:g' +SED_CMD+= -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g' +_PKG_PREFIX_SH= if test -n "${PKG_PREFIX}" && test "${PKG_PREFIX}" != "/" && test "${PKG_PREFIX}" != "${PREFIX}"; then \ + echo "-e 's:@PKG_PREFIX@:${PKG_PREFIX}:g'"; \ + else \ + echo "-e 's:.*@PKG_PREFIX@.*:\#undef RC_PKG_PREFIX:g'"; \ + fi +_PKG_PREFIX!= ${_PKG_PREFIX_SH} +SED_CMD+= ${_PKG_PREFIX}$(shell ${_PKG_PREFIX_SH}) + +_LCL_PREFIX_SH= if test -n "${LOCAL_PREFIX}" && test "${LOCAL_PREFIX}" != "/" && test "${LOCAL_PREFIX}" != "${PREFIX}"; then \ + echo "-e 's:@LOCAL_PREFIX@:${LOCAL_PREFIX}:g'"; \ + else \ + echo "-e 's:@LOCAL_PREFIX@::g'"; \ + fi +_LCL_PREFIX!= ${_LCL_PREFIX_SH} +SED_CMD+= ${_LCL_PREFIX}$(shell ${_LCL_PREFIX_SH}) + +.SUFFIXES: .h.in +.h.in.h: + ${SED} ${SED_CMD} $< > $@ +${SRCS}: rc.h + +CLEANFILES+= rc.h diff --git a/src/librc/rc.h b/src/librc/rc.h.in index 04cdba4d..7de69ae9 100644 --- a/src/librc/rc.h +++ b/src/librc/rc.h.in @@ -32,6 +32,31 @@ #include <stdbool.h> #include <stdio.h> +#define RC_SYSCONFDIR "@SYSCONFDIR@" +#define RC_LIBDIR "@PREFIX@/@LIB@/rc" +#define RC_SVCDIR RC_LIBDIR "/init.d" +#define RC_PLUGINDIR RC_LIBDIR "/plugins" +#define RC_RUNLEVELDIR RC_SYSCONFDIR "/runlevels" +#define RC_INITDIR RC_SYSCONFDIR "/init.d" +#define RC_CONFDIR RC_SYSCONFDIR "/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. */ +#define RC_PKG_PREFIX "@PKG_PREFIX@" +#ifdef RC_PKG_PREFIX +# define RC_PKG_INITDIR RC_PKG_PREFIX "/etc/init.d" +# define RC_PKG_CONFDIR RC_PKG_PREFIX "/etc/conf.d" +#endif + +/* LOCAL_PREFIX is for user written stuff, which the base OS and package + * manger don't touch. */ +#define RC_LOCAL_PREFIX "@LOCAL_PREFIX@" +#ifdef RC_LOCAL_PREFIX +# define RC_LOCAL_INITDIR RC_LOCAL_PREFIX "/etc/init.d" +# define RC_LOCAL_CONFDIR RC_LOCAL_PREFIX "/etc/conf.d" +#endif + /* A doubly linked list using queue(3) for ease of use */ typedef struct rc_string { char *value; |