aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-28 10:46:12 +0000
committerRoy Marples <roy@marples.name>2008-03-28 10:46:12 +0000
commitee4e861796ad9b19acb45c576ed181ce2fdfebf5 (patch)
tree425c9a68f127bce193717055d99be03a1380516c
parent11e33e81c855395cbd931e99f7452ed6b3fef357 (diff)
Put some dir locations in rc.h so that 3rd party apps can become awware of them.
-rw-r--r--mk/os.mk11
-rw-r--r--src/includes/rc-misc.h38
-rw-r--r--src/librc/.gitignore1
-rw-r--r--src/librc/Makefile29
-rw-r--r--src/librc/rc.h.in (renamed from src/librc/rc.h)25
-rw-r--r--src/rc/Makefile2
-rw-r--r--src/rc/rc-misc.c8
-rw-r--r--src/test/Makefile2
8 files changed, 59 insertions, 57 deletions
diff --git a/mk/os.mk b/mk/os.mk
index 9f6a2b2b..e4598597 100644
--- a/mk/os.mk
+++ b/mk/os.mk
@@ -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