changeset 29554:99e3912441ec stable

build: Make relocation of dependencies with Octave optional (bug #60413). * configure.ac: Add new option "--enable-relocate-all". * build-aux/subst-config-vals.in.sh, build-aux/subst-cross-config-vals.in.sh: Replace parts of flags that match the prefix only optionally. * src/mkoctfile.in.cc (replace_prefix): Only replace arts of flags that match the prefix only if configured to do so.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 24 Apr 2021 19:17:16 +0200
parents 841ca9987302
children 0f57f0f47216 d75aa2bf4915
files build-aux/subst-config-vals.in.sh build-aux/subst-cross-config-vals.in.sh configure.ac src/mkoctfile.in.cc
diffstat 4 files changed, 45 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/build-aux/subst-config-vals.in.sh	Tue Apr 20 16:20:10 2021 -0400
+++ b/build-aux/subst-config-vals.in.sh	Sat Apr 24 19:17:16 2021 +0200
@@ -77,13 +77,23 @@
 startupfiledir=`echo "@startupfiledir@" | sed "s|^${prefix}/\\+||"`
 texi_macros_file=`echo "@texi_macros_file@" | sed "s|^${prefix}/\\+||"`
 
-## Replace portions of compiler flags that depend on prefix on target
-cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+if [ "x@OCTAVE_RELOCATE_ALL@" = "xyes" ]; then
+  ## Replace portions of compiler flags that depend on prefix on target
+  cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+else
+  cppflags="@CPPFLAGS@"
+  fftw3f_ldflags="@FFTW3F_LDFLAGS@"
+  fftw3_ldflags="@FFTW3_LDFLAGS@"
+  flibs="@FLIBS@"
+  ldflags="@LDFLAGS@"
+  oct_link_opts="@OCT_LINK_OPTS@"
+fi
+
 
 srcdir="@srcdir@"
 top_srcdir="@top_srcdir@"
--- a/build-aux/subst-cross-config-vals.in.sh	Tue Apr 20 16:20:10 2021 -0400
+++ b/build-aux/subst-cross-config-vals.in.sh	Sat Apr 24 19:17:16 2021 +0200
@@ -87,13 +87,22 @@
 startupfiledir=`echo "@startupfiledir@" | sed "s|^${prefix}/\\+||"`
 texi_macros_file=`echo "@texi_macros_file@" | sed "s|^${prefix}/\\+||"`
 
-## Replace portions of compiler flags that depend on prefix on target
-cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
-oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+if [ "x@OCTAVE_RELOCATE_ALL@" = "xyes" ]; then
+  ## Replace portions of compiler flags that depend on prefix on target
+  cppflags=`echo "@CPPFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  fftw3f_ldflags=`echo "@FFTW3F_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  fftw3_ldflags=`echo "@FFTW3_LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  flibs=`echo "@FLIBS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  ldflags=`echo "@LDFLAGS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+  oct_link_opts=`echo "@OCT_LINK_OPTS@" | sed "s|@prefix@|\$\{prefix\}|g"`
+else
+  cppflags="@CPPFLAGS@"
+  fftw3f_ldflags="@FFTW3F_LDFLAGS@"
+  fftw3_ldflags="@FFTW3_LDFLAGS@"
+  flibs="@FLIBS@"
+  ldflags="@LDFLAGS@"
+  oct_link_opts="@OCT_LINK_OPTS@"
+fi
 
 
 srcdir="@srcdir@"
--- a/configure.ac	Tue Apr 20 16:20:10 2021 -0400
+++ b/configure.ac	Sat Apr 24 19:17:16 2021 +0200
@@ -2636,6 +2636,16 @@
 AM_CONDITIONAL([AMCOND_BUILD_QT_DOCS],
                [test $ENABLE_DOCS = yes && test $build_qt_gui = yes])
 
+OCTAVE_RELOCATE_ALL=no
+AC_ARG_ENABLE([relocate-all],
+  [AS_HELP_STRING([--enable-relocate-all],
+    [assume that all dependencies that are installed under the same prefix are relocated when Octave is relocated])],
+  [if test "$enableval" = yes; then OCTAVE_RELOCATE_ALL=yes; fi], [])
+AC_SUBST(OCTAVE_RELOCATE_ALL)
+if test $OCTAVE_RELOCATE_ALL = yes; then
+  AC_DEFINE(OCTAVE_REPLACE_PREFIX, 1, [Replace prefix in mkoctfile flags.])
+fi
+
 ### Determine whether Mercurial ID should be embedded in library binaries.
 
 ENABLE_HG_ID=yes
--- a/src/mkoctfile.in.cc	Tue Apr 20 16:20:10 2021 -0400
+++ b/src/mkoctfile.in.cc	Sat Apr 24 19:17:16 2021 +0200
@@ -159,6 +159,7 @@
 static std::string
 replace_prefix (std::string s)
 {
+#if defined (OCTAVE_REPLACE_PREFIX)
   const std::string match = "${prefix}";
   size_t pos = s.find (match);
   while (pos != std::string::npos )
@@ -166,6 +167,7 @@
       s.replace(pos, match.length (), prepend_octave_exec_home (""));
       pos = s.find (match);
     }
+#endif
 
   return s;
 }