From 45af3366aeaaefb36cbccc381c6f741785c75c28 Mon Sep 17 00:00:00 2001 From: Julien Puydt Date: Thu, 3 Sep 2020 21:02:08 +0100 Subject: [PATCH] Install the strategies in a soname-versioned directory Forwarded: yes This makes different libfplll packages coinstallable. Gbp-Pq: Name versioned_strategies_path --- Makefile.am | 2 +- configure.ac | 6 ++++++ fplll/Makefile.am | 2 +- fplll/defs.h | 8 -------- fplll/fplll_config.h.in | 4 ++++ 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/Makefile.am b/Makefile.am index 631676d..4dabd03 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,7 +8,7 @@ CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = fplll.pc -strategydir = $(pkgdatadir)/strategies +strategydir = @FPLLL_DEFAULT_STRATEGY_PATH@ dist_strategy_DATA = strategies/default.json CLANGFORMAT ?= clang-format diff --git a/configure.ac b/configure.ac index 7ad601c..0998516 100644 --- a/configure.ac +++ b/configure.ac @@ -192,6 +192,12 @@ AC_DEFINE_UNQUOTED([FPLLL_MICRO_VERSION],[$FPLLL_MICRO_VERSION],[micro version]) AC_DEFINE_UNQUOTED([FPLLL_VERSION],[$FPLLL_VERSION],[full version]) AC_DEFINE_UNQUOTED([FPLLL_VERSION_INFO],[$FPLLL_VERSION_INFO],[long version string]) +FPLLL_DEFAULT_STRATEGY_PATH=\"/usr/share/libfplll$FPLLL_LT_CURRENT/strategies/\" +AC_DEFINE_UNQUOTED([FPLLL_DEFAULT_STRATEGY_PATH], [$FPLLL_DEFAULT_STRATEGY_PATH], [path to default strategy]) +AC_SUBST(FPLLL_DEFAULT_STRATEGY_PATH) +AC_DEFINE_UNQUOTED([FPLLL_DEFAULT_STRATEGY], ["default.json"], [name of default strategy]) +AC_SUBST(FPLLL_DEFAULT_STRATEGY) + AC_CONFIG_HEADERS([fplll/fplll_config.h]) AC_CONFIG_FILES([Makefile diff --git a/fplll/Makefile.am b/fplll/Makefile.am index cef39e8..bbf99a4 100755 --- a/fplll/Makefile.am +++ b/fplll/Makefile.am @@ -2,7 +2,7 @@ include_fpllldir=$(includedir)/fplll TOPSRCDIR = $(srcdir)/.. strategydir = $(pkgdatadir)/strategies # see https://stackoverflow.com/questions/5867136/autoconf-how-to-get-installation-paths-into-config-h -AM_CPPFLAGS = -DFPLLL_DEFAULT_STRATEGY_PATH=\"$(strategydir)\" -DFPLLL_DEFAULT_STRATEGY=\"$(strategydir)/default.json\" -I$(TOPSRCDIR) +AM_CPPFLAGS = -I$(TOPSRCDIR) EXTRA_DIST = io/json.hpp ballvol.const factorial.const CLEANFILES = *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda */*.gcno */*.gcda diff --git a/fplll/defs.h b/fplll/defs.h index 74d9902..1e401d5 100644 --- a/fplll/defs.h +++ b/fplll/defs.h @@ -277,14 +277,6 @@ enum HKZFlags HKZ_VERBOSE = 1 }; -#ifndef FPLLL_DEFAULT_STRATEGY_PATH -#define FPLLL_DEFAULT_STRATEGY_PATH "" -#endif - -#ifndef FPLLL_DEFAULT_STRATEGY -#define FPLLL_DEFAULT_STRATEGY "" -#endif - enum PrunerMetric { PRUNER_METRIC_PROBABILITY_OF_SHORTEST = 0, diff --git a/fplll/fplll_config.h.in b/fplll/fplll_config.h.in index 3ba6f7b..a6b2c5e 100644 --- a/fplll/fplll_config.h.in +++ b/fplll/fplll_config.h.in @@ -22,6 +22,10 @@ /* fplll version info */ #define FPLLL_VERSION_INFO @FPLLL_VERSION_INFO@ +/* fplll default strategy */ +#define FPLLL_DEFAULT_STRATEGY_PATH @FPLLL_DEFAULT_STRATEGY_PATH@ +#define FPLLL_DEFAULT_STRATEGY @FPLLL_DEFAULT_STRATEGY@ + /* Maximum supported enumeration dimension */ #define FPLLL_MAX_ENUM_DIM @FPLLL_MAX_ENUM_DIM@ -- 2.30.2