diff options
-rw-r--r-- | mk/os.mk | 11 | ||||
-rw-r--r-- | src/includes/rc-misc.h | 38 | ||||
-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 | ||||
-rw-r--r-- | src/rc/Makefile | 2 | ||||
-rw-r--r-- | src/rc/rc-misc.c | 8 | ||||
-rw-r--r-- | src/test/Makefile | 2 |
8 files changed, 59 insertions, 57 deletions
@@ -10,14 +10,3 @@ include ${MK}/os-${OS}.mk RC_LIB= /$(LIBNAME)/rc -_PREFIX_SH= if test -n "${PREFIX}" && test "${PREFIX}" != "/"; then echo "-DPREFIX=\\\"${PREFIX}\\\""; else echo ""; fi -_PREFIX!= ${_PREFIX_SH} -CFLAGS+= ${_PREFIX}$(shell ${_PREFIX_SH}) - -_PKG_PREFIX_SH= if test -n "${PKG_PREFIX}" && test "${PKG_PREFIX}" != "/" && test "${PKG_PREFIX}" != "${PREFIX}"; then echo "-DPKG_PREFIX=\\\"${PKG_PREFIX}\\\""; else echo ""; fi -_PKG_PREFIX!= ${_PKG_PREFIX_SH} -CFLAGS+= ${_PKG_PREFIX}$(shell ${_PKG_PREFIX_SH}) - -_LCL_PREFIX_SH= if test -n "${LOCAL_PREFIX}" && test "${LOCAL_PREFIX}" != "/" && test "${LOCAL_PREFIX}" != "${PREFIX}"; then echo "-DLOCAL_PREFIX=\\\"${LOCAL_PREFIX}\\\""; else echo ""; fi -_LCL_PREFIX!= ${_LCL_PREFIX_SH} -CFLAGS+= ${_LCL_PREFIX}$(shell ${_LCL_PREFIX_SH}) diff --git a/src/includes/rc-misc.h b/src/includes/rc-misc.h index 70850161..d6bc8d9a 100644 --- a/src/includes/rc-misc.h +++ b/src/includes/rc-misc.h @@ -37,45 +37,10 @@ #include <stdbool.h> #include <string.h> -#ifndef LIB -# define LIB "lib" -#endif - -#ifdef PREFIX -# define RC_PREFIX PREFIX -#else -# define RC_PREFIX -#endif - -#ifndef SYSCONFDIR -# define SYSCONFDIR RC_PREFIX "/etc" -#endif - #define RC_LEVEL_BOOT "boot" #define RC_LEVEL_DEFAULT "default" -#define RC_LIBDIR RC_PREFIX "/" LIB "/rc" -#define RC_SVCDIR RC_LIBDIR "/init.d" #define RC_DEPTREE_CACHE RC_SVCDIR "/deptree" -#define RC_RUNLEVELDIR SYSCONFDIR "/runlevels" -#define RC_INITDIR SYSCONFDIR "/init.d" -#define RC_CONFDIR 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. */ -#ifdef PKG_PREFIX -# define RC_PKG_INITDIR PKG_PREFIX "/etc/init.d" -# define RC_PKG_CONFDIR PKG_PREFIX "/etc/conf.d" -#endif - -/* LOCAL_PREFIX is for user written stuff, which the base OS and package - * manger don't touch. */ -#ifdef LOCAL_PREFIX -# define RC_LOCAL_INITDIR LOCAL_PREFIX "/etc/init.d" -# define RC_LOCAL_CONFDIR LOCAL_PREFIX "/etc/conf.d" -#endif - #define RC_KRUNLEVEL RC_SVCDIR "/krunlevel" #define RC_STARTING RC_SVCDIR "/rc.starting" #define RC_STOPPING RC_SVCDIR "/rc.stopping" @@ -85,8 +50,6 @@ #define RC_SVCDIR_STARTED RC_SVCDIR "/started" #define RC_SVCDIR_COLDPLUGGED RC_SVCDIR "/coldplugged" -#define RC_PLUGINDIR RC_LIBDIR "/plugins" - #define ERRX fprintf (stderr, "out of memory\n"); exit (1) #ifdef lint @@ -98,7 +61,6 @@ # define _unused #endif - /* Some libc implemntations don't have these */ #ifndef STAILQ_CONCAT #define STAILQ_CONCAT(head1, head2) do { \ 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; diff --git a/src/rc/Makefile b/src/rc/Makefile index f60fc313..2edc51eb 100644 --- a/src/rc/Makefile +++ b/src/rc/Makefile @@ -39,8 +39,6 @@ include ${MK}/cc.mk include ${MK}/debug.mk CFLAGS+= -I../includes -I../librc -I../libeinfo -CFLAGS+= -DLIB=\"${LIBNAME}\" -CFLAGS+= -DSYSCONFDIR=\"${SYSCONFDIR}\" include ${MK}/${MKTERMCAP}.mk LDADD+= ${LIBDL} ${LIBKVM} diff --git a/src/rc/rc-misc.c b/src/rc/rc-misc.c index afe7893c..6e94ad69 100644 --- a/src/rc/rc-misc.c +++ b/src/rc/rc-misc.c @@ -49,11 +49,11 @@ #include "rc.h" #include "rc-misc.h" -#define PROFILE_ENV SYSCONFDIR "/profile.env" +#define PROFILE_ENV RC_SYSCONFDIR "/profile.env" #define SYS_WHITELIST RC_LIBDIR "/conf.d/env_whitelist" -#define USR_WHITELIST SYSCONFDIR "/conf.d/env_whitelist" -#define RC_CONF SYSCONFDIR "/rc.conf" -#define RC_CONF_OLD SYSCONFDIR "/conf.d/rc" +#define USR_WHITELIST RC_SYSCONFDIR "/conf.d/env_whitelist" +#define RC_CONF RC_SYSCONFDIR "/rc.conf" +#define RC_CONF_OLD RC_SYSCONFDIR "/conf.d/rc" #define PATH_PREFIX RC_LIBDIR "/bin:/bin:/sbin:/usr/bin:/usr/sbin" diff --git a/src/test/Makefile b/src/test/Makefile index d7fde60f..a283e735 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -2,6 +2,8 @@ all: install: +gitignore: + check test:: ./runtests.sh |