Install the strategies in a soname-versioned directory
authorJulien Puydt <julien.puydt@laposte.net>
Sat, 19 Dec 2020 11:20:06 +0000 (11:20 +0000)
committerJulien Puydt <jpuydt@debian.org>
Sat, 19 Dec 2020 11:20:06 +0000 (11:20 +0000)
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 707663909ebe3d16a3b0f7a0917561cbb762d224..ff523d96ceaeba4455c8b29aaafb0d2c5cae8781 100644 (file)
@@ -218,6 +218,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 be8f62082cb6840111ca2bbe0940207897a195a3..83ae85ec35e12645907e1fb0e3d0d6feddac0a7f 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 3d32452195ed94e4091166fbd63be507a5f1db54..cef8855e75adc68b9af8c53abb24570578624e43 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@