From ab188fb76d7822350724b182106a19995a73d719 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Thu, 3 May 2012 12:25:15 +0200 Subject: [PATCH] Implements build options to specify socket dir and suffix. --- configure.in | 46 ++++++++++++++++++++++++++++++-------------- sysdep/autoconf.h.in | 1 + sysdep/config.h | 19 ------------------ sysdep/unix/main.c | 2 +- tools/Makefile.in | 16 +++++++-------- 5 files changed, 42 insertions(+), 42 deletions(-) diff --git a/configure.in b/configure.in index 7d9560d3..dd57ab51 100644 --- a/configure.in +++ b/configure.in @@ -6,17 +6,20 @@ AC_REVISION($Id$) AC_INIT(conf/confbase.Y) AC_CONFIG_AUX_DIR(tools) -AC_ARG_ENABLE(debug,[ --enable-debug enable internal debugging routines (default: disabled)],,enable_debug=no) -AC_ARG_ENABLE(memcheck,[ --enable-memcheck check memory allocations when debugging (default: enabled)],,enable_memcheck=yes) -AC_ARG_ENABLE(client,[ --enable-client enable building of BIRD client (default: enabled)],,enable_client=yes) -AC_ARG_ENABLE(ipv6,[ --enable-ipv6 enable building of IPv6 version (default: disabled)],,enable_ipv6=no) -AC_ARG_WITH(sysconfig,[ --with-sysconfig=FILE use specified BIRD system configuration file]) -AC_ARG_WITH(protocols,[ --with-protocols=LIST include specified routing protocols (default: all)],,[with_protocols="all"]) -AC_ARG_WITH(sysinclude,[ --with-sysinclude=PATH search for system includes on specified place]) -AC_ARG_WITH(iproutedir,[ --with-iproutedir=PATH path to iproute2 config files (default: /etc/iproute2)],[given_iproutedir="yes"]) -AC_ARG_VAR([FLEX], [location of the Flex program]) -AC_ARG_VAR([BISON], [location of the Bison program]) -AC_ARG_VAR([M4], [location of the M4 program]) +AC_ARG_ENABLE(debug, [ --enable-debug enable internal debugging routines (default: disabled)],,enable_debug=no) +AC_ARG_ENABLE(memcheck, [ --enable-memcheck check memory allocations when debugging (default: enabled)],,enable_memcheck=yes) +AC_ARG_ENABLE(client, [ --enable-client enable building of BIRD client (default: enabled)],,enable_client=yes) +AC_ARG_ENABLE(ipv6, [ --enable-ipv6 enable building of IPv6 version (default: disabled)],,enable_ipv6=no) +AC_ARG_WITH(suffix, [ --with-suffix=STRING use specified suffix for BIRD files (default: 6 for IPv6 version)],[given_suffix="yes"]) +AC_ARG_WITH(sysconfig, [ --with-sysconfig=FILE use specified BIRD system configuration file]) +AC_ARG_WITH(protocols, [ --with-protocols=LIST include specified routing protocols (default: all)],,[with_protocols="all"]) +AC_ARG_WITH(sysinclude, [ --with-sysinclude=PATH search for system includes on specified place]) +AC_ARG_WITH(runtimedir, [ --with-runtimedir=PATH path for runtime files (default: $(localstatedir)/run)],[runtimedir="$with_runtimedir"],[runtimedir="\$(localstatedir)/run"]) +AC_ARG_WITH(iproutedir, [ --with-iproutedir=PATH path to iproute2 config files (default: /etc/iproute2)],[given_iproutedir="yes"]) +AC_ARG_VAR([FLEX], [location of the Flex program]) +AC_ARG_VAR([BISON], [location of the Bison program]) +AC_ARG_VAR([M4], [location of the M4 program]) + if test "$srcdir" = . ; then # Building in current directory => create obj directory holding all objects @@ -39,21 +42,37 @@ esac AC_SUBST(objdir) AC_SUBST(exedir) AC_SUBST(srcdir_rel_mf) +AC_SUBST(runtimedir) if test "$enable_ipv6" = yes ; then ip=ipv6 - SUFFIX6=6 + SUFFIX=6 all_protocols=bgp,ospf,pipe,radv,rip,static else ip=ipv4 - SUFFIX6="" + SUFFIX="" all_protocols=bgp,ospf,pipe,rip,static fi +if test "$given_suffix" = yes ; then + SUFFIX="$with_suffix" +fi +AC_SUBST(SUFFIX) + if test "$with_protocols" = all ; then with_protocols="$all_protocols" fi +if test "$enable_debug" = yes ; then + CONFIG_FILE="bird$SUFFIX.conf" + CONTROL_SOCKET="bird$SUFFIX.ctl" +else + CONFIG_FILE="\$(sysconfdir)/bird$SUFFIX.conf" + CONTROL_SOCKET="$runtimedir/bird$SUFFIX.ctl" +fi +AC_SUBST(CONFIG_FILE) +AC_SUBST(CONTROL_SOCKET) + AC_SEARCH_LIBS(clock_gettime,[c rt posix4]) AC_CANONICAL_HOST @@ -225,7 +244,6 @@ if test "$enable_client" = yes ; then fi AC_SUBST(CLIENT) AC_SUBST(CLIENT_LIBS) -AC_SUBST(SUFFIX6) mkdir -p $objdir/sysdep AC_CONFIG_HEADERS([$objdir/sysdep/autoconf.h:sysdep/autoconf.h.in]) diff --git a/sysdep/autoconf.h.in b/sysdep/autoconf.h.in index d029e2a7..ac6f7a87 100644 --- a/sysdep/autoconf.h.in +++ b/sysdep/autoconf.h.in @@ -62,3 +62,4 @@ /* We have stdint.h */ #undef HAVE_STDINT_H +#define CONFIG_PATH ? diff --git a/sysdep/config.h b/sysdep/config.h index 7e6fad8b..8d93d381 100644 --- a/sysdep/config.h +++ b/sysdep/config.h @@ -37,23 +37,4 @@ typedef u16 word; #endif -/* Path to configuration file */ -#ifdef IPV6 -# ifdef DEBUGGING -# define PATH_CONFIG "bird6.conf" -# define PATH_CONTROL_SOCKET "bird6.ctl" -# else -# define PATH_CONFIG PATH_CONFIG_DIR "/bird6.conf" -# define PATH_CONTROL_SOCKET PATH_CONTROL_SOCKET_DIR "/bird6.ctl" -# endif -#else -# ifdef DEBUGGING -# define PATH_CONFIG "bird.conf" -# define PATH_CONTROL_SOCKET "bird.ctl" -# else -# define PATH_CONFIG PATH_CONFIG_DIR "/bird.conf" -# define PATH_CONTROL_SOCKET PATH_CONTROL_SOCKET_DIR "/bird.ctl" -# endif -#endif - #endif diff --git a/sysdep/unix/main.c b/sysdep/unix/main.c index dfe0b89c..e0563aae 100644 --- a/sysdep/unix/main.c +++ b/sysdep/unix/main.c @@ -151,7 +151,7 @@ read_iproute_table(char *file, char *prefix, int max) #endif // PATH_IPROUTE_DIR -static char *config_name = PATH_CONFIG; +static char *config_name = PATH_CONFIG_FILE; static int cf_read(byte *dest, unsigned int len, int fd) diff --git a/tools/Makefile.in b/tools/Makefile.in index 556eba5f..728e5797 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -48,23 +48,23 @@ userdocs progdocs: .dir-stamp 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)/run\"" + echo >>sysdep/paths.h "#define PATH_CONFIG_FILE \"@CONFIG_FILE@\"" + echo >>sysdep/paths.h "#define PATH_CONTROL_SOCKET \"@CONTROL_SOCKET@\"" if test -n "@iproutedir@" ; then echo >>sysdep/paths.h "#define PATH_IPROUTE_DIR \"@iproutedir@\"" ; fi tags: cd $(srcdir) ; etags -lc `find $(static-dirs) $(addprefix $(objdir)/,$(dynamic-dirs)) $(client-dirs) -name *.[chY]` install: all - $(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/$(localstatedir)/run - $(INSTALL_PROGRAM) -s $(exedir)/bird $(DESTDIR)/$(sbindir)/bird@SUFFIX6@ + $(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/@runtimedir@ + $(INSTALL_PROGRAM) -s $(exedir)/bird $(DESTDIR)/$(sbindir)/bird@SUFFIX@ if test -n "@CLIENT@" ; then \ - $(INSTALL_PROGRAM) -s $(exedir)/birdc $(DESTDIR)/$(sbindir)/birdc@SUFFIX6@ ; \ + $(INSTALL_PROGRAM) -s $(exedir)/birdc $(DESTDIR)/$(sbindir)/birdc@SUFFIX@ ; \ fi - if ! test -f $(DESTDIR)/$(sysconfdir)/bird@SUFFIX6@.conf ; then \ - $(INSTALL_DATA) $(srcdir)/doc/bird.conf.example $(DESTDIR)/$(sysconfdir)/bird@SUFFIX6@.conf ; \ + if ! test -f $(DESTDIR)/@CONFIG_FILE@ ; then \ + $(INSTALL_DATA) $(srcdir)/doc/bird.conf.example $(DESTDIR)/@CONFIG_FILE@ ; \ else \ - echo "Not overwriting old bird@SUFFIX@.conf" ; \ + echo "Not overwriting old bird@SUFFIX@.conf" ; \ fi install-docs: