Autoconf is *evil*. The sysconfdir and similar variables are unusable in

C includes as they contain substitutions specific to make.

Worked around by creating sysconf/paths.h which is created from
the Makefile instead of by the configure script.
This commit is contained in:
Martin Mares 2000-05-08 14:19:47 +00:00
parent 0bf7386b33
commit f9254d2349
6 changed files with 17 additions and 15 deletions

View file

@ -144,16 +144,11 @@ BIRD_CHECK_TIME_T
BIRD_CHECK_STRUCT_IP_MREQN BIRD_CHECK_STRUCT_IP_MREQN
if test "$enable_debug" = yes ; then if test "$enable_debug" = yes ; then
AC_DEFINE(PATH_CONFIG_DIR, ".")
AC_DEFINE(PATH_CONTROL_SOCKET_DIR, ".")
AC_DEFINE(DEBUGGING) AC_DEFINE(DEBUGGING)
AC_CHECK_LIB(dmalloc, dmalloc_debug) AC_CHECK_LIB(dmalloc, dmalloc_debug)
if test $ac_cv_lib_dmalloc_dmalloc_debug != yes ; then if test $ac_cv_lib_dmalloc_dmalloc_debug != yes ; then
AC_CHECK_LIB(efence, malloc) AC_CHECK_LIB(efence, malloc)
fi fi
else
AC_DEFINE_UNQUOTED(PATH_CONFIG_DIR, "$sysconfdir")
AC_DEFINE_UNQUOTED(PATH_CONTROL_SOCKET_DIR, "$localstatedir")
fi fi
CLIENT= CLIENT=

View file

@ -41,11 +41,5 @@
/* We have <syslog.h> and syslog() */ /* We have <syslog.h> and syslog() */
#undef HAVE_SYSLOG #undef HAVE_SYSLOG
/* Path to configuration files */
#define PATH_CONFIG_DIR ?
/* Path to control socket */
#define PATH_CONTROL_SOCKET_DIR ?
/* Are we using dmalloc? */ /* Are we using dmalloc? */
#undef HAVE_LIBDMALLOC #undef HAVE_LIBDMALLOC

View file

@ -17,6 +17,8 @@
#ifndef MACROS_ONLY #ifndef MACROS_ONLY
#include "sysdep/paths.h"
/* Types */ /* Types */
typedef signed INTEGER_8 s8; typedef signed INTEGER_8 s8;
typedef unsigned INTEGER_8 u8; typedef unsigned INTEGER_8 u8;
@ -30,7 +32,12 @@ typedef u16 word;
#endif #endif
/* Path to configuration file */ /* Path to configuration file */
#ifdef DEBUGGING
#define PATH_CONFIG "bird.conf"
#define PATH_CONTROL_SOCKET "bird.ctl"
#else
#define PATH_CONFIG PATH_CONFIG_DIR "/bird.conf" #define PATH_CONFIG PATH_CONFIG_DIR "/bird.conf"
#define PATH_CONTROL_SOCKET PATH_CONTROL_SOCKET_DIR "/bird.ctl" #define PATH_CONTROL_SOCKET PATH_CONTROL_SOCKET_DIR "/bird.ctl"
#endif
#endif #endif

View file

@ -12,4 +12,4 @@ clean:
distclean: clean distclean: clean
rm -rf $(objdir) rm -rf $(objdir)
rm -f config.* configure sysdep/autoconf.h Makefile rm -f config.* configure sysdep/autoconf.h sysdep/paths.h Makefile

View file

@ -5,7 +5,7 @@ include Rules
.PHONY: all daemon client subdir depend clean distclean tags docs userdocs progdocs .PHONY: all daemon client subdir depend clean distclean tags docs userdocs progdocs
all: .dep-stamp subdir daemon @CLIENT@ all: sysdep/paths.h .dep-stamp subdir daemon @CLIENT@
daemon: $(exedir)/bird daemon: $(exedir)/bird
@ -34,11 +34,16 @@ docs: userdocs progdocs
userdocs progdocs: .dir-stamp userdocs progdocs: .dir-stamp
$(MAKE) -C doc -f $(srcdir_abs)/doc/Makefile $@ $(MAKE) -C doc -f $(srcdir_abs)/doc/Makefile $@
sysdep/paths.h:
echo >sysdep/paths.h "/* Generated by Makefile, don't edit manually! */"
echo >>sysdep/paths.h "#define PATH_CONFIG_DIR \"$(sysconfdir)\""
echo >>sysdep/paths.h "#define PATH_CONTROL_SOCKET_DIR \"$(localstatedir)\""
tags: tags:
cd $(srcdir) ; etags -lc `find $(static-dirs) $(addprefix $(objdir)/,$(dynamic-dirs)) $(client-dirs) -name *.[chY]` cd $(srcdir) ; etags -lc `find $(static-dirs) $(addprefix $(objdir)/,$(dynamic-dirs)) $(client-dirs) -name *.[chY]`
install: all install: all
$(INSTALL) -d $(sbindir) $(sysconfdir) $(INSTALL) -d $(sbindir) $(sysconfdir) $(localstatedir)
$(INSTALL_PROGRAM) -s $(exedir)/bird $(sbindir)/ $(INSTALL_PROGRAM) -s $(exedir)/bird $(sbindir)/
if test -n "@CLIENT@" ; then \ if test -n "@CLIENT@" ; then \
$(INSTALL_PROGRAM) -s $(exedir)/birdc $(sbindir)/ ; \ $(INSTALL_PROGRAM) -s $(exedir)/birdc $(sbindir)/ ; \
@ -54,5 +59,5 @@ clean:
rm -f $(exedir)/bird $(exedir)/birdc $(exedir)/bird.ctl .dep-stamp rm -f $(exedir)/bird $(exedir)/birdc $(exedir)/bird.ctl .dep-stamp
distclean: clean distclean: clean
rm -f config.* configure sysdep/autoconf.h Makefile Rules rm -f config.* configure sysdep/autoconf.h sysdep/paths.h Makefile Rules
rm -rf .dir-stamp $(clean-dirs) rm -rf .dir-stamp $(clean-dirs)

View file

@ -38,6 +38,7 @@ exec_prefix=@exec_prefix@
bindir=@bindir@ bindir=@bindir@
sbindir=@sbindir@ sbindir=@sbindir@
sysconfdir=@sysconfdir@ sysconfdir=@sysconfdir@
localstatedir=@localstatedir@
ifdef source ifdef source