From b27dc1cfb5867ad5853548acc6e1167a49395917 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Tue, 3 Apr 2018 15:06:34 -0400 Subject: [PATCH] mod: Build system changes for dirauth module Make our build system support a disable dirauth module option. It can only be disabled explicitly with: $ ./configure --disable-module-dirauth If *not* specified that is enabled, an automake conditional variable is set to true and a defined value for the C code: AM_CONDITIONAL: BUILD_MODULE_DIRAUTH AC_DEFINE: HAVE_MODULE_DIRAUTH=1 This introduces the dirauth/ module directory in src/or/ for which .c files are only compiled if the BUILD_MODULE_DIRAUTH is set. All the header files are compiled in regardless of the support so we can use the alternative entry point functions of the dirauth subsystem. Signed-off-by: David Goulet --- configure.ac | 13 +++++++++++++ src/or/include.am | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/configure.ac b/configure.ac index 878f5a88b..b423ea95e 100644 --- a/configure.ac +++ b/configure.ac @@ -230,6 +230,19 @@ if test "x$enable_android" = "xyes"; then fi +dnl --- +dnl Tor modules options. These options are namespaced with --disable-module-XXX +dnl --- + +dnl Directory Authority module. +AC_ARG_ENABLE([module-dirauth], + AS_HELP_STRING([--disable-module-dirauth], + [Do not build tor with the dirauth module]), + [], dnl Action if-given + AC_DEFINE([HAVE_MODULE_DIRAUTH], [1], + [Compile with Directory Authority feature support])) +AM_CONDITIONAL(BUILD_MODULE_DIRAUTH, [test "x$enable_module_dirauth" != "xno"]) + dnl check for the correct "ar" when cross-compiling. dnl (AM_PROG_AR was new in automake 1.11.2, which we do not yet require, dnl so kludge up a replacement for the case where it isn't there yet.) diff --git a/src/or/include.am b/src/or/include.am index 9a68df5c3..56d41e47d 100644 --- a/src/or/include.am +++ b/src/or/include.am @@ -114,6 +114,16 @@ LIBTOR_A_SOURCES = \ src/or/onion_ntor.c \ $(tor_platform_source) +# +# Modules are conditionnally compiled in tor starting here. We add the C files +# only if the modules has been enabled at configure time. +# + +# The Directory Authority module. +if BUILD_MODULE_DIRAUTH +#LIBTOR_A_SOURCES += +endif + src_or_libtor_a_SOURCES = $(LIBTOR_A_SOURCES) src_or_libtor_testing_a_SOURCES = $(LIBTOR_A_SOURCES) @@ -259,6 +269,12 @@ ORHEADERS = \ src/or/torcert.h \ src/or/tor_api_internal.h +# We add the headers of the modules even though they are disabled so we can +# properly compiled the entry points stub. + +# The Directory Authority module headers. +#ORHEADERS += + # This may someday want to be an installed file? noinst_HEADERS += src/or/tor_api.h