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:
parent
0bf7386b33
commit
f9254d2349
6 changed files with 17 additions and 15 deletions
|
@ -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=
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue