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 <dgoulet@torproject.org>
This commit is contained in:
David Goulet 2018-04-03 15:06:34 -04:00
parent 3a47dfed34
commit b27dc1cfb5
2 changed files with 29 additions and 0 deletions

View File

@ -230,6 +230,19 @@ if test "x$enable_android" = "xyes"; then
fi 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 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 (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.) dnl so kludge up a replacement for the case where it isn't there yet.)

View File

@ -114,6 +114,16 @@ LIBTOR_A_SOURCES = \
src/or/onion_ntor.c \ src/or/onion_ntor.c \
$(tor_platform_source) $(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_a_SOURCES = $(LIBTOR_A_SOURCES)
src_or_libtor_testing_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/torcert.h \
src/or/tor_api_internal.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? # This may someday want to be an installed file?
noinst_HEADERS += src/or/tor_api.h noinst_HEADERS += src/or/tor_api.h