Install the strategies in a soname-versioned directory
authorJulien Puydt <julien.puydt@laposte.net>
Sun, 26 Nov 2023 12:01:50 +0000 (13:01 +0100)
committerJulien Puydt <jpuydt@debian.org>
Sun, 26 Nov 2023 12:01:50 +0000 (13:01 +0100)
Forwarded: yes

This makes different libfplll<soname> packages coinstallable.

Gbp-Pq: Name versioned_strategies_path

Makefile.am
configure.ac
fplll/Makefile.am
fplll/defs.h
fplll/fplll_config.h.in

index 631676d73879ded0cf06b139a21d874b36b5b7aa..4dabd03b2ab3959254fe4e733bfecb7401b8ee5f 100644 (file)
@@ -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
index 8adafdfe5fe90cfd57824ede2bc5af343fd5b5cd..44856ebb86ca9789c3fbb5002629d0f47bfe0e48 100644 (file)
@@ -217,6 +217,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
index f328fcff7a9f6d97623a41ee2ce5a3b2aadb6777..0ffcdb5ff1f3c260a2fe2bb8d8c90d01acfcc17f 100755 (executable)
@@ -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
index bfc4158dd25a7175712b4d6902b49deea789d7eb..7b5cc5788d836105a4ec364e22963d79da56bd05 100644 (file)
@@ -280,14 +280,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,
index 5205a19e53aba1ec5efc0fc18716dfecaa352fdf..8356b2a79229b13bfd3867b98bc0e6200f6bbff1 100644 (file)
 /* 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@